Are Code Tests Necessary when Hiring Software Engineers?
And do they prevent a diverse and inclusive hiring process?
I have applied for many different jobs over the last few years, and not once can I look back favourably on a code test. I cannot think of one good experience.
From replicating whole websites, to pair programming, to white-boarding problems - I have done most of them, and more often than not I have made a mess of them.
I am not good being put on the spot. I panic, my brain goes to slosh and therefore I cannot perform or think logically as I would in a normal situation.
Sure, being able to go through a code test when you are at home in your own time is probably the least of all of these evils, however what has let me down here is the fact that I find it genuinely hard to find the time to sit down and spend four hours or so to complete a coding test whilst holding down a full time job AND applying elsewhere.
Because I can't perform on code tests has never meant at any point I am less competent in my job as others who potentially flourish in these situations. Being able to write code and perform challenges on cue & under pressure is not something I have ever experienced in my years of working as a developer... so why do we test for it in our hiring process'?
For a fact, I know I am not alone in these frustrations.
And because of this fact, coding tests in interviews are **not** as inclusive as they could be. They can alienate those of us who are overcome by anxiety by putting candidates in a high pressure environment to "mimic" a situation that just never happens in a day to day role as a developer, they can alienate those of us who don't have the time to spend hours building an app outside of our day job and they can alienate those of us who don't have a background of CompSci education by focusing on algorithm/logical problems that we don't often come across in our day to day jobs.
I want an interview process that allows everyone to show their potential to do the job at hand.
Sponsor this Newsletter and advertise your company/product here ❤️
Get in touch - firstname.lastname@example.org
Since being in a fortunate position where I can think exactly about the hiring process' of my last two companies, I have run rounds of hiring without a code test at all.
The first of which was at Mango Solutions, where we employed a senior full-stack engineer without a code test. We talked through a project the candidate was working on, which allowed me to ask some questions regarding decisions they had made in their app. We talked through technical trade off's and brainstormed some ideas, ultimately it gave me a great idea of how the individual thought, whether they were someone I would want to work alongside.
Really, the aim from a technical interview is get a look at how the candidates mind works. Having a technical conversation like the above is much closer to real life situation rather than simulating a test.
Traditionally at Monzo, if you applied to be a web engineer at the company, you would be given a take home test which involved working with a partially finished application. You could work with a code base that was already there to increase performance, make the app accessible etc. - and then when it was submitted you could talk through why you made certain changes and what you could have potentially done better given more time.
It was never about the result of the code however. There have only been a very few amount of times when a candidate would not progress to speak through the application, as the main benefit for the interviewers is the follow up questions, and speaking to the candidate. Most of the useful information is gained from talking through why they made certain decisions, what they would have done differently as it offers a glimpse into how their mind actually works.
Because of the above, and because we wanted to make the process as inclusive as possible, we decided as a group to make the code test non-essential in our last round of web engineer hiring. We gave the option to the candidate to whether they wanted to talk about a code base they have already created, but equally if they wanted to do the test, that was fine as well.
The intention of this was to ensure that the process works for everyone. The candidate has the freedom to choose the process that works best for them, ensuring that our interview is inclusive to everybody. We are even open to hear if the potential candidate has any suggestions to make the process more comfortable specifically for them.
In summary, and answering the original question "Are Code Tests Necessary when Hiring Engineers?" - In my experience the answer is no.
In fact, I would go as far as saying that they can hinder your search for an engineer, segregating people who don't naturally lend themselves towards performing in a traditional code-test environment.
It's something worth thinking about, and I am in no way suggesting what the industry standard should be, however I definitely think that to ensure your companies success in creating a diverse and inclusive hiring process then it is worth examining how you are testing your candidates technical ability.