Hiring Great Developers: The Pre-Screening
small-improvements.com
small-improvements.com
I've successfully recruited dozens of exceptional individuals through IRC and am surprised that it's not often used for recruitment. Networks like freenode are filled with amazing individuals who are quite amenable to interesting startups. Even with my first company back in '99, when I didn't even know how to code, I found that the developers hired through IRC performed magnitudes better than the ones who came through more traditional hiring processes.
Just hang out for a few months in the IRC channels of open source projects that you find relevant; get to know the various individuals; once you find someone that you believe you can work well with, engage them about joining your venture. Easy, effective and the social bond even lasts for years afterwards.
Because it flags you as a mill, uninterested in the applicant and likely a firm that treats development as a commodity. I'd be willing to bet that the 30% who didn't bother to respond to the challenges included some of your best applicants.
You'd never hire an accountant by insisting they prepare a quarterly for you before you ever met them and you wouldn't make prospective truck drivers arbitrarily drive hundreds of miles to an interview.
If you want to screen for the absolute basics of rote capability that's what those various certified professional type credentials are for. But just like your little tests, you'll be pre-screening out the best as well as the worst.
My impression is exactly the opposite. It flags them as a company that cares about technical competence.
"If you want to screen for the absolute basics of rote capability that's what those various certified professional type credentials are for."
Their test screen for more than that. And of course those professional certifications are useless if you go beyond the very basic level, just like "CV-years of experience" are useless for determining competence.
The credential I look for when hiring is someone who has already done something remarkable.
I bet the tasks being sent out are most probably something in the vein of parsing a CSV file or (in case of Atlassian) writing a simple JSP or trivial XSLT or what have you. Not the best check for competence.
And yes, he actually mentions in the article this is an actual thing he does: have applicants learn new frameworks in order to apply. Sheesh. Who has time for that except the very desperate.
In fact, bringing in people to an interview right away without at least calling them IS like asking the truckie to drive a long distance just for the sake of it. I'd avoid that. But I would ask him to send me a photo of his current truck (if he claims he has one). I'd maybe also ask him to name five roads he'd avoid between his main destinations (say in SF, if he claims to be from SF). Someone who's actually a cab driver in NY would find that hard to answer. :-)
Good developers of a certain experience level generally realize that if they apply for a job somewhere and waltz through the interview, or worse, the interview is a basically a pleasant chat with the tech director, then the chances are the hiring standards really aren't that great .
Oh and c) - if a developer does feel they're too good for your screening test, or such a thing is enough to put them off your company, then weeding them out at such an early stage may actually be a positive thing.
I do think it's crass to send out a problem sheet without at least verbally talking to the candidate briefly though. We currently do -
5-15 minute chat with a recruiter or PM who is savvy enough to filter out the people who really aren't experienced enough.
3 hour timed problem (debugging, coding, math, domain knowledge)
Technical phone screen
In-person interview (6-7 hours, all expenses paid).
Before I had my own company, every place I worked whenever I would talk to clients or go to conferences I would get on the spot job offers. Principals would ask "Would you ever consider leaving XYZ?" I would say I'm not looking at the moment. They would always then hand me their cards and say "If you're ever looking to move, give me a call first."
In addition, I would get calls at home to my unlisted number because of articles I had written or patents I held.
When it was time to move on I would have dozens of open offers already to chose from. Why the hell would I or any other great developer bother dredging through monster hoping to find the 0.001% of ads that are both legitimate and for a place than isn't some web shop with slave hours and low wages? Answer is I wouldn't. Any company that only relies on job ads and resumes is not a place that great developers work for.
Recently a startup I was somewhat interested in required a 4-5 hour coding project that was similar to the labs I do in school. I'm already bogged down in work interviewing, doing normal classes, writing a senior thesis, and preparing my research for publication.
I decided to forget about the company and look elsewhere, for I already had offers from great places like Google and Facebook and could always fall back.
I'm not saying its bad to screen candidates with interesting puzzles. I'm saying that you risk filtering out the better candidates that just don't have time to deal with puzzles from a company they don't know.
Additionally, keep in mind that I come from a competitive university in the academic world (although I figure competition is pretty bad at most universities). Thus, with my current 100 hour work weeks, I would just rather not bother with solving tedious puzzles.
One of them asked that I solve some programming challenges. Sure, I like puzzles and I like being challenged. However, at the time I was already being challenged by my thesis work, problem sets, interviews... it's hard to agree to make a huge time commitment just to get the right to a first round interview.
Since other hot startups/ cool companies (Google, FB) don't require this type of activity, it makes sense to me to think that a lot of people simply won't have the time to apply because they're busy solving more interesting puzzles.
http://www.facebook.com/careers/puzzles.php
And Google are notorious for having a long drawn out interviewing process.
Google's are drawn out, but each interview takes 1 hour max so there is an upper bound on your time.
My response is that you can find out the competence of an individual without wasting 5 hours of their time on a pre-interview puzzles. If they pass your phone screen and interview, you should be fairly confident that they are a competent programmer. I'm hard pressed to believe that someone who passes famously difficult interviews (for example Palantir) would find the puzzle anything more than busy work.
You can't really hire great developers using any process involving resumes and ads. Hiring great developers involves recruitment. You already know you would hire the developer before you even contact them. The entire issue is can you offer them enough to lure them from where they are now.
So, yeah, good idea, but use with caution as YMMV.
What screening did you do onsite?
Am I missing something here?
That said, I don't have a problem with these tests if the setter understands that they are not there to filter in or out the competent, but instead serve as a filter of convenience because dealing with 60 resumes is easier than 600. This seems an acceptable pragmatic approach.
When rubber hits the road a business needs to make money by being competitive. If having read a book on JUnit is your metric for hiring competitive employees, so be it. I can't help but wonder if there is a sizeable amount of latent competitive advantage in the complement of this set.
And I can tell you, if I learn something while on the phone with them then it's a guaranteed good hire.
If I needed a developer who's great at answering tricky questions in front of an audience, your approach is perfect. But I'd also love a developer who solves hard questions with a bit more time to ponder the problem space. I worry I couldn't spot them in a such a tough phone interview. Oh well, next post! :-)
Shit you are kidding right? Or do people just really value their time that low?