The Humane Tech Interview

I am in a position where I interview job candidates. What I do is called the tech interview, which is an early vetting before we start discussing money and other contractual details. This is usually between one and two hours over Skype or telephone where I have to judge is a candidate is technically skilled and fits into the team. So, how to go about this?

I’ve seen many approaches. You can interrogate the candidate, you can ask about details about every line item on the résumé, you can ask the person about strengths and weaknesses. To me, all of these approaches are defunct – I want to have a conversation, not an interrogation. There does not have to be a right or wrong answer, just an opinion. This usually takes the tension out of the situation and makes the candidate open up. It also allows me to expose my weaknesses to make it more comfortable for the candidate to admit his or hers.

Going in to an interview, I usually make a list of topics that are relevant to the position in question. This can be knowledge about Linux, git, Qt, JIRA, agile, and so on. For each of these questions, I know what we do at Pelagicore, but instead of asking about the candidate’s experience with what we do, the questions from me goes like this:

– So, what kind of source code versioning system have you been using?
– Comparing git to svn, what did change, from your perspective?
– Could you see any situation where svn would be better than git?
– We use git like this, is there anything that you’d like to change with that?

As you can see, the questions are more about opinion that right or wrong. The point is that if you know the technology, you can pick up competence and experience through this discussion instead of asking about very specific details which easily can create a stressful situation for the candidate.

I generally do the same for technologies, e.g. what is your favorite feature of C++11? in what situations does that help you? Kickstarting a discussion instead of an interrogation.

Then we come to what I call the comfort zone questions. What do you as a person like, irregardless of the position being in question?

– Do you like to code drivers, middleware or end-user applications?
– Do you prefer to get a problem and really dig into it – like a complex bug – or do you want to be the generalist that holds the team together and spreads knowledge?
– Do you like to have a predictable day where you pick a task and carry it out, or do you like to work in a more reactive way, close to the customer and the chaos of reality?

There is no right or wrong here, only dimensions that can be discussed. There are lots of why and how and did you experience this in a previous job type of questions to keep the discussion going here.

During the entire interview I try to keep the conversation natural while moving through my checklist. I also try to check for a few basic signs, e.g. I like when the candidate has an opinion that differs to mine about something, I like the candidate to not be a 100% match to the position, I also like for the candidate to admit not knowing or being familiar with something. Nothing of this is dramatic in the context of a conversation, but in my experience it helps sorting out the honest and open candidates from those who try to provide the right answers the whole time.

This is what I try to do to make the interview more humane and less stressful. How do you like to do interviews? How do you like to be interviewed? I’d love to hear back from you.