The single most important job of a software manager is to hire the best people and retain talent. That’s it. All the rest comes in second. However most young managers have a fear of interviews, “How do I figure out if the candidate is smart? Is he a right fit ? Will the candidate be motivated by the work he will be doing in the company ?”
The reality is that it is impossible to answer all this questions in 1 hour and a half. There are however a few things you can do that will reveal yellow and red flags.
I will mainly talk here about the on site interview and what goes down. I will leave the CV searching, screening and the job offer for other posts.
The trick in software is that you just want to get the best people that you can. In my experience, you will encounter 3 types of programmers:
- the masses (easy to filter out, just ask 2–3 easy questions)
- the maybes (maybe they can contribute, maybe they will do a good job)
- the superstars (writes a full compiler, a full app, a docker automated infrastructure service in a weekend just for fun)
Technical skill is essential, motivation is also important but you still have to see that the candidate is a team player. You have to have at least a future peer interview him. This should be kept short, say about 45 minutes to 1 hour. The candidate must get along with your team otherwise nothing is going to get done.
Talk before with your colleague on what he should follow through the interview. The focus must be on technical stuff depending on the position but he must also keep an eye open on how he interacts with the candidate: do they get along, can he envision himself working with the candidate for the next years to come?
I remember my first interview, I think I was a lot more nervous than the person I was interviewing, and it made sense because he was definitely in the interview chair more times than I was in the interviewer shoes.
It is very important to have a clear structure of how the interview will go down. You need this because you’ll just have 1 and a half hours to answer as many questions about the candidate as you can.
Be sure that there is going to be a lot of jumping off the path you have planned but always remember that you are in control and it is your duty to point the discussion in a direction that you think will reveal answers to your questions.
It is essential to get in the interview unbiased. You have to make up your mind in and after the interview has finished. Don’t make the mistake of entering the interview thinking that this will be a stellar candidate or not. It will mainly work against you if you do.
First part, the opening 10–15 minutes
Make the candidate feel at ease. Introduce yourself and offer a cup of coffee, tea or water.
Engage in a friendly discussion about a short topic (maybe he has attended a college you have, ask about a professor, a course he has in his CV, ask him about a hobby that you also find interesting). Keep it short not more than 10–15 minutes and try to create a connection with the candidate.
The last thing you want is to rush in and start asking interview questions. I would personally refuse to work in a place where the interview goes like that.
Second part, recent projects — 20 minutes
Start asking questions in regards with the candidate’s latest projects. Here you can easily spot passion and interest for programming and technology which makes for a big plus. I haven’t met a good programmer that is not passionate about technology or projects done both for work or personal use.
From my experience if he has worked in a team there is going to be a lot of “we, we, we …”, so you need to ask what was his contribution in the team and what were his responsibilities.
You have to check that he has done what he talks about. Try asking specific technical questions. For example if you have in depth knowledge of MySQL and the candidate said he has designed and done the MySQL scheme for his latest project you can start asking specific technical questions. Go down the rabbit hole as much as you can in order to prove that the candidate did all of what he says he did and knows why and how things work.
Third part, easy programming questions — 20 minutes
Ask some simple programming questions. If the candidate applies for a Java position, ask for a function that reverses a string or some language specifics. This should be enough to filter the masses, if the candidate is struggling with such easy questions this is a serious red flag.
Fourth part, programming questions — 20 minutes
Bring in the heavy guns. Give him a problem or ask algorithm questions. One thing to keep in mind here is to make him write code on the blackboard. If he is applying for a job that requires him to write and review code you must make him write code while solving some algorithmic problems.
I don’t care if he is a junior just out of college or a senior architect (I may get some hate on this one:) ) he has to write code because talking about code and doing it is very different. In the end you have to answer the question: can he write code ?
Closing remarks 15–20 minutes
Ask some specific questions that you may have. For example the fact that the candidate changed 4 jobs in the past year is an yellow flag that can be ok or can rapidly turn into a red flag. Ask the candidate, see what his reasons are.
At the end let the candidate ask you questions that he may have. Most of the questions I’ve got were related to the team, company vision and process orientated things. It is ok if the candidate has no specific questions.
Another thing, after the interview don’t forget to write down your impressions and thoughts of the candidate. In a couple of hours you will forget specific details and the next day you’ll barely get the big picture of how it went.
The hiring process is undoubtedly subjective. You or the candidate can have a bad day. Maybe the candidate is very nervous and you can’t get much out of him or you just can’t figure things out, is he a maybe or a superstar. If you can’t figure it out, the answer is no.
Keep in mind these 5 main parts of an interview. This will help you guide the interview and answer the one important question: hire or not hire.
You have to keep things on track and drive the interview in the directions that you see fit. Don’t forget that you have to hire the best people and you only have 1 hour and a half to figure it out.
Best of luck!