MageHero is a list of Magento developers. The idea is for the community to curate a list of quality Magento developers - to make it easier for people to find the good ones.
Frequently asked questions
Why build this?
Initially the idea behind building this was because I'm always getting asked whether I know any good Magento developers that are available, and I wanted to have a good resource to point people to.
After getting some initial traction, I'm realizing that the majority of the people signing up are great Magento developers but they're not available or looking for contract work. So at the moment I'm just thinking of it as a nice index of Magento developers.
At some point, I'll want to figure out a way to surface up developers that are actually available for work, or perhaps give developers ways to list specific types of consulting or projects that they're interested in.
But for now, it's just a general listing of developers in the community.
What types of posts should I write?
The posts should be specific to something you're working on within the world of Magento. Let's keep general socializing and updates to Twitter, so that this can become a meaningful archive of work that you've done or at least things you've researched in the Magento space.
So for example, moving from one city to another, or moving jobs, or visiting people. I think probably even things like visiting Magento events should be excluded. Instead put something that's subject-matter-specific, like "I learned about Topic X at this Magento event or I built X at this hackathon".
Open to feedback on this but I think there's something powerful about having the historical archive of MageHero being really focused. Kind of like how Stack Exchange is (in the context of question and answer).
Some examples of posts that we should probably avoid:
We're hiring - want to work for us?
Instead of a post that's purely a recruiting ad, you could talk about your recruiting strategy specifically. That's definitely something that's of interest to other developers in the community who are also hiring.
But posts should be specifically describe work that you've done or are doing.
Another thing you could do would be to write about some specific features you're working on or something totally unrelated to hiring and then put a p.s. we're hiring in the footer with a link to your site. (I may block "signature" type content in the future as it gets noisy but just a thought).
Guidelines for submitting a PR
Please do the following when submitting a PR:
- Don't break existing code conventions (spacing, indentation, code style, etc.)
- Use consistent indentation (little bit of a pet peeve but seriously how much fun would you have reading a book if it randomly had crazy indentation all over the place)
- Always proof-read your diff before submitting (sorry if this is obvious but I've known people before that haven't done it and judging by some of the PRs I've received I'm guessing you guys might not be doing it)
- Include screenshots (or screencasts for bonus points) of the feature to make it easier on me to review
How does upvoting work?
Upvote other good developers. This will help to create a list of developers that merchants and agencies can trust.
You can only upvote other developers if you are logged in and have received the minimum number of upvotes required to be able to upvote someone else (see the site for what that number is).
Why is my profile no longer visible?
If you do something cute like using your name field as a message instead of a name or also if you include dummy data in your profile (such as example.com for the website), I may remove your profile from the site.
If you'd like to be re-added, just file a github issue.
What do the rankings mean?
The ranking of a given developer isn't necessarily a ranking of how good they are as a developer. Hopefully over time, if this voting system works out the way I hope it will, they will be a rough approximation of that.
But that may take months or years - who knows. Really they're just an indication of how trusted they are by other Magento developers.
I can vote now! Who should I vote for? What does a vote mean?
Well, the goal with this project is to surface up quality developers. Imagine a merchant or agency that was looking to hire a developer - we want them to be able to look at this list and for developers that will work out well for them to rank highly and developers that wouldn't work out well to not rank so highly.
Obviously, there's no way a single vote can capture the likelihood of a given developer to succeed on a given project for a given merchant/client. It will vary widely based on the type of project, the developer's skillset, personality, the personality of the merchant, etc.
But that's the goal that we're shooting for.
So you shouldn't only vote for people who you know. Take a look at the list from time to time and if there's a developer you don't know but they have a cert or two, some magento-specific github activity, a blog with some good Magento information, you probably should consider giving them an upvote.
I need more upvotes! How do I get teh upvotez?
Well I think largely it will be based on how well acquainted you are with the voting members - that may be due to open source involvement, meeting them at an event or hackathon, working with them, etc.
I think that if I hadn't cheated and started this site, and I was looking to get upvotes, I would probably write a blog post on what made me a MageHero and I'd tweeted at some voting members.
Obviously don't overdo it - but remember that the voting members are people who care about the Magento community - they know there's a lack of good developers in the ecosystem, so they'll probably be happy to vote you up if they like what you're up to.
Bro, this upvoting system sucks. What gives bro?
I wrote a post here explaining some of my thoughts around the upvoting system - please feel free to comment there.
One thing I'd like to say here though is that I know that it's frustrating for people just joining the site who aren't able to vote yet and are having a hard time getting upvotes.
I think the thing to keep in mind though is that we want this to be a useful resources 6 months from now, 2 years from now. So while the initial experience days/weeks after this site was launched is probably annoying and rankings are probably skewed towards my personal network, I believe that over time they'll get better and better.
Already if you look at the voting members, they are a lot more diverse than just people who think I have a sweet twitter avatar. I expect them to get more diverse over time and for results to become more meaningful, but I want to be on the conservative side to avoid things from getting overrun with spam (as they naturally tend to do with online ratings systems).
If you have any ideas for how non-voting members could somehow still add some kind of ranking value to the system, feel free to post a github issue and we'll see if it makes sense.
Can I tweet you to make a suggestion?
I'd rather you didn't. I'm getting a lot of noise in my twitter stream about this and it's hard to have a good dialogue about these things in twitter.
I'd rather that you join in on some of the discussions in MageUnity or post a well-reasoned question or suggestion as a GitHub issue.
And also keep in mind that if you're going to suggest something, you should be willing to build it yourself, since this is open source.
How do I get listed as a developer?
Just login and it will allow you to auth with GitHub and then click on your username in the top right and save your details as JSON.
I'm not looking for work. Why should I sign up?
The majority of the developers listed on here aren't looking for work. It's more than just a listing for people looking for work - it's a listing of Magento developers as rated/reviewed/loved/admired by the community.
As such, having a listing of Magento "heroes" that doesn't include some of our obvious heroes (Alan, Ben, Collin, Karen, Vinai, etc.) feels totally incomplete.
There's a pretty clear indicator of availability (the Available column) and we'll probably figure out a way to make that even more abundantly clear at some point in the future.
Why is the design of the site so horrendous?
Because I wanted to get something quick and dirty up to get the ball rolling. Building the database is really the most important component of this.
Antonela (https://twitter.com/holantonela) has volunteered to work on the design, because she is awesome and amazing! Here's a sneak peek mockup: https://pbs.twimg.com/media/B0-GpjrIQAAsTDr.png:large
Why are profile details being managed as JSON?
Because the schema will probably change a lot by the time it's all said and done and this makes it easy to keep it flexible meanwhile.
Not exactly a UX best practice, but hey you're developers, so you should enjoy the occasional JSON editing.
There's a bug, how should I report it?
Since the project is open source and since you're a PHP developer, and since my time is super limited to resolve and fix bugs, please do some initial investigation of the issue to try and resolve it.
Ideally, fix the issue yourself and submit a PR. If you can't do that, then at least submit a detailed bug report where you do some initial investigation of the code surroundind the bug and try to point us in the right direction.
Your best bet at getting it fixed will still be to actually fix it yourself, but reporting it is a nice first step.
It would be great if you could avoid tweeting me about it, because I'm getting a little bit overwhelmed by the tweets and it's just not a very productive way to report the bug.