DEV Community

Cover image for Why I Stopped Interviewing with Companies That Require a Coding Test
Bradston Henry
Bradston Henry

Posted on • Edited on

Why I Stopped Interviewing with Companies That Require a Coding Test

You may be familiar with a famous quote thats has been attributed to Albert Einstein:

"Everyone is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid."

Now there is some debate if Einstein actually said or wrote this BUT the wisdom, nonetheless, rings true:

If you judge everyone by the same metric, there is a chance that you may not get an accurate measure of success.

A cartoon showing a monkey, a penguin, an elephant, a fish, a seal, and a dog tasked to climb a tree for a fair selection test. Below the quote from Albert Einstein starting with Everybody i s genius.

Sadly, during my 7+ years working as a professional developer in the tech industry, I have seen a metric used to measure developer and programmer success that in MOST cases does not match the actual skills needed to be successful.

And if you have at any point attempted to apply for a job or interview for a position, there is a STRONG possibility you have encountered this metric; Coding Tests.

Coding tests come in several different forms but at their core, their goal is to test your proficiency with computer science principles, algorithms, and general CS knowledge. Coding tests can be delivered in-person on a whiteboard, virtually in a coding sandbox environment or in live-virtual environment where an interviewer asks you to share your screen and watches you work.

Fundamentally, coding tests are non-problematic. They are just a tool to measure a developer or programmer's competency and can be administered to most any job applicant fairly consistently.

But as with any tool, when used inappropriately or without the proper understanding of its usefulness, they can do more harm than good.

So let me briefly summarize why I no longer interview with companies that require a coding test.

NOTE: I am specifically using the word "REQUIRE" as I do not have an issue with a company that uses coding tests as one of their many metrics to evaluate candidates. I am particularly talking about companies that evaluate all technical developer/programming candidates via a coding test and DO NOT have an alternative option for a coding test in place.

1. It Shows a Lack of Care or Concern

So I can understand in the grand scheme of things why coding tests are useful. They allow a hiring team to quickly screen a large amount of candidates and gives a fairly easy metric to judge candidates by. It it by no coincidence that most very large tech companies use them in their initial stage of the interviewing process as a means to weed out "low competency" candidates.

But it is this EXACT reason that coding tests being a requirement in an interview process shows a lack of care or concern. It shows that the goal in this interview process is to weed out candidates, regardless of their wholistic strengths.

It doesn't matter if the candidate is a self-taught programmer, a high-performing developer who has worked in the industry for decades, or a college student pursuing their first opportunity, coding tests only evaluate you on a single metric. And if you have spoken with many recruiters or HR professionals at some of the bigger companies, it acts as the ultimate gate keeper to opportunities.

Woman shrugs her shoulder indifferently

Being a tech professional who has been interviewee, interviewer, and sometimes just observed technical interviews, I have found that coding tests can be used to invalidate a developers experience and skill in an instance.

I have watched as EXTREMELY competent coder crumble when they were given a coding question that they struggled to answer and that I later found out, the interviewer didn't know how to solve. The interviewer simply went online found common coding questions and presented them to candidates. Luckily, I was able to participate in the interview and "intervened". This particular story ended up having a happy ending but not every interview will have an "observer" associated to it.

I have personally been in interviews where I have done stellar on all technical questions related to the actual role (as explicitly stated by the interviewers in the process) but was no longer considered a viable candidate because I had a hiccup trying to solve an esoteric algorithm coding question that would NEVER be used on the job.

Personally, a coding test requirement in the interview process indicates to me that an employer and an hiring team aren't really in touch with what makes a quality developer and how to measure actual success. But are looking for any easy way to comb through candidates and minimize interactions with candidates until they are further down in the process.

2. Some Candidates are at a Massive Disadvantage

This point personally hits home for me, but there are circumstances that can make a coding test extremely unfair to candidates looking for an opportunity at a company.

Imagine we threw away everything I said in my first point. Imagine that all coding tests were administered by hiring professionals and teams that genuinely cared about their prospective candidates. Even if the hearts of every interviewer and person in the hiring process was absolutely pure, coding tests would still put an undue burden on otherwise competent and valuable candidates.

How so?

Well it comes down to the fact that some people are ALWAYS going to perform badly in a code "testing" setting. May it be someone with a learning disability, an individual with forms of anxiety that affect testing performance, or someone who's background makes the testing material extremely difficult. And know, this is not an exhaustive list but a representative list of limiting factors to coding test performance.

Sadly for me, I've ALWAYS struggled in high pressure testing environments (ask my college GPA about that ๐Ÿ˜…) and I've also struggled with coding tests because as a self-taught programmer, things like algorithms and CS concepts are something I didn't really encounter until later in life.

Because of those factors, it makes coding tests extremely difficult. Even in coding tests where I have done "okay", it still didn't feel good. And though I have always performed extremely well at any role I have ever had the opportunity to work in, a coding test metric would show me, in most cases, as absolutely incompetent.

Woman looks defeated with forehead laying on laptop keyboard

There was one occasion where I was going through an interview process and performed will at almost every stage. At the very end of the process, the recruiter was giving me amazing feedback and was about to end the interviews for the day. (NOTE: This was an on-site multi-hour interview.) As I was heading out, I was asked if I'd be willing to do an "extra" interview with one of the "higher-ups" in the company and I was fine with that. What I didn't know, was that they were going to administer a "test" to me. Within the course of 15-minutes, I lost the job. My anxiety destroyed me. EVEN THOUGH, I was found to be competent and qualified by others in the process, my failure of this one "test" ended my chances.

That was a very personal experience, but I have a feeling that I may not be the only person who has been summarily disqualified from a position because of a poor performance on a test (some which don't even cover skills that would be used on the actual job).

3. It's Not Worth It!

I have a personal conviction when it comes to interviews, that goes like this:

"You already know what you know, No need to prepare!"

Once again this is a personal conviction (which I don't expect anyone else to have) so my personal mentality with interviews has always been to do no extra preparation other than maybe reviewing what I already know (and brushing my hair and looking presentable ๐Ÿ˜…). I want interviewers to have the most honest reflection of my skills. I want them to see me as I would be if I worked for them on a daily-basis.

I have on multiple occasions in the past been told I need to "study for this interview". I would then be sent a set of links or a PDF on how to prepare for this interview and necessary skills I need to learn to "pass" it.

When I was looking for my first job in the industry and I had almost no experience or knowledge that I could exemplify in a demonstrable way, I kind of got it. Companies need to know that I can learn and that I'm willing to take challenges, so fair-play. But interestingly enough, I got my first job in the industry without having to study or take an explicit test; They did test my knowledge but it was relative to the job role itself.

Man adjusting smart watch on wrist

Now, as an experienced professional, I personally refuse to study for a job interview for skills that I will not use on the job. It's just not worth it.

With the busy-ness of life and the difficulty of finding time to study with a full-time job, in most cases, I have been asked to study concepts and materials that I almost never have and never will use in my day-to-day. There is a good chance that after I pass the test that I may NEVER use the knowledge I studied for in a meaningful way when I do land the job.

I have from time-to-time contemplated maybe studying for a coding test and then realized I'd rather spend my time learning skills that I will most likely use in the future. It many ways, I feel that asking to study for a job interview should not be the standard. You should be evaluating the candidate based on their current skill, not on a skill that they don't currently possess.


Now, at the end of the day, this is all my personal opinion and comes from my time in the industry but I'd love to hear other people's thoughts. I am not completely against "coding tests" per-say, but I do feel that they are overused and/or misused in the tech industry. At a minimum, I think there should always be an alternative to a coding test OR that it should NOT be used as a "gate-keeping" mechanism in the interview process. If anything, just like behavioral tests that are given during some job interview processes, it should be used as a frame of reference, not the deciding factor.

So do ya'll think coding tests are worth it? Do you disagree with my opinion/take on the matter? Did I get something wrong or make a point that doesn't make much sense?

Please let me know below in the comments. I'd love to hear your thoughts!

Thanks for reading, my friends,

Bradston Henry


And If you are interested in checking on what I believe to be better ways to interview, check out my blog on tech interview approaches:

===CREDITS===

  • Cover Photo: Monstera from Pexels
  • Education System Photo: Unknown
  • Woman Shrugging Photo: Polina Zimmerman from Pexels
  • Disappointed Woman Photo: Andrea Piacquadio from Pexels
  • Man's Smartwatch Photo: cottonbro from Pexels

==== FOLLOW ME ON SOCIAL MEDIA ====

https://linktr.ee/bradstondev

Latest comments (145)

Collapse
 
stubs2 profile image
Z F • Edited

Wow, I stumbled across this article almost 4 years later and it's only gotten worse. I followed the path: self taught, I learn best on the job, as a full-stack/frontend engineer data structures and algorithms are almost never needed (and easy to google), multiple disabilities that make personal high stress situations difficult, and always get great reviews from my managers.

Of the 30 or so interviews I have done in the past year, only 1 didn't do a code test of some sort, and I have disabilities that make them extremely difficult if not completely impossible. I got the job for the one that didn't have a test, but the pay is horrible and was planning on only sticking with it while I hunt for another job. But hey, I am getting great reviews form the managers. I'm now starting to think I will be here for a while. After working as a software engineer for more than 25 years now am seriously thinking about a career change.

I think it's perfectly reasonable to categorize the software engineering interview paradigm as fully enshitified.

Collapse
 
okuhlen profile image
Okuhle

Lately, I find myself thinking a lot about this topic.

My personal take is that LeetCode style interviews / computer science trivia kinda questions are vastly disjointed from the day-to-day job of many software developer positions. However, I do see why many companies employ this line of technical testing: Many companies need an effective way to trim the applicant pool - no company has time to interview 100+ qualified candidates for a single role. LeetCode and other similar testing strategies provide a quick and easy way of filtering candidates, regardless of their value.

In my view, I think it is possible to create technical testing that resembles the day-to-day job while also being respectful of the candidate and interviewer panel's time. Some solutions I have read include wrapping an actual business problem in the technical assessment where the candidate is paid (I saw one company do this). The other is perhaps creating a scoped version of a system design interview, or reviewing code, or fixing bugs in code. I also enjoy interviews where the panel asks questions technical questions related to the project(s) I had worked on, or some common software engineering principles.

It seems to me that as much as companies emphasize that they "want to find the right fit for their role", the candidate is also free to find "the right fit to work at". In the past, I have turned down companies after they reveal that their next round of interviews are LeetCode style questions because I have not done 300+ LeetCode questions, or studied the solutions to common LeetCode style questions.

The other cynical question I wonder is: Does the CV actually matter? If you are being asked a LeetCode question as part of the technical interview process, after 5+ years of experience, perhaps the CV and its contents ought not to matter at all - why not just apply with your LeetCode or HackerRank profile and stats?

Collapse
 
p_her_9e8f288d72ae603f07f profile image
P Her

I wish they would stop doing those white board challenges. Sometimes they are very simple problems but you've got 2-4, even 5, devs staring at you the entire time. My mind always draw a blank because I'm not very good with that kind of pressure. I would rather show my skills by showing or walking through personal projects. Has anyone ever negotiated with showing projects instead of doing technical interviews? Is that even possible? And if so, how did that go?

Collapse
 
vursodotuk_vurso_550730 profile image
vursodotuk (vurso)

Great to read such an honest article on this subject. I am neurodiverse, self taught and I have suffered from being a mathematchicken and like you not touched on algorithms or CS concepts until later in my career and to be honest 80% of the time its not needed.

I have developed apps and supported systems in the business world where the level of maths is not hugely complex and those algorithms are baked into the frameworks and the patterns and practices we apply day to day.

I am big fan of CLEAN, LEAN, SOLID, DRY, YAGNI and any other acronym I take great care in my code its art to me and with the advent of AI I have build an AI Agentic Workflow that 1. takes care of the labour work and 2. augments my learning difficulties and challenges its essentially allowed me to be "like other people/normal" whatever that means in this day and age.

I had a two tests in a length tech interview, I aced the questions but when we got to the test I stumbled and failed hard, it was a temperature challenge on codinggame.com (great website btw) where I had to find which number from a range was close to zero and these numbers were negative int as well as positive int...now this is not stuff I am familiar with and not the kind of thing I have been doing day to day I have been building enterprise grade microservice platforms, robust API's and apps and services with great quality code (at least by my standards).

They wanted to see how I went about working out what to do and here I just stumbled hard I got anxiety attack and my brain farted hard...the manager was kind helped me a long a bit then we had another logic test this was about a flight arriving from an airport I had to guess as accurately as possible the total value of all personal items on a plane 2/3 full which I did quite well on I felt but again my anxiety got the better of me.

Felt a bit unfair when my work history and references paint a solid picture of the type of developer I am but I also realised for some environments these tests are useful they get that type of developer in, someone who is of a CS level and there are use cases for that type of work but in a typical day to day job as a developer, doing bug fixing and enhancements its not necessary when the clients are typical office based users not in finance, or science or a place that requires that level of precision work.

On balance I am going to take my best friends advice (he thrives on these tests is an absolute beast and smiles when they ask him to one haha)..."level up, go do those types of tests over and over until you at least understand the process, not the final solution then you can talk about what you intend to do that shows clear thought processes and planning".

So I will be spending my time on codinggame.com got my kids involved as well a fun way to learn and get them interested in coding thankfully they are very good at maths :-)

Happy coding people.

Collapse
 
myra_niverasiasat_d5a375 profile image
Myra Nivera Siasat • Edited

I definitely agree. I'm also a full stack developer with 18yrs experience, I always struggle with online exams or live coding challenge, as I couldn't focus when im put on spot. Also, i have poor memory and don't do memorization. I personally prefer & appreciate companies who give take home coding challenge that would require me to build something. And then afterwards have a call to demo/discuss what you have built just to make sure you did build it, just like a peer-review. This type of test, for me is much comfortable as I know how to explain what i built. But nowadays, most companies use online exams.

Collapse
 
luc_prefontaine_f03518759 profile image
Luc Prefontaine • Edited

I just failed one this afternoon.
I told the interviewer that math is not my cup of tea.
Never used it on the job in 40 years and never will.
I am not talking about counting stuff but using some math theory
known only to a few to solve odd problems that rarely occur
if not at all in the context of an IT job.
If I was working on software for vending machines, yes that test
means something.
But for 97% of the things software is used for, it's non sense to use that as a measure of skills.
Sadly it was not announced in advance that this was the whole point of the interview.
So f..k them for the rat race.

Next time I will end the interview myself. ๐Ÿ˜ฌ

Collapse
 
allan_lemire_d1c2fe08dbf3 profile image
Allan Lemire

I am an IT professional with 40 years of experience in the industry.
I could not have described my personal experiences any better. During times when I am looking for my next project/job, I will study and get certified with the various technologies that I am accomplished with.
In the interview process, I offer a potential employers my resume, copies of my current certifications and excellent references. If they are still insisting on a coding test, I offer them the opportunity to get online with me, even to take an independent test, just not their test. In my environment, I can demonstrated my ability and capabilities. At this point, if they still insist on their "climb a tree" coding test, I skip them and move on to t he next employer.
I the same manner as described by the author, I have taken some tests and encountered questions about the subject matter that I have never used in 20 years, so how can that content even be relevant to the position I am applying for? For example, I recently took a coding test in Java. One question used the work 'dailed' in it. I almost felt stupid that I didn't know what this was in nearly 20 years of exposure to Java. I had to look up this word. Turns out it is not even a word in the English language.
So to those who take the tests and move on to the next steps, power to you, as for me, I already have enough stress in my life.
I am perfectly happy to be passed over because I won't take their "climb a tree" test.

Collapse
 
interser profile image
interser

We are responsible for this culture of leetcode style interviews. If all developers just say no for this kind of interviews this won't happen. The problem is that many people are accepting it.

 
bluechi profile image
Blueberry

Absolutely correct! Which is why I am going to bail on the test I scheduled with a major tech company. The test really measures nothing today, only that you remember how to do something you probably recently did. If this is how a company determines your worth, they got it wrong.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.