“How do I find these people? I need more of them TODAY!”
I consider myself damn lucky to know a strong network of great developers. But no, you can’t hire them. Practically all of them have fantastic jobs already. The rest are starting their own companies.
So instead of turning this network over to these hiring managers, I’ve been telling them how I found the developers in the first place. Here is what I told them.
First, it helps that I was a developer too. My programming skills have waned a bit, but I understand the programmer mindset and lingo. If you don’t have such a background, have a developer be a part of the technical recruiting team, either as an evangelist & advisor, or full-time member. They will be able to communicate with potential candidates better than non-developers can. This is a key differentiator for your company over other recruiting teams.
Next, craft an enticing job description that includes your technical vision describing how you plan on accomplishing the overall vision of the organization. Developers care about the success of the organization because they want to be a part of something great, but I have also found that having a grand technical vision is key. Just stating that the developer will work with XYZ technologies isn’t enough. Draw them in with the technical challenges and lofty aims. This technical vision has to sound immense enough to be daunting, yet exciting enough for candidates to say, “Holy crap, I could never do that myself. I need to be a part of the team that will do that!”
If you don’t have a technical background, ask your developers to help you write the job description. In my experience, many will give you a plain & straightforward job description. They won’t include any of this visionary detail. To get it, ask your developers to describe the most exciting parts of their jobs. Then ask your technical architects and senior developers about their grand technical vision. You can take this material, edit it for clarity, submit it back to the technical contributors for a sanity check, then publish it as your official job description.
Third, search through typical developer hangouts. Github. StackOverflow. Various StackExchange sites. Hacker News. Developer mailing lists. Developers’ blogs. Developers’ Twitter accounts. There are dozens upon dozens out there. Or perhaps someone enterprising enough will build their own way to scour these sources.
Ask your developers which communities and blogs they frequent. Visit each of those sources. If it’s a blog or Twitter account, check out who they link to, who they respond to, who they mention, who they write about, and who they quote. Blogrolls and Twitter lists can be especially helpful. Not all of these people will be interested, or even qualified, but they make up the peer group of your target audience. Through them, you will be able to find lots of promising candidates.
For the online communities, it is important to pay attention to their rules. Some frown upon job listings, some welcome them, and many now have job boards. Use those job boards. For an extra bonus, keep track of the number of candidates coming from each, the number that get interviewed, and the number you actually hire. Not all communities are created equal. Some will give you a better return than others. You can use this data to make your searches more efficient.
Fourth, identify which candidates are worth interviewing. Like I said, not all will be qualified. If you have a technical background, you can look through their public code or ask for code samples. If not, have the developer on your team help you. The goal at this step is to identify who is at least worth a phone call. Your organization’s procedures may differ, but I generally prefer code samples first, phone call second, in-person interview last. All of this is possible within a week or two if you hustle, depending on the speed of the candidate’s responses.
For some roles, I have also sent candidates an at-home exercise. If you do this, make sure the exercise looks fake enough that the candidates don’t think you are trying to get free work out of them (and, it should be said, DON’T try getting free work out of a candidate) – while at the same time make sure the exercise effectively tests for the skills you seek.
I should note that this entire process is time-consuming. It is not for the faint of heart. I had a busy schedule while doing all of this hiring, but made it a priority anyways. Other tasks had to fall off my plate. Investing time into an effective recruiting process is worth it if you want to find great developers.