There is lots of good articles out there on the web about how to interview programmers. Here’s one. Most of this understandably focuses on the interview process whether its a phone screen or and in person all day event. At some places the process essentially stretches out for a 90 day trial period.
I don’t have much new to say about any of that. I will just say that when you have a bad feeling during the interview, you should probably pay close attention to it. If you aren’t sure you can always interview them again and see if it goes away.
The part of the process I want to write about today is the part where you get (hopefully) lots of resumes and you have to decide which ones are worth a phone call. You are going to need the phone call or in person interview at some point but these take time. How can you best decide which ones to interview from the resumes you get? If you only get a few this is not a problem, but how do you sort through dozens?
Sure enough, a resume contains a lot of information and there are good and bad ways to read it. Again I won’t go into details other than to say that I like this comic.Â There is however a problem. The resume leaves out a lot of things which may help you decide. This is especially true if the candidate is non traditional in any way at all (age, work experience, education etc). I’ve had bad hires with degrees from MIT and great hires who were still in High school. There has to be a way to look a little deeper before deciding on who makes it to the next round since in the end:
You are looking for someone who can write good code not a good resume.
At a previous job we started using a series of questions to get a more complete picture of the candidate before talking to them. The trick is these questions aren’t about programming knowledge per se since someone could just Google the answers.
What they do is provide a way to encourage the candidate to tell us more about them so we can make a better decision. They can also function as a kind of programmer personality test. Over time, the questions have changed but the basic concept remains the same. You send out a list of these questions to any of the candidates you think might remotely fit and then scan the responses to decide who to interview.
Here’s an example:
What programming language do you wish you knew better and why?
How someone answers this usually can tell you alot about how they view their skillset. People love to list on their resume a dozen languages that they have written 5 lines of code in, but what they want to learn tells you alot about how they think about themselves and the future. Like all of these questions there is no one right answer you are just hoping they have some kind of positive interesting answer. If they answer something like: “I already know all the important languages” or “I have been thinking of learning X cause, there are like lots of jobs and stuff for that” then you may have a problem.
Have you had problems working with others or a boss before? How did you deal with it?
Personality matters for a lot. This question is pretty good at weeding out those people who just seem so unlucky that every place they worked was toxic. These people never suspect that they are the poison butÂ a question like this will usually give you hints.
There are more but that’s the basic idea. These kinds of question may not pass muster with your HR department but they will help you get better insight into the candidate before the phone interview and give you some additional things to talk about besides “Tell me about your job @ X”.
Its much more common for these questions to cause someone to stand out from the crowd in a positive way than for them to get rejected based on the results. A resume doesn’t really let people explain what their passions are and when you try to do it a cover letter it can come off as kind of icky. In this kind of informal survey of questions a candidate can feel free to give a long answer if its needed.
One of my best hires every was a fresh from school programmer with no real work experience, nothing impressive on his resume or cover letter, etc. Probably not worth the phone call but sending out the list of questions via email is easy so– In one of his answers to the email survey he explained about his experience with a product he bought and how he didn’t like the software that came with it. So he wrote his own and then released it as open source and was managing a small community of people.