Greetings to everyone, I am thoroughly enjoying this journey of interview articles and am thankful to every one of you for being a part of it. After discussing a lot about data structure and algorithm based interviews, today we are going to discuss the nature of these interviews. Is there a scope for improvement? If yes, then what are the measures that should be taken? Let us have a close look at the current status of these interviews and their defects. Overall, we would try to find out possible solutions for them.
In my mind, interviews are supposed to be a predictor of candidates future performance at work.
However we humans are not that simple to be predicted? The same individual could behave differently in different contexts at different times. Due to this, most of the predictions are useless. There is no specific set of rules for humans because each individual is different. Humans have always been unpredictable and this is the reason why we are not hunted down.
But since a couple of years now, it has been noticed that interviews aren’t proving to be a strong predictor for the future in terms of job performance. For proving my point, let us have a look at what Google’s SVP of HR said recently.
The HR said that “We looked at tens of thousands of interviews, and everyone who had done the interviews and what they scored the candidate, and how that person ultimately performed in their job. We found zero relationship. It’s a complete random mess”. This statement stands as a proof that even Google interviews are not able to predict future job performance. We have seen in our previous articles that how interviews at Google take place. Their procedure is meant to assure precisive recruitment but on the contrary, this precision is not being achieved.
Companies always have their own specifications and guidelines for conducting interviews. With these set of guidelines, most of the interviewers are able to convince themselves that the procedure is good and helpful in selecting the perfect candidate. However, the truth is that companies are failing at the interviews and such things are not being discussed much. I would like to ask a simple question, how many companies can actually back up their interviewing approach with sufficient data? Only a few companies would confidently admit to this.
Hiring procedure has become a tedious task. With the ever-increasing demand of good employees, the number of interviews conducted are increasing. Among all this, selecting the perfect candidate is extremely difficult. Companies are putting their best efforts but by asking similar questions, do you believe that everything would be figured out? So what should be done then? Should the companies stop interviewing and start hiring randomly? Is this a good option? No, this isn’t a good option. Random hiring won’t help. At least, with the current hiring procedure, the managers are mentally satisfied that they are trying their level best. By implementing random hiring, this satisfaction would also vanish. But we haven’t reached our optimal solution yet! We need to improve the procedure rather than changing it. I believe that adding up some improvements would make a positive difference.
There are precursors to almost everything in this world. Similarly, the precursor to data-structure and algorithms could be puzzles and brain-teasers. In fact, intellectuals always believe that puzzles and brain-teasers would help in sharpening the mind. They have been a part of traditional tech interviewing. I would like to mention a good example that is found in the seminal book, How would you move Mount Fuji? Page number 6 and 7 in the book mentions that: “Logic puzzles, riddles, hypothetical questions, and trick questions have a long tradition in computer-industry interviews. This is an expression of the start-up mentality in which every employee is expected to be a highly logical and motivated innovator, working seventy-hour weeks if need be to ship a product. It reflects the belief that the high-technology industries are different from the old economy: less stable, less certain, faster changing. The high-technology employee must be able to question assumptions and see things from novel perspectives. Puzzles and riddles test that ability.”
Earlier, puzzles and brain-teasers were asked in the same way like data structures and algorithms.
But nowadays companies seldom use it to test the engineer.
This clearly makes us understand that conducting interviews have evolved over time. It’s all about data structure and algorithms now. Most of the companies follow the same procedure. But it doesn’t mean that the current data structure and algorithms interviews style are perfect.
Next, Let us now discuss what are the defects in the current algorithm based interview process
One of the main problems with the current interview process is that the companies are still using the same low-tech tool for conducting the algorithmic interviews. The tool is known as a whiteboard. Let us now have a detailed look at the problems with the whiteboard.
Problem Number 1: Formatting, predefined notion, and lack of resources
With a whiteboard, it is difficult to code in a neat linear format. Being an experienced interviewer in IT giants, I have noticed that candidates simply put blocks together. They usually cut and paste the code. In fact, this is not only about the interviews, but this is the usual habit while coding. On a whiteboard, doing the same thing needs erasing and would also look like a mistake. There is a possibility that the candidate might shift his/her focus from actual coding and would start paying more attention to the format. This might affect the performance of the candidate. It also makes the candidate nervous and would ultimately send false signals to the interviewer. Another problem is that the interviewers are strongly biased by the visual clues. A candidate’s handwriting doesn’t tell the interviewer about his/her programming skills. In fact, a programmer writes the code on some editor or tool, so the handwriting should never be a concern. But the interviewers yet get affected by the handwriting. This candidate has neat handwriting, slanting of lines is also good, and is also able to fit the code in the provided area while the other candidate is exactly opposite, but actually, this means nothing! A candidate should only be judged by his/her skills and not by the handwriting or any other presentable skills. I have read articles and manuals which guide the interviewers on such specifications about not being affected by presentable skills. The candidate is not applying for a job of modeling, sketching, writing, etc. He/she is applying as an engineer.
Candidates also have a predefined notion about the whiteboard. I have seen many candidates who could perform well under normal circumstances but couldn’t perform with the whiteboard pressure. They are habituated with Google and a keyboard. With a whiteboard, the candidate’s fall into the unfamiliar territory and sometimes feel handicapped. We all need resources to solve problems, without these resources we are simply out of our comfort zone. Due to this, solving a problem becomes more difficult. So if the candidate is deprived of all the resources that would be generally available in the job, it is actually unfair. The candidate is never going to code without using resources on the job, then why should they be deprived of it during the interviews?
Problem Number 2: Error Feedback and Corrections
The biggest problem with whiteboards is that it won’t alert for syntax errors. If you have any programming experience, you must be knowing that syntax errors are quite common. They aren’t intentional nor are they due to lack of technical knowledge. But interviewers tend to forget this and take it seriously. With an efficient editor, syntax errors are easily solved. Interviewers need to understand that syntax errors aren’t a crime and aren’t fatal!
I am not being biased towards the candidates. It is certainly important and useful to know how a candidate would work under pressure because real-time problems never knock your door, they simply enter. But interviewers need to understand that the candidates are already under pressure during the interview. With a whiteboard, the interviewer is just blinding himself/herself from the candidate’s ability. In short, a whiteboard is not a good idea for solving algorithm problems because the candidate will never face a whiteboard while actually working in any company.
We have talked a lot about the problems, so let us now shift to some possible solutions!
Why do you or any candidate appear for an interview? The candidate wants to prove himself/herself as a good engineer and fit for the job. So the best possible way to prove that you can code is by coding! Now discussing from the interviewer’s point of view, how would an interviewer come to know if the candidate can code or not? Quite simple, the interviewer should ask the candidate to code, for real on a computer and not on a whiteboard. In addition to this, awesome programming environments like CoderPad should also be allowed to use which are designed to be used for such purposes. So let us discuss some possible solutions or improvements.
The candidate should be allowed to use their own computer or could also code on a projector screen. If the candidates are allowed to use their own laptops, then they could be connected to the interviewer’s computer as well. In this way, the interviewer can keep the track of candidate’s progress and could also witness the candidate’s approach towards solving a problem! If the interview is being done remotely, nothing better. Remote working and remote interviews have always proved its worth because the candidate could work in his/her own environment.
Allowing an access to Google during the interview is a good option. Even if the candidate is searching for something that the interviewer could have easily solved without accessing any resources, let the candidate still search it. Having worked in Google and Amazon, the first thing I used to do for implementing a well-known algorithm was to search it on Google. Honestly, anyone who hasn’t used the algorithm for a couple of months would be accessing Google. If the candidate is able to search something useful, it simply means that he/she is good and quick at solving problems. searching for solutions is a skill and a task! All software developers need it!
We humans have different thinking, independent thinking, and are also allowed to come up with independent unique solutions. But I have seen that many interviewers only believe that a question could only have one solution which he/she has already on their mind while there could be different solutions to the same question. When the candidate comes up with a different solution, some interviewer’s consider it wrong. So what I would like to say is that always run the code, check whether it is satisfying the requirements and if it is meeting the requirements, compare the solutions. The solution which is optimum should be selected. Talking about running the code, I would also like to mention that you could set up some unit tests and ask the candidate to make the tests pass. The problems should be kept simple rather than making it tricky and leading to some impossible scenarios.
In addition to algorithmic questions, candidates should also be asked domain idioms. Most of the development jobs today are for the position of front-end development. So if the job requirement is for the post of a front-end developer, asking questions like hitting the Instagram API and display images with a given hashtag in a responsive grid would be a good idea. By asking such questions, the candidate could prove his/her worth and this would also be a slight shift from the ongoing algorithm questions.
Let’s summarize here. Discussions on interviews have always been interesting because they are competitive, unexpected, and unique. In this article, we have discussed the concerns related to algorithm interviews and their possible scope of improvement. The first thing that we have discussed in this article is regarding how an interview plays the role of a predictor in terms of employee performance. Next thing we looked the precursors of the current algorithm interviews questions which are puzzles and brain-teasers.
Then onwards, we have discussed problems with the current interview procedure in which the main culprit is the whiteboard. Candidates have often been nervous and under more pressure due to whiteboards because they aren’t used to it. The solutions mentioned are based on coding, how a candidate should be allowed to access Google, code on his/her laptop, and should also execute the code. We have also discussed the importance of domain idioms. In short, there are many things that could be done to make the interview process more efficient and interesting. I believe that hard work and being a little creative always makes a huge difference. So be unique, bring up new ideas, and keep excel in your field.
Here’s the link to the previous article in this series