A pairing test forms part of the recruitment process for a software engineer position at the Guardian. Pairing tests are a fair way to assess candidates on how they approach solving a problem and structure code. While we are relaxed about what language candidates would like to use, we have up until recently been strict with the pairing exercise itself. All candidates are requested to work with a Guardian developer to implement a set of rules for cells of a grid based on Conway’s Game of Life. This has provided many benefits; we have refined the exercise over time and we can use previous experiences to assess a pairing test (though we do not compare the code implementation between candidates). We have a number of people in the department that can carry out the pairing exercise and teach others who want to help in the recruitment process.
However, there are a few downsides to using just one pairing exercise. Many candidates know about the Game of Life exercise through websites such as Glassdoor and it is a well known problem particularly in computer science backgrounds. This is okay, we don’t penalise candidates if they have seen a problem before or not, however working through a problem previously tackled does give an advantage. It can be hard to distinguish if a candidate is recalling from memory instead of trying to solve the problem at the time. This makes it difficult to gauge how a candidate will respond to a problem within the workplace which they have not seen before.
We spread the pairing tests among the development team, on average we can carry out a pairing test a couple of times a week, during periods of high applications this can be more. During last year’s graduate recruitment assessment I paired with four candidates on the same exercise in one day. The exercise is meant to be about working together through a problem however working through the same exercise multiple times can cause the mind to switch to autopilot which is not fair to applicants.
As a result we have decided to increase the number of pairing exercises, any of which can be picked by a Guardian developer prior to the pairing test. We expect to revisit these exercises over time, make amendments and add new ones. The main benefit of this approach is that candidates are limited to how much they can prepare for the test and instead focus on solving the problem within the interview time.
The Game of Life exercise has some great qualities which help us to understand how the candidate breaks down a problem and how they choose to structure their code to meet the needs within the timeframe. We wanted to keep this structure for the new exercises and we’ve created an open repository with all the exercises. We’ve made the exercises publicly available for a few reasons. It keeps things fair between applicants, no-one is given an advantage of knowing the exercise through websites, courses or chatting to someone who has previously applied.
Candidates can prepare for the test if they wish but as there are so many tests it is possible to be given an exercise not seen before. It also gives an idea of the skills the Guardian is looking for, the problems do not test knowledge on method names of a language of choice but instead focus on solving a problem in manageable parts over an hour.
Feel free to read through the exercises and think about how you would solve them. More information about the pairing test and our interview process can be found on the Developer blog. We’ll be using these exercises in the application process for the Guardian Digital Fellowship programme.