Live coding is an interview method used by big tech companies such as Google and Mercari. This video officially released by Google is the prototype of live coding.
Now that remote working is progressing, more and more companies are conducting testing online instead of visiting the office. This is a form of coding and system design that is done over a video call.
Often, candidates receive an invitation to learn about a problem in this area in advance. They are given about a month at most to make their selections.
Advantages of Live Coding
Because it is possible to understand the assumptions and essence of the problem while conversing with the interviewer about the assignment, it is possible to understand the candidate's thinking even without any code or design output. In addition, through communication with the interviewer, we can better understand how to identify the issue, the technical level, and how to proceed to a solution, which we would be able to see if we actually did the work.
In addition, since skills can be measured at the same time as the interview, the selection process may be shorter than in the pre-assignment format, since candidates have less time to devote to it.
Disadvantages of Live Coding
This format depends greatly on the skill of the interviewer to properly evaluate the candidate. You will find that the skills required of interviewers are high enough that Mercari trains its interviewers to perform live coding. If a candidate exceeds the skill level of the interviewer, the interviewer will not be able to understand what the candidate is saying and will not be able to evaluate the candidate correctly.On the other hand, another disadvantage is that it is difficult to keep a log of whether the process is being evaluated correctly, so it can be quite impersonal.
HireRoo live coding can also be logged and evaluated: https://www.youtube.com/watch?v=Lt5VnhX4RyE
How to evaluate
Let's delve into the evaluation method by dividing it into the "algorithm format" and the "system design format. There are some points that are similar to the pre-assignment format.
In the case of the algorithmic format
The following questions can be asked during the exam
- How can we implement this without using a hash map?
- How can we reduce the computational complexity?
For the system design format
Design assignments can ask a broader range of questions than the algorithmic format.
For example, the following questions can be posed during the exam.
- If the number of users increases from 10,000 to 1,000,000, how is it possible to design a system that does not cause failures?
- What is the best design if the number of non-Japanese users increases?
In this way, we can expand the discussion on availability and scalability from various perspectives. In addition, since system design depends on preconditions, it is possible to focus on whether the design can be designed with various design drawbacks and trade-offs in mind.
For more information on live coding in HireRoo, please see below.