Conducting Stress-Free Live Coding Interviews: When and How to Do It
Live coding is one of the most disputable issues when it comes to technical interviews. While some developers claim that this method is outdated, others consider live coding to be an important part of evaluating one’s skills and knowledge.
Even though live coding may be challenging, if conducted properly, it turns into a great interview tool. In this article, we discuss when you need to conduct a live coding interview and how to do it in such a way that both the interviewer and the candidate remain satisfied afterward.
The main goals and benefits of live coding
A live coding interview is exactly what its name implies: it means a candidate is coding in real-time during the interview. The most stressful part about it is that interviewers are present and may be commenting on the coding process or asking questions. This may cause some developers to experience a so-called “stage fear” and it may be especially challenging for those who don’t have much experience in, say, pair programming.
So why do companies prefer conducting live coding interviews as if a technical test task is not enough? Here are a few goals that live coding follows:
- Learning about the candidate’s thinking process: live coding interviews can demonstrate how a candidate approaches a specific issue and what approaches they are willing to take.
- Evaluating the candidate’s communication skills: unlike a common misconception, a critical part of live coding is communicating with interviewers and being vocal about your actions. In this way, you can see how good a person is at communicating their thoughts and asking questions.
- Checking basic skills and knowledge: live coding does not have to be super specific or complex but instead, it’s aimed at checking the basic technical skills and knowledge that every engineer should have within a certain domain.
From the points listed above, it seems like live coding is a highly efficient practice that benefits both developers and employers. However, things may not be so bright on the developers’ side.
Why software engineers loathe live coding
If you conduct research, a great number of developers will most probably state that live coding is an outdated and stressful practice that does not really bring any value to the interview. There are several reasons for such an attitude towards live coding from the developers’ side:
- Too much stress: if conducted wrong, live coding can bring a lot of frustration and stress to a candidate, negatively impacting the test results.
- Live coding results do not equal one’s knowledge and skills: live coding interviews are not enough to evaluate one’s skills and sometimes may mislead an interviewer.
- Irrelevant to a future job: sometimes, live coding tasks differ drastically from what the person will be doing, and hence, it doesn’t make much sense to conduct such interviews.
However, not all developers are so negative about live coding. Many of them understand that this process can really highlight the main strengths and weaknesses of a candidate and that live coding teaches you important skills such as the ability to be vocal about your decisions or pull yourself together in a stressful situation.
In my opinion, live coding is a valuable process and it’s not as scary or negative as people tend to think. The obvious drawback is stress but you can’t avoid it because it’s an integral part of a live coding interview.
There are certain technical fundamentals that one must know (i.e. various sorting methods, algorithms), and the studying of such things, as well as live coding interviews, significantly help you grow as a professional. If one sticks only to the tech stack within a project, this person won’t improve much and the professional growth will be incredibly slow.
It is not obligatory to comment on your every step during live coding - you can just properly write sorting and that would be enough. Another question is why you can’t properly do that. Some engineers blame stress but in my opinion, it’s not stress but lack of knowledge that leads to poor results during live coding.
Raman Navarych, Fullstack Developer and Team Lead at SoftTeco
When should you use live coding during an interview?
Despite the controversy around live coding, many employers prefer using it as part of the hiring process. However, we believe live coding is best suited for the following cases:
- When your projects involve collaboration activities a lot (like pair programming);
- When communication skills and teamwork are highly important at your workplace;
- When you want to see how this particular candidate acts and communicates.
Of course, these cases do not limit the use of live coding for the interview process but most often they determine whether you should conduct a live coding interview or do a regular one with a technical test task. And now let’s get down to the most interesting part - ways of making live coding a pleasant experience (and not a stressful circle of hell).
5 tips on making live coding interviews stress-free
Below we list down the best practices for organizing live coding interviews. These practices will help bring out the best in the candidate and will also help you confidently navigate through the interview process.
Make interview questions open-ended
As we already stated, one of the main goals of live coding is testing how a candidate approaches a problem. And nothing can be as efficient for this task as an open-ended question.
An open-ended question implies there is no strict or single answer. Instead, a candidate is encouraged to take their time to think things over, gather a bit of information, and design their own approach to a set task. In this way, the candidate won’t be too stressed about giving the wrong answer and you’ll be able to observe them in action.
The main benefit of an open-ended question is that it emulates a real-life scenario so a developer will know what’s expected from him. As well, open-ended questions promote communication so you will be able to evaluate how willing a person is to ask questions and gather information.
Scale up the complexity of tasks
One of the biggest mistakes that many employers make when designing live coding interviews is immediately placing a complex and challenging task in front of a candidate. While a test task should not be too simple, it should also not be overwhelmingly hard from the start.
Instead, you might scale up the task complexity and start with something relatively simple. Once the candidate successfully completes the task, you can offer them a more complex task to solve and so on. In this way, the candidate will feel more confident about their success and will be enthusiastic about the tasks instead of fearing them.
Choose tasks from your own experience
Since you want to turn a live coding interview into an enjoyable (as much as possible) experience, it will be a good idea to choose tasks that are similar to the ones on your project or the ones that you’ve encountered before. Maybe there is an interesting issue that you’ve encountered recently and you can turn it into a test task?
Such tasks during live coding interviews are much more interesting than the ones from available question banks. In addition, they allow testing one’s creativity which is always a bonus if we talk about software development.
Conduct mock interviews before the real one
Responsible employers understand that both an interviewer and the candidate should prepare for the interview. Hence, before holding a live coding interview, it might be a good idea to conduct a few mock interviews and see how they go.
Mock interviews allow the interviewer to receive feedback on what can be improved and what went well. In this way, during the interview, you will feel more confident and will be more helpful to the candidate.
Be reasonably helpful
Because live coding focuses on two-way communication, you want to be helpful enough so the candidate feels at ease and is not afraid to ask questions. On the other hand, you don’t want to give everything away and make things too easy for them. Hence, find a perfect balance between mildly guiding the candidate towards the answer and helping them even if it’s not required.
A good practice is returning the question back to the candidate. For example, a candidate may ask if it’s okay if a certain thing happens during the coding process - ask them what should be happening, in their opinion. Note though: it is important to emphasize that there is no right or wrong answer and you simply wish to learn about their way of thinking.
A bonus tip for developers: communicate constantly through the live coding interviews
Even though live coding is intended to highlight one’s tech skills and knowledge, a great part of live coding revolves around communication between a developer and an interviewer. Here are some tips on communicating during such an interview:
- Before the interview, do not hesitate to ask questions about what you are expected to do and clarify everything. You should not enter the interview in a state of confusion.
- Ask questions during an interview if something confuses you or you are not sure about the task.
- Listen to an interviewer and make sure you understand everything they are saying.
- Be vocal about your approach to the problem and do not hesitate to say if you are stuck or unsure - a good interviewer will guide you through.
Despite numerous considerations and controversy, live coding interviews are a great way to boost one’s confidence, and communication skills, and brush up on technical knowledge. However, a good live coding interview requires effort both from an interviewer and a candidate so it’s something not to be overlooked.
SoftTecoView all articles by this author.
Nice Article, It's very helpful
These are fantastic advices, thanks for making this!