Douglas ’ Blog

The tech interview process is broken

~ Jan 22, 2024 ~


When you are looking for a new job, you first update your CV then go to several websites to search for open positions. Some websites will force you to create an account and fill out your entire CV again (and still not receive any response from the company).

After sending numerous CVs, you must patiently wait for responses. That is when it becomes exhausting. Most people ignore your CV, and others reply that they’ve already chosen a different candidate.

In some cases, recruiters text to you offering an opportunity, you show interest, but soon after they never contact you again.

Sometimes you do get an interview. Generally, the first interview is with HR person. You talk about your experience, and they tell a little more about the job. Some will ask for personal info, like what are your hobbies. Generally, this is the easy part.

Next is the technical interview. It varies from company to company. Some like to give a take-home test, or a live coding challenge, or even ask some general programming questions related to your experience.

A minority of companies stop here in the process. They give their feedback, whether it is positive or negative. But most companies insist on adding way more rounds.

If it’s a consulting company, you will need to also do another technical challenge for the company that hired the consulting company.

They do all this to select candidates that will perform almost the same. Unless you need someone with specific skills. However, many job descriptions are generic and can apply to multiple candidates.

I’m tired of this.

Here, I outlined the general path of programming interviews, but what exactly are the problems?

The problems are:

  • asking for personal info
  • having to fill your entire CV again
  • several rounds of interviews
  • poor feedback
  • poor technical challenges
  • ghosting

Asking for personal info

STOP asking for personal info! It doesn’t matter if I have pets, live with my parents, or have a gaming chair. Just STOP!

Having to fill your entire CV again

I don’t mind filling in my name, email, and other simple info. But just let me upload my CV or add a link to my LinkedIn. Problem solved.

Several rounds of interviews

Just don’t. Do you want to hire or not? Why exactly do you need several rounds? You are just wasting everyone’s time that way. Do one interview round with both HR and a technical person.

Poor feedback

I really don’t care about receiving feedback that they moved with another candidate. But sometimes, the feedback is so dumb. They try to find anything to disqualify you as being something so important to them. Even saying something not vital to the job. But since they make the rules, I can’t complain.

To give good feedback, you need someone who truly understand the job requirements. Not that on the job description. You can categorize two types of requirements: Negotiable and Non-Negotiable. Based on that, you can assess the candidate based on these requirements.

There is a video that goes in more detail on how companies can improve their hiring process.

Poor technical challenges

There are several types of technical interviews: Live coding, take-home, and quizzes. But how do we assess the candidate’s programming skills?

First, do not ask about OOP, design patterns, Clean Architecture, or other stuff that I mentioned before that you should ignore.

Some of them miss the mark when assessing the candidate. Some challenges are easy compared to the candidate’s experience.

I believe you should mix relevant technical questions that would demonstrate that the the candidate knows about that topic, and a take-home challenge that simulates a real-world environment, for example, adding a feature and tests to an existing project. There is a video that covers this particular approach. If the candidate has some projects on GitHub, you can skip all that.

Ghosting

There are probably three main reasons that this happens. First, the recruiter is just bad at his job or being lazy. Second is because there are so many candidates that they don’t have time to respond to everyone. Third, because they use some automation that parses the CV and might be rejected for not being able to parse or not finding enough keywords related to the job.

How to solve this? Simple. Don’t allow more than 30 applications be made (or any reasonable small number). If you don’t find the perfect candidate among the 30, open the position again. Now, the recruiter has much more time to read each CV and to give a response to each candidate.

Also, aim to write as much info about the job as possible. That way, you can filter even more candidates before applying.

Conclusion

If the candidate doesn’t match your expectations, you can fire him and select the next candidate in the talent pool.

These problems are everywhere, not only in IT. As you can observe from many people on the internet, especially LinkedIn, they are tired of this. There is no “Human” in “Human Resources” anymore, perhaps never was.