Leetcode style” interviewing has been the standard method of assessing software engineers for some time. This style of interviewing can be described as a one on one session where the candidate is given a coding problem to solve on a whiteboard while explaining their thought process along the way.

This form of interviewing has long been criticized by candidates as an unfair assessment of the skills they need to perform the role they are being hired for. Yet companies continue to use this as their main interview technique.

This of course results in the loss of many great candidates during the hiring process, which the company would certainly love to have as an employee. Interviewing candidates is an expensive and time consuming process, which is why it makes all the more sense for every company to reflect on whether their screening processes find the best candidates for their roles.

Pull request reviews as a new form of interviewing

While Leetcode style interviewing is by far the most popular way to assess software engineers currently, it is certainly not the only option companies are using. One alternative to the status quo is using pull requests as a tool for assessing a candidate’s skills.

A pull request can be defined as “a proposal to merge a set of changes from one branch into another”. It is the bread and butter of a software engineers working day. In order for the proposal to be accepted, and the author’s code changes to be merged into the main branch, it is standard practice to require one or two approvals from your peers.

To use this as a means of interviewing would be simple. The interviewer would share a pull request from a fictitious teammate, and request the candidate to perform a thorough code review of the author’s code. Ideally, the code would be in the candidate’s preferred programming language and would contain several obvious flaws as well as some more subtle issues. The candidate would be asked to write comments on the pull request, give feedback to the author and discuss these comments and feedback with the interviewer.

I think this is a great interview tool for several reasons. You get to see how a candidate interacts with their peers in what is often a sensitive interaction between teammates. You get to see how they give feedback for obvious problems as well as more subtle ones and assess whether they form that feedback in an empathetic way or not. They get a chance to demonstrate their technical expertise and knowledge of the language of choice. Most importantly, the interviewer actually gets to assess the candidate on work they will actually do as part of their job. Contrast this with Leetcode style problems that 99% of engineers will never need to solve as part of their professional career.

Companies can learn heaps about a candidate from this style of interviewing. I think that the assessment of how a candidate would interact with potential teammates can’t be overvalued. In my experience the teams that I’ve worked with who have been most productive leveraged a high level of intrateam empathy and understanding, which is born from these pull request types of interactions being positive experiences.

Leetcode problems are becoming even more redundant

With more and more use of generative AI in the workplace, leetcode style problems have become trivial to solve. It has never been important for a software engineer to spout off how he would solve a problem using a binary search tree without access to a computer, and even less so now that these trivial tasks can be delegated to AI assistants.

Leetcode problems have always been a (bad) proxy for assessing how software engineers approach problems. They also force candidates to prepare for these interviews by memorising various algorithms and data structures purely for the sake of the interview. A total waste of everyone’s time.


It’s ultimately in the interest of the hiring companies to throw out this dated technique and replace it with something that actually assesses how software engineers work in this day and age. I think pull requests as an interview tool could provide a step in the right direction to finding the right software engineers for your organisation.