Interviewing a candidate is hard, and is as much an art as it is a skill. It usually takes us months of working with someone to understand their skillsets, knowledge, attitude, and motivation level. Interviewing is about doing that in a few hours. Besides, interviews are the first interaction of a candidate with the company and they are evaluating the company as much as the interviewer is evaluating them. So it's absolutely crucial to impart a great candidate experience.
I remember the first time I took an interview for one of my juniors in college for the robotics project I was working on at that time. I asked him a few brainteaser questions similar to what was asked of me when I joined the project. Looking back, the interview was more about me trying to appear smart and less about evaluating the candidate.
"Producing a great interview requires you to acknowledge the fact that, or to pretend as if, the person you are interviewing is more knowledgeable or interesting than you" - Mokokoma Mokhonoana
As an interviewer, our goals during technical interviews are: A standard guideline I usually find quite useful to be a better interviewer is as follows:
Try to follow a structured approach for interviewing. Having clarity on which attributes to evaluate the candidate for helps us come up with the right set of questions. Be well prepared with the questions and read the resume of the candidate thoroughly before the interview. An example for such an exercise for system design interview will be:
Conducting the Interview
Arrive on time — interviews are almost the first meaningful interaction of a candidate with the company employees. We should strive to create a great first impression.
Get rid of all distractions like phone, messaging tabs on your browser and give your full attention during the course of the interview.
Introduce yourself — give a brief introduction about yourself. Make the candidate feel comfortable by checking if they need some water or coffee. Also mention that you will be taking notes during the interview.
Explain the format of the interview to set the right expectations. For example, a good introduction will be:
“This will be an hour long interview in which we will design an end-to-end system and discuss the tradeoffs around our design choices. We don’t expect to finish the design in 1 hour, but we will try to explore as much as we can. I will leave 5 minutes towards the end of the interview to answer any questions that you might have."
Always present the question in written format to the candidate. This saves so much time in repeated explanations and avoids misunderstanding. Also, ask if the question is clear to the candidate once they have gone through it.
Avoid early interruptions — Try to avoid giving hints too early or asking for explanations early on while the candidate is coming up with a solution. This disrupts the thought process of a lot of candidates and also biases them to think in the direction of the solution the interviewer is thinking. Be very judicious in giving hints since giving every hint is losing a chance to get an extra signal. The tradeoff lies in giving hints now to save time in the hope of collecting more hints later. With time and after calibration on a few interviews, you will learn to develop the right tradeoff balance.
Guide if the candidate is going wrong or is stuck — If the candidate is going in the wrong direction, give hints to bring them back to the right track in the interest of saving time. The same rule applies if the candidate is stuck for more than 2 minutes on a problem and is unable to move ahead. A good hint that usually helps the candidates make progress is to ask them to come up with a working solution, even if it's suboptimal.
Look for major red flags: A very wrong approach or confusion in the basic concept shows a lack of understanding of the domain and should be specially noted.
End the interview on time: It's a good interviewing skill to end the interview on time. If you think you can extract more signals by extending for 5–10 mins, then it's fine to do so. In such cases, please ask the candidate if it's okay to extend the interview.
Deliver a stellar candidate experience: Candidate experience is determined by how the candidate feels after the interview. The candidate shouldn’t feel dejected after the interview, instead, the interview should feel more like an experience of working with a colleague and learning something from it. Some key tips to deliver a great candidate experience are:
Be humble and respectful to the candidate.
Be patient and listen — Let the candidate complete their answer without jumping in and trying to appear smart. If you do not understand what the candidate is talking about, clarify by asking questions. If you are finding it really hard to understand the candidate thought process, it points to an inability of the candidate to communicate effectively.
Treat every candidate as if they were a stellar candidate.
Choose questions wisely and navigate the interview according to how the candidate is responding.
- Leave some time for the candidate to ask questions at the end.
Follow a scale for rating the candidate. Don’t just give an overall rating but rather rate along all the attributes mentioned earlier. Even if the candidate was an overall no-hire, the attribute-wise ratings are useful in the future for considering the candidate for other similar roles. Always give your final rating only after you have written down the detailed feedback of the candidate. It has often happened that my pre-thought ratings evolved after I penned down the detailed feedback. As with a lot of engineers, I hate to invest time in writing the feedback — however, over the years, I have figured out a way to write detailed interview feedback quite fast. Will write about that in my next post!
Thanks for reading! Let me know your thoughts in the comments. If there is anything else you will recommend for being a great interviewer I would love to learn about it!