I have been involved in quite a lot of Software Engineer interviews in my life and have seen myself on both sides—as an interviewer and as a candidate. With over ten years of experience, it’s much clearer that the outcome depends not just on the skills that the candidate brings. Surprisingly, the quality of the interviewer is a non-trivial factor that cannot be ignored. The interviewer sets the stage of the interview, which makes a huge difference in the talent selection process.
Over the years, I have put quite a lot of time into improving my interviewing skills in an effort to make sure that I don’t let down the prospective candidates. Quite a lot of interviews I conduct are for college graduates with atypical resumes devoid of usual work experience. This means that the interviewer has to play a much larger role in the interview.
To me, a great technical interviewer possesses the following qualities:
Makes the candidate feel welcome and relaxed 😌
It should not come as a surprise that interviews can be nerve-wracking, especially for a subset of people. Just because a candidate is nervous does not indicate that they are not a good candidate for the position they are being interviewed for. If we, as interviewers, want to ensure that we can find the best fit for the job, we need to create the right environment for the candidate to showcase their skills.
If it’s an hour-long interview, I reserve the first few minutes (up to five minutes) to make small talk and icebreakers, introduce each other, and, at times, chat about things not on the agenda. I strive to create an environment in which the candidate would consider me their co-worker during the interview, which in turn helps me gather enough data points to evaluate them. If the candidate finds me intimidating (for whatever reason), they might not talk through their problem, which reduces their chances of success.
While the bulk of the responsibility falls on the candidate, interviewers represent their employer and have a moral obligation to meet the candidate halfway on responsibilities. Every interview, an interviewer takes up an hour, and they are not working, which makes it important that we utilize this time to the best of our abilities.
Outlines the structure of the interview 📓
Different parts of the interview aim to understand different aspects of a candidate’s skill set. Some interviews can be purely behavioral, some can be system design, some can involve algorithms or data structures, and some can be a mix of them. It’s imperative for an interviewer to be clear about what this specific interview will entail.
Is it a system design or API design interview? Or both? If this is a coding round, how many questions do you intend to ask? If there is more than one, then the candidates can pace themselves accordingly.
This is my go-to statement when describing the structure of the interview:
The first five minutes we both will introduce ourselves. The next 35 minutes is for coding, which will utilize the shared notepad link. Then the next ten minutes, I will ask you some behavioral questions and leave around ten minutes at the end for you to ask questions
Sets expectations, if required 🙌
There are times when you need to set expectations for the candidate. If there are two questions, do you want the candidate to finish both of them or is the other question a stretch goal? If you don’t want to let the candidate know, that’s fine; else, let them know beforehand so that they can pace themselves accordingly.
If you are asking a design question, try to be a little more specific. Do you want them to design the classes, methods, and properties? Do you want them to write APIs, and how do they interact? Do you want them to investigate how the API will be implemented? Do you want them to make a service-based architecture design? Do they need to show how an API call will flow from the client and which services will be utilized? You won’t have to tell them everything, but given the time constraints, it’s wise to give them some kind of direction so that they can actually meet your expectations.
If you are taking notes and will not be looking at their general direction (in person or virtual), then let the candidate know that even if you are not looking, you are still paying attention and taking notes. Tell them you are all ears even if your gaze is on the screen. This will stop needless pauses when the candidate looks at your direction to ensure you pay attention.
Writes down the question before narrating 📝
Consider this experience - you, as a candidate, are interviewing remotely and using a shared coding link. Now, the interviewer is going to provide you with the coding question. They start explaining, and you are still looking at the coding pad, and nothing appears. The interviewer finishes the question, but you are not able to grasp it completely. You ask them to repeat again so that you can take a note on the code pad. All of this could have been solved if the interviewer came ready and shared the question before narrating it.
Interviews are time-constrained, and every second counts. You, as an interviewer, can even ask the candidate if they choose to read it themselves or want it narrated. It should be our job to keep in mind any cultural differences and differences in accents that can make it difficult for the candidate to grasp the question during the narration.
Here’s my method
I am going to post the question on our shared code pad
Let me know if it shows up on your browser?
Now, I am going to read it out it for you… (narrates the question)
Now i’ll let you read it and start working on the problem
Leaves at least 5 mins for questions ⏳
This part of the interview can sometimes lead to heated debates (surprisingly) as not everyone thinks that it’s that important. Maybe it has to do with the fact that there is a belief that what question you ask as a candidate makes a difference in the outcome. Honestly, I have no idea if that is true since when I was an interviewer, I didn’t let it guide my final decision.
This brings me to my go-to statement before I ask the candidate questions.
We have arrived at the end of the interview and I have enough information in my notes. I want to spend the next 5-10 minutes answering any questions you might have
Some people might disagree with this approach, in which I explicitly mention that it’s not going to make a difference.
Hear me out—It’s important that a candidate can ask relevant questions about the team, role, and company without being encumbered by the formal diplomacy associated with asking questions that are themselves part of the interview. If I am in the interviewer’s seat, I will do the job to the best of my abilities. I believe that every candidate deserves a fair chance since they don’t exactly have an option to appeal the final decision.
Closes the interview with ‘next steps’ 🤝
It’s a bit jarring when I or any interviewer ends the interview with, “I think we are out of time. Bye.” Initially, I thought it was just me who ended up getting such interviewers, which was quickly proven wrong when I talked to some of my friends. How hard can it be for the interviewer to spend around 15-30 seconds providing the candidate with some information?
The closing statement doesn’t need to be rehearsed like it’s a court appearance but can be as simple as
I will send the feedback to the recruiter who will get back to you soon
or some follow-ups like
If the recruiter has not specified how quickly they will get back to you, contact them after 36 hours, 24 hours if you are on a tight timeline
If it’s a part of the interview loop, just ask the candidate
Do you want me to stay on the call till the next interviewer arrives?
It could be even as simple as
Your next interview is scheduled after 15 minutes, so now would be a good time to get fresh and be ready for the next round