“How the heck 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’s what I told them.
First, it helps that I was once a developer too. My programming skills have waned quite 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’ll be able to communicate with potential candidates better than non-developers can.
Next, craft an enticing job description that includes your technical vision describing how you’ll accomplish 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’ve found that the technical vision is the important part. Just stating that the developer will work with XYZ technologies isn’t enough. Draw them in with the team’s true underlying goals, such as creating a new company-wide architecture, inventing a brand-new product, or building a new framework that will be open sourced later. 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 so-so job description. They won’t include any of this visionary detail. To cull it out of them, 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.
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’ll be able to find lots of promising candidates.
For the online communities, it’s 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 focus your searches in the future.
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.
There have been times in which I’ve sent candidates an at-home exercise too. If you do this, make sure the exercise looks fake enough that the candidates don’t think you’re 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 I made it a priority anyways. Other tasks had to fall off my plate. In my humble opinion, investing time into an effective recruiting process is worth it if you want to find great developers. And having fewer great developers on your team will give you a lot more bang for your buck than lots of mediocre developers.
Photo by: Riebart