The only hiring process I have found to work for developers is to sit down and work on real code together.
This gets to the heart of the matter, and you very quickly feel out someone's knowledge, ability, and most importantly, how well they collaborate on a problem. Because in a startup you will need collaboration, and likely under the highest stress moments you've seen in your life.
I also feel like this gives applicants a much better opportunity to learn about their possible future company and coworkers, and whether they themselves would like the fit. If you have not done this sort of interview, even if you have never pair programmed, try it out. It's very effective.
What I'm still trying to learn, is what screening process to use ahead of this. Sadly, you can't invite everyone for an on site day long interview. The best I've come to is to look at what applicants have made on their own time or alternately how they talk over the phone about topics and problems they're excited about. Resumes are nearly useless.
"The only hiring process I have found to work for developers is to sit down and work on real code together."
Yes. My favorite is to ask the candidate to go on a webpage he has been working on, show me the source, and we start discussing it together. I can ask him to explain some markup, or simple javascripts. Then the key point is when I go and criticize a part of his work. Two bad reaction: immediate yes ("sure boss! you are right boss") and immediate no ("who are you to criticize my work?"). I take the guy who really starts to think, check if I could be right, and accept to discuss the technical point of view.
Other point: I need to shake his hand, it tells me a lot!
The handshake thing worries me a bit... that seems more in the category of things that many people rely on, but actually tell you very little about the person.
Someone with a good handshake either:
* just naturally learned to shake hands in the way you like
* found out that handshakes are important to first impressions and spent time perfecting theirs (including maybe a handwarmer in the pocket...).
Does either of those things reveal any important traits?
People naturally have different levels of perspiration & circulation in their hands, particularly when nervous. Anyone going for a job interview they care about should be at least moderately nervous.
So someone might have a cold clammy handshake purely through genetics. How many strikes against them should that be? Firmness and eye contact are based on habits, generally -- again, the developer who's thinking ahead to the "important" parts of the interview will just give you the handshake they learned as a child. How many points against them should it be if it's very soft (because they were raised by an arthritic grandmother)?
Too much rambling for a small point, but I just want to say you should try to reserve judgment on exactly this kind of thing until they've had a chance to relax a bit, get talking, etc..
Personally, my handshake is probably pretty good, but I'm not going to be really at ease talking with you until we've been interacting for at least a few months. I've learned to fake it over the years (and keep calm enough in the face of strangers that I can think straight, for the most part...), but the hiring process is definitely harder on introverts.
I went through an phone interview a few months ago that included some quizzes, talking through solutions to invented problems, etc., and was glad she agreed I could hang up the phone while I thought (and took notes)... this resulted in a much better answer than I would have given if forced to think through it while on the phone with a stranger.
I wonder if you could give them access to a custom subdomain of a test site and tell them to build a web app, anything they want, and upload it. Give a suitable time limit, a day to a week, depending on how much you want to see and whether they already are a full-time employee or student. Then screen based on what people came up with.
That's a bit more involved than the lighter-weight solution in the same vein - remote coding tests facilitated by a collaborative website. But it's something I haven't heard of yet.
Right, that's because no sane prospect (or rather, a prospect you'd want to hire) would go along with it. A reasonably competent developer has several options to choose from - it's just not rational to spend 10+ hours on each job opening; you wouldn't be able to coordinate and assess 5 or so offers in a reasonable time (when looking for a new job, people will apply at various places, compare the offers and take the best one).
Most competent people would scoff at a suggestion like this, and I suspect that competent employers know it.
As a SCREENING mechanism 10 hours might be too much for the candidate to spend. But once past the initial screening, if there is serious consideration of an actual job offer, it is quite reasonable. The company will spend a good deal more than that on every candidate brought in for interviews (if you add up the time of everyone at the company). If the applicant is considering tens of different offers then they're Doing It Wrong(TM) -- they should pick the 4 best and choose amongst those. If they're considering 4 offers and can't spend 10 hrs on each, then why on earth not?
Because it's 40 hours wasted. 40 hours = one full working week = for (I think) the type of professional we're talking about $2000.
I guess we can differ in opinion on what is 'reasonable' but I say that requiring what you're proposing is too much for me personally to take any such employer serious.
(on the part of the 'past initial screening', the employee can't know or verify this. If there are 50 applicants, and there are 15 selected in the 'initial screening', is it reasonable to ask for 150 hours of unpaid labor from these people? I posit it's not.)
$2k to find a good hire is nothing. Signing bonuses, referral bonuses, and interview related expenses (air travel, taxis, hotels) are often on that scale or larger. Also, your numbers are way off the mark, you're not going to bring in 15 people for such an interview, you'd be extraordinarily lucky if you even managed to have 15 people that looked good enough to go that far, but even if you did you'd screen it down to a lower number to make it more feasible.
Uh, what? I was talking about a $2000 cost to the job seeker. It may not be that much for professional, but it's nothing to sneeze at either (I've seen people making a multiple of 120k fret over much less than 2k).
The GP was talking about doing the 'screening test' for everybody who passed a first qualification stage. I don't know where you work, but having 15 'might qualified from a cursory glance at CV' applicants is very normal. Basically it's everybody who can use a computer and format a CV without using Comic Sans, and is smart enough to phrase his work experience or degree so that it sounds like it might have something to do with the advertised job offer.
Agree with roel_v. There is no way I'm going to spend a week working on a screening project unless I'm extremely confident in my chances. And usually when you're really confident you already have a friend in the company. If the company paid for the effort that would be a different story, but advertising that could cost them quite a lot.
How many good candidates have been willing to do it?
That's the fact that matters, not an argument about what people "should" do.
> If they're considering 4 offers and can't spend 10 hrs on each, then why on earth not?
Suppose that I'm considering two offers. One wants 10 hours and the other doesn't. Are you seriously suggesting that I shouldn't take that into account?
The answer to "why not" is "because even if getting a job is my only priority, paying extra for a chance at given job isn't".
We did this for our most recent front-end hire, actually.
We gave him a two-day project to complete for us, and compensated him with what we thought to be a fair stipend for his time. He completed the project, we hired him, he cleaned up the project, and we actually put it into production a week after his hiring date.
Everything worked out fine, and the developer in question is quite competent, sane, and rational.
It makes sense if you basically call it a freelancing job with an option to hire. If it's an unpaid interview, though, it just seems unfair and likely to turn away some of the best candidates.
I agree, there is no substitute for working on a real problem together outside of the pressures of an interview room. This'll really give you an insight as to how a candidate is likely to perform within your team.
I'd have to disagree that all resumes are nearly useless though. We need some way of screening people and I think we just need to improve the resume format. Perhaps by making a tech resume more structured and uniform across candidates things could be improved. I built MightyCV with the aim of doing this - it's a resume platform with hackers in mind. I'd like to see MightyCV become a service that shepherds candidates towards producing a resume that is actually useful to tech recruiters. A MightyCV allows you to hook into the API's for HN, Github and Stackoverflow. When integration is activated this means recruiters get a useful at-a-glance overview of what people have actually been up to in the community. I'm toying with the idea of using an aggregation of these metrics to produce an overall MightyCV score. I'd then like to create a MightyCV map that resume owners could choose to place themselves on. Candidates electing to be included on the map would only appear if they had attained a certain score. It'd be a little like how down-vote privileges work here on HN, i.e. you have to earn your way on to the MightyCV map. I guess if I set the score threshold high enough then this map could become a good source of resumes within our sector that weren't entirely useless.
Also I liked the OP's suggested list of questions too:
- What's the last project you worked on at your former employer?
- Tell me about some of your favorite projects.
- What projects are you working on in your spare time?
- What online hacker communities do you participate in?
- Tell me about some (programming/technical) issues that you feel passionately about.
I'm going to give some thought to how I could incorporate these questions into MightyCV. I might even consider making them compulsory for all MightyCV owners. What do people think? Is forcing people to include something in their resume a bad idea?
Anyway, if you've read this far you might be interested in seeing what a MightyCV looks like. Here's mine: http://robeastham.mightycv.com (For those paying attention I don't think my theoretical MightyCV score would be high enough to get me on the MightyCV map at the moment. Answering SO questions is on my list of things to do in April).
If you like the look of it and want your own MightyCV then sign up for the private beta. There is a beta code and link in the first entry for experience within my resume. There are a couple of bugs I'm ironing out at the moment, mainly associated with the LinkedIn profile importer, but otherwise it's fairly robust. If you try it, I really hope you like it.
This gets to the heart of the matter, and you very quickly feel out someone's knowledge, ability, and most importantly, how well they collaborate on a problem. Because in a startup you will need collaboration, and likely under the highest stress moments you've seen in your life.
I also feel like this gives applicants a much better opportunity to learn about their possible future company and coworkers, and whether they themselves would like the fit. If you have not done this sort of interview, even if you have never pair programmed, try it out. It's very effective.
What I'm still trying to learn, is what screening process to use ahead of this. Sadly, you can't invite everyone for an on site day long interview. The best I've come to is to look at what applicants have made on their own time or alternately how they talk over the phone about topics and problems they're excited about. Resumes are nearly useless.