Hiring web developers is like simultaneously enduring a flood and a drought. You are overwhelmed with candidates yet struggle mightily to find folks worthy of your team. We seriously consider hiring about 10% of the folks I interview at SeatGeek. Those 10% come back for additional rounds, do longer coding tests, etc. Succeeding in the first stage of the hiring process means efficiently separating the wheat from the chaff. As the initial screen for all applicants, I consider it my job to isolate the 10% as quickly as possible.
I’m starting to realize I rely heavily on a set of heuristics to determine if someone is likely to be in the 10% group. These don’t involve asking the interviewee about his life goals and then staring deeply into his eyes as he answers. They are simple shortcuts–usually yes/no questions. Folks who fit our profile of the ideal early-stage startup web developer are likely to…
- Prefer Git for version control. And have a Github profile.
- Use OS X or Linus as their operating system of choice
- Read Hacker News. Ideally they have an active profile with comments
- Have a personal webpage. About.me, etc doesn’t count, as it communicates “even though I’m a professional web developer, I couldn’t bother throwing up a single page of static markup about myself.”
- Be working on personal projects. Ideally he’ll have projects that are simultaneously finished, half-finished, and barely-started. It’s particularly important to have at least one personal project that’s finished–something that’s fully realized, hosted somewhere, and has no obvious bugs. That shows that a developer is able to sort out all the little things throughout the stack that go into building a web app and deploying it into production. (Credit to @erwaller for adding to this bullet.)
- Be comfortable throughout different parts of the web stack. If someone is an outstanding dev ops guy, for example, he’s may still know how to write a bit of frontend code.
- Viscerally averse to uninteresting frontend work like PSD to HTML/CSS conversion (after all design work is done and before any JS/interaction work is done). It just isn’t challenging.
These heuristics work as a negative filter but are useless as an affirmative screen. Just because someone fits the above profile doesn’t mean we’ll hire him; it’s just a first step. By no means do I think a candidate must fit all the above specs in order to be worth pursuing.
By definition, heuristics are fuzzy. I’m cheating. I miss some great people due to the above shortcuts. But, alack, SeatGeek does not yet have an internal recruiting department. It’s just me. This approach is predicated on the belief that due to resource constraints I’m going to miss a non-trivial number of good candidates, so I might as well be efficient in the way I miss those candidates. Many people who lack the above traits are still outstanding developers but I believe they are, on average (and only on average!) less likely to be kick-ass developers at a small web startup.