About how 5 months ago I went through a screening for a job. It was a referral from a friend and it had been a while since I responded to a recruiter. I was surprised how the process has changed in the past 5 years.

After the initial phone screen they sent me to a 3rd party site (HackerRank) to solve three programming puzzles in a one hour time box. It was my first attempt at this. The first two were easy but the last one was trickier. My solution didn’t pass all the unit tests. It passed something like 8/10 tests and there was no time left to debug it.

At this point I was filtered out of the company’s selection process. It turned out to be a mixed blessing due to some health issues that came up (I could not have made the trips to HQ to get oriented). However, the whole experience planted a seed in my mind.

Since then I’ve been familiarizing myself with this type of problem solving. I work through one every week.

It’s happening all over the place

I have a good friend looking for his next job, a PhD in Comp Sci with over 10 years experience. Almost every option he explores has some type of programming challenge gate either on a 3rd party site or in person. He bought a copy of Cracking the Coding Interview to get up to speed but it takes time to develop that skill. He’s been passed over by some great companies in the meantime.

The issue came up in the Megamaker Group and one person shared this very personal response:

I’m approaching my mid 40s and left my last startup (founding CTO role) in December. I have failed at least 10 programming tests and developer interviews since then. I have been developing technology for nearly 20 years including electronics and firmware (I’m an electronic engineering technologist by training) and full-blown distributed web applications with IoT integration. I’ve created software that powers full product traceability in high volume specialized manufacturing facilities around the world. Yet, I can’t get a job as a developer because I always fail these programming test gates.

This tweet from Max Howell went viral a couple of years ago. It’s funny, sad, and true all at the same time

Fact. There are a lot of senior developers out there that are in for a wake-up call when they try to find their next position at a different company.

Developers Hate Them

When this topic comes up some developers say …

“I’ll typically end an interview if this type of stuff shows up”

or

“Being able to solve a puzzle like that means nothing, can you talk to clients? Can you actually build a functioning webapp? Can you Google stuff when needed? Can you learn what ever is thrown at you? Not can you find the most efficient way to order this weird data”

The counter argument is that poor software developers dislike being tested and they are the ones that the company is trying to weed out. However, it’s also possible that some strong, independent-minded, senior developers opt-out of the process because they have other options.

I agree these challenges are not representative of day-to-day tasks for a professional software developer. The wording is not always the best and I’m not sure the information is always complete (or at least I don’t always infer the completeness of the information from the problem description). Often they are math word problems. Having a formal education is an advantage.

The hiring company is guaranteed to screen out candidates that would have made amazing team members. For example, when Daniel Buchmueller was turned down at Netflix…

Companies Love Them

In terms of programming challenges for hiring we need to realize the the world has changed. Remote work is becoming widely accepted in the software industry. International teams are increasingly common.

You now have a larger pool of great developers you can add to your team but, on the downside, this has drastically increased the number of applications you have to sort through in order to find the right candidate. Could you imagine sifting through 500 applications for a single position?

In addition, I’ve heard of getting into an interview where the candidate was way under qualified (couldn’t write a hello world type program). That would be extremely frustrating. Personally, I’d be looking for the nearest exit while offering the candidate some encouragement.

Programming puzzles as a hiring gate solve both these problems. To a company it is worth skipping over a few great candidates in order to simplify the review and selection process. With a now unlimited pool of applicants they can afford to do that. The numbers suggest that there will always be more good developers in the pipeline.

For this reason I believe that Programming challenge hiring gates are here to stay and will become even more common in the future.

It is true that everyone is hiring and senior developers have never been in more demand. But don’t think that you can walk into another job based on market demand and the number of years on your resume. Prepare for the programming test gates now while you have the luxury of time.