Conducting a technical interview can be a challenge, while there are a lot of articles and blog posts on preparing for a technical interview, there are only a few on how to conduct one. Many established procedures on conducting one turn out to be inadequate and lead to companies overlooking strong candidates.
Technical interviews are often intense and require you to prepare yourself as both the buyer (hiring a candidate) and the seller (representing your company’s interests and culture). A lot of thought and a solid framework is required in conducting a technical interview that can demonstrate a candidate’s hard skills as well as soft skills and help you find a person that will be able to add value to your team/organization.
Moreover, it’s extremely important to remain ethical and adopt a standardized rating system to assess a candidate to ensure that everyone is on the same page before the interview. The best technical interviews are designed to determine the candidate’s motivation, their areas of expertise and how exactly they’ll fit in the role that you’re offering. Such a plan will ensure that the company will keep getting quality hires consistently.
In this article, we highlight some important points to keep in mind for different stages of conducting a technical interview.
Designing the Interview
1. Defining the role / Setting the goals
First and foremost, before creating any technical interview, one should have a clear picture of what the company wants. Bring in your tech teams together to understand what the hired person should be able to do:
- Can write working code
- Interact and discuss with other people in the team
- Is fun to work with
Usually, expectations change while the job description remains the same, look at your top performers to identify what makes them so valuable for the company, what skills they possess and what they have in common. Write it down! A written description of attributes that you’re looking for is a must to ensure that it accurately reflects what is required of a person.
2. Structuring the interview
Once you have a defined role, you have to plan the structure for the interview. Generally, technical interviews last for 45–60 minutes. You have to make sure that you make the candidates code and maximize the candidate’s work time so that you can assess their abilities. You can allocate the time slot as follows:
- 15% for the introduction and resume review/past experiences
- 70% for coding
- 15% for code walkthrough and asking the technical questions
The coding test is often done in the form of a ‘whiteboard interview’. While whiteboarding is effective in assessing a candidate’s coding and problem-solving skills, it turns out to be messy and can be an overwhelming experience for them.
It’s much easier to code on a computer and also neater to understand. Hence, making them code on a computer is a smoother option. You can ask the candidates to bring their laptops or provide them with one during the interview.
3. Preparing the task
With an interview structure in place, you can start preparing your questionnaire. When it comes to creating tasks, you should prepare a standard set (write it down!) so that you can assess your candidates on an equal footing. Here are a few tips to follow for setting the technical part of the interview:
- Keep questions vague and open-ended instead of basing them on elegant algorithms, so that it’s more about the approach rather than the final solution
- Keep a few design questions so that people can think about a bigger picture
- Create multi-step tasks to offer you multiple points for discussion and see how the candidates refactor their code
- Define tasks with proper description, background information, constraints, etc. so your expectations are set straight
- Base tasks on real work situations that the hire is most likely to work on
- Don’t ask questions that you don’t know the answer to, you must know what a good/poor answer sounds like
- Don’t make the questions too lengthy else you’ll drive away good candidates
- Make questions fun so that people enjoy working on it
Before the Interview
1. Testing the task
Before you provide the task to the candidates, test it on your coworkers/teammates under the same interview constraints. Make a clear note of their approaches, the time taken to finish the task, where they got stuck, etc. There are multiple benefits to it:
- Helps you understand the task better: its difficulty level, multiple approaches, etc.
- Allows you to find problems/inconsistencies in the designed task, offers room for improvements/modifications
- Prepares your colleagues to come up with contextual questions during the interview based on their own experience as well as in assessing a candidate’s solution
Though testing the task beforehand requires you to put in some extra effort, overall, it’s a good strategy to make the interviewing process much more meaningful.
2. Selecting the interviewing panel
What makes technical interviews challenging for recruiters is that they usually don’t have the same technical skill set that is desired in the candidate. To make life better, it is important to have a good mix of people in the room to eliminate hiring biases.
It’s often said that employees are as good as the hiring team, here are a few traits of a great panel:
- Has people from different backgrounds and genders and various levels of seniority
- Has senior and junior developers from the team that the potential hire will join
- Can give genuine and detailed feedback
- Is not too crowded, too many people not only overwhelm the candidate but also make reaching a decision longer
It’s always a good idea to include those who tested the task beforehand on the panel, they can be really helpful in navigating through the interview and assessing the technical skills of the candidates.
3. Analysing resumes
While resumes today are not a judge of someone’s true potential, they still offer a lot of insight into the candidate.
- Carefully skimming past the resumes of the candidates will help interviewees in determining the areas they can probe further to see what the candidate has accomplished in his/her previous roles.
- A careful analysis can also help you separate facts from fiction, for example, a candidate who has made things happen will have no problem in answering or explaining his/her achievements on the resume.
- Based on this preliminary analysis, you can design the non-technical questions for the interview.
During the Interview
1. The introductory part
Beginning with your introduction, be it formal or informal sets the stage for the interview. This is the part where you’ll get to ask non-technical questions to the candidate or screen the candidates for their soft skills i.e. communication and time management, overall personality and attitude towards work, ability to lead, etc. While technical questions are the focus of any technical interview, the person should also be able to fit perfectly into the team.
- You can start by picking out specifics from their resume to determine their experience and areas of focus
- Ask questions that provoke a story from the candidate, allowing them to walk you through their experience. You can find some examples here and here.
- Follow a standard set of non-technical questions as well though there will have to be a few on-spot improvisations depending on the candidate’s past experiences and answers
- Don’t just stick to a resume interview, your interests mainly lie in what the candidate can do for your company, not just their previous accomplishments.
- Non-technical questions must be asked before technical ones as the technical portion can make the candidate nervous and their mind could be fixated on the things they have missed
- Do not waste time talking about random things that are not in the interest of either the company or the applicant, for example, a football match or a tourist spot that you’ve been to.
- Remember to sell the job, you are also being interviewed by the job applicant. You have to demonstrate your company’s work culture and do thorough research on your competitors and what makes you stand out from them
2. The coding part
Accounting for nearly 70% of the time, this is the highlight of the interview, based on which you’ll decide whether the candidate fits into the role. As said earlier, make your candidates code on a computer instead of a whiteboard. Here’s how you can go about it:
- Provide the problem on a printed sheet of paper or a text file, with clearly defined questions and any information the candidate might need to solve the problem
- Make the candidate run and debug their code, this is often skipped in many interviews. Allowing candidates to execute their program will offer insights into their problem-solving skill and sets them to succeed
- The goal of the technical part is not to get the perfect answer but to explore various approaches to find a workable solution
- Mistakes should not be judged immediately, it’s okay for us to make mistakes. The candidate could have a different idea in their head which may or may not be wrong. What matters is their ability to recover out from these mistakes, this is what you should look out for
- Make the whole process more discussion friendly. Let candidates approach you for doubts and discussing what they plan to do
- You should keep the number of times you interrupt the candidate while working to a minimum. Regular interruptions can interfere with the workflow of the candidate and can also make them more conscious about what they are doing
- Make timely notes of your observations, see where and when a candidate first got stuck or found the answer to the question, where they approached you for help or where you had to step in to interrupt or how they were at debugging the code
For a detailed reading on the coding/programming part, read this brilliant blog piece.
3. The walkthrough part
Once the candidate finishes or the allotted time has passed, you can start questioning how they accomplished the task provided to them. Though by now, you would have got a fair understanding of their technical skills, asking further questions can help in improving that understanding
- Ask the candidate to walk you through their approach and why they decided to choose that approach
- Ask them what they could have done differently or what would happen if you were to tweak certain conditions.
- Don’t rely heavily on the code, focus more on how the candidate went about solving the problem
- Avoid grilling the candidate, know when to move on to the next question. This often leads to awkward moments in the interview
After the Interview
We have finally come to the end of the interview, the panel can now meet to exchange their notes and discuss their experience with the candidate. Each member should individually express how they feel about the candidate. The panel can then critically analyze the feedback and decide whether to offer the job or shortlist for the next stage of the interview. Take a look at a few points that will help you make your mind
- The candidate can improve your team/company’s performance
- Try invalidating your first impression based on other interviewer feedbacks to correct any sort of bias
- Remember that you are looking at only the best ‘available’. A majority of the talent pool is employed!
- You are hiring a human, not a machine
In this article, former Amazon VP, Neil Roseman says that the expectation should be to hire better people than when you were hired. Ultimately, you want someone smart, can take charge, lifts the team’s spirit and is a fun person to work with!