Interviews are, more often than not, stressful experiences for candidates. Part of that experience is due to the very nature of interviews, which are meant to evaluate them, thus being quite uncomfortable as they are being judged. Yet, part of what makes interviews subpar experiences is also the lack of training that interviewers receive.
As a software engineer myself, I have never received any sort of interview training, yet I have interviewed hundreds of candidates. The skills needed to be a good interviewer are clearly not the same as those needed to be a good software engineer, and I've had to learn from my mistakes at the expense of candidates and, potentially, the companies I worked for.
The goal of this article is to condense common wisdom and my past experience into a guide that I wish I had as a software engineer when I started interviewing people. The perspective taken here will be that of an individual contributor, as I believe there is enough material out there catered to hiring managers.
Before the interview
As much as a candidate probably needs to prepare before an interview, so does an interviewer! Never go into an interview without having done a minimum level of preparation.
Understand the role of the technical interview within the hiring process
Hiring processes for software engineer positions tend to have between 4 and 7 rounds. Understanding your role within that pipeline is important, as each round would assess slightly different skills. You should, of course, always be on the lookout for red flags, but you should focus your time on assessing the candidate on a particular skill-set.
Depending on how hiring processes are designed at your company, you will most likely be assessing a candidate's technical skill-set. That either means their coding ability or their system design thinking. You should have a clear idea of the exact skills you must be assessing. Those could be found in the job description, or even better, in a scorecard provided by the hiring manager or the recruiter.
If you don't have a clear idea of your role within the hiring pipeline, that's your cue to reach out to the hiring manager or recruiter before jumping on your next interview!
Get to know the candidate before you meet them
There is definitely value in knowing a bit about the candidate before interviewing them. Reading through their resume and cover letter can uncover interesting areas to further probe during the interview.
At the same time, you need to be aware not to form any judgement or biases before assessing the candidate! You want to have an objective view of their performance and be as impartial as possible when extracting signals.
Having read the candidate's resume before the interview also avoids you asking the time-wasting "walk me through your resume". That usually doesn't add much value, and it wastes time that could be used to gather better signals.
Prepare the questions you will ask, and practice how you will run the interview
This is the most important task in your to-do list before any interview. Make sure that you have the questions you want to ask to the candidate ready, and that all the tools you are going to use in the interview are working as expected (and if not, have backup plans ready!).
In one of my previous companies, I used to have an interview template with questions and links ready. I would then duplicate the document for each candidate and make sure all links were working before the interview.
Ideally, the questions asked in technical interviews should be vetted and shared within your company. To ensure a level-playing field, don't get too creative, and use the same questions for all candidates. Going one step further, you'd want to make sure the questions are asked in the same order, and that you also have a list of hints that you will give to candidates if they get stuck. Before asking a question to candidates, make sure you know how to answer it yourself.
Finally, make sure the interview setup is sound and within your control (good connection, tools available and ready). Also, try not to rely on tools a candidate might have. Don't expect candidates to share their screens. Instead, always provide all tools needed for the interview and make sure they are freely available.
Coming prepared to an interview is a primordial step for an interviewer, and it ultimately benefits the candidate's experience and the chances to find a great match for the position the company needs to fill.
During the interview
You've prepared for the interview and you are now ready to assess candidates! Here are some tips to keep in mind while you're interviewing your potentially future colleague:
Be on time
That's probably the easiest tip. Please be on time!
As a candidate, having to wait in an empty call for minutes is a terrible experience. If you cannot make it on time, please let the candidate know beforehand. Also, keep in mind that candidates have their own lives, and they probably can't extend an interview if you arrive late.
As much as it is important to start on time, it is equally so to end on time. It is your duty to gather all the signals that you need to evaluate the candidate during the allocated time-frame.
Be aware and actively fight your biases
Taking a deep look at biases is a bit out of scope of this article, and I'm probably not the best person to be talking about biases, but you need to be aware of your biases and actively fight them during an interview.
This article can be a good starting point to learn about interview biases, but ideally this is something that the recruiting team or the hiring manager can further discuss with you.
Some strategies that you can put in place include:
- Have multiple interviewers in the same round. I'd personally recommend always having 2 interviewers per interview.
- Keep the questions focused on the topic you are evaluating, and don't ask unrelated questions that could form biased judgment of the candidate.
- Only ask structured questions (which you have already prepared!), and use a rubric to assess candidates' performance.
Take notes
Always take notes during an interview! Don't trust your memory, it is deceivingly bad at remembering events objectively. Also, please tell the candidate that you will be taking notes during the interview.
In terms of which notes to take, it will depend on your style and on which skills you are evaluating, but a template I've followed looks like the following:
- At the top, state the name of the candidate and leave some room for the summary of your assessments.
- Have a structured template with each section and questions you are going to ask (which you've prepared!).
- For each question note the time of when it was asked.
- Take note of the candidate's answers as well as any relevant comments from your perspective.
Regardless of your note taking technique, make sure you do take notes, and that the notes you take are accurate and relevant to the assessment of a candidate. Assume that candidates might read your notes.
Set the candidate up for success
This probably the most important mental model to internalize. To be able to properly assess a candidate and gather high-quality signals, you want to set the candidate up for success so they can show you their best.
As such, interviews should not feel like interrogations. Expectations should be clearly set at the beginning of the interview, and candidates should have a good idea of who they are interacting with (please introduce yourself!). Understand that being interviewed is a stressful situation and try to accommodate the interview accordingly. After all, you are looking for specific skills not probing performance anxiety.
Be upfront about the expectations and about the timing for each question. Share with candidates what specific signals you are looking for. Help candidates on small trivial issues that are not core to the exercise (for example, typos or one-off errors). Try to bring the candidate to a neutral state after each question regardless of how they performed to mitigate any errors in early questions to propagate onto later questions. Finally, try to make the interview a learning experience for candidates by always giving the expected answer if candidates aren't able to answer correctly.
Always leave time after the exercise for the candidates to ask questions
Interviews are a two-way street, so while you are assessing the candidates, they are assessing the company. In a way, you are a representative of the company and its values. As such, make sure to be an embodiment of your company's culture.
To facilitate the two-way street, always leave time at the end of the interview for the candidates to ask questions. Most candidates won't have any questions, but you should still try to encourage them. An easy trick is to ask "which questions do you have for me?" rather than "do you have any questions?".
When answering questions, try to sell the position and the company. As software engineers, the market tends to be quite favorable to candidates. Take the time to answer those questions even if at this point you don't think the candidate will pass the round.
After the interview
Once the interview is over, the candidate can probably relax, but as an interviewer, you still have some work to do!
Consolidate your notes
Block some time after each interview to consolidate your notes, as that is the moment where you still have a good enough memory of the interview.
Read through your notes, add more details in, and write a summary of the interview at the top of your notes. The summary should provide enough justification for your rating and it'll make it easier for other interviewers or the hiring manager to understand your rating. Think of that summary as a way to potentially provide feedback to candidates as well.
Share your notes right away with the recruiter or the hiring manager so that they can proceed with the next step of the hiring process.
Debrief
If you have done the interview as a panel, take the time right after the interview to debrief. Before you start debriefing, every member of the panel need to consolidate their notes and decide on a rating. The goal of the debrief is to present the signals you've gather and check that those correlate to those gathered by other interviewers present during the interview.
In some cases, you'll have a candidate debrief session towards the end of the hiring process to discuss the ratings of all the rounds and help the hiring manager make a hiring decision. Prepare before the debrief by re-reading your notes and be ready to justify your rating based on the performance of the candidate in your round. Ultimately, your goal is to provide high-quality signals to the hiring manager so that they can make the best hiring decision possible on the candidate.
Candidate Feedback
If a candidate asks for feedback, first check your company's policy in that regards. Some companies don't allow interviewers to provide feedback to candidates.
In case your company does allow you to provide some feedback, please take the time to share both constructive and positive feedback with the candidate. As a candidate, I highly appreciate receiving such feedback, and as an interviewer, it has been nice to see candidates appreciating it as well!
That's all folks!
Hopefully this article proves useful, and at least sparks a conversation on how to improve technical interviews.