DEV Community

Cover image for It is time to change the technical interview process

It is time to change the technical interview process

Elman Huseynov on April 11, 2024

Let’s talk about something many of us have experienced but not often discussed openly. Have you ever wondered why so many technical interviews focu...
Collapse
 
miketalbot profile image
Mike Talbot ⭐

Attitude and aptitude are what we look for, we do that differently at different levels, but primarily for Juniors, it's them walking us through a project they've built and discussing the challenges and inspirations they had creating it. We might add a simple language check with escalating complexity.

For more senior roles, we also present code "written by a junior" and ask for a code review - this reveals knowledge, but more importantly, it shows us the applicant's style and attitude.

I used to run a business that built analytical databases, that did end up needing us to write and adapt sorting and searching algorithms, for a couple of developers, for a few months every couple of years. In other words, in a team of 130 engineers, 99%+ of the time the job had nothing to do with these kinds of problems, even in a business that actually sometimes did really need them. No business I've been CTO of since has ever implemented code that low-level.

On the surface the challenge of such tests is appealing, the problem is that it's now skewing the field in favour of people who spend their time practising algorithms, over people who actually focus on doing their job.

Collapse
 
wilsonuponsea profile image
Aoibhe Wilson 🇨🇭

Absolutely agree with this and it's way better written than the rambling I was about to submit. Thanks!

Collapse
 
huseyn0w profile image
Elman Huseynov

I also thought that attitude and the way how candidate thinks is the reason behind this DSA question, which should be a good way to go in theory.

However, in reality, the more you study and learn how to answer DSA questions, the more chance you will receive similar questions in an interview and pass them. This means companies do not test thinking but rather how candidates can learn how to pass algos questions (more like a robot). And as you mentioned 99% of the time the job had nothing to do with this kind of problem.

The question is: Why candidates should receive a rejection in a job position where they will not write DSA 99% of the time because they did not pass the DSA interview?

Collapse
 
linkbenjamin profile image
Ben Link

I think leetcode problems can work - if the outcome of the code doesn't matter.

If you're evaluating how someone thinks? Use it, just make it clear that you're giving them a big tough problem and you don't care about the solution so much as how they're thinking as they approach it.

A leetcode type problem is great for this because it's something you can watch/listen as they tackle. The problem is when we put all the emphasis on "getting the optimal solution working in the time allotted".

Collapse
 
huseyn0w profile image
Elman Huseynov

I also thought so. But let's simulate the situation:

  1. Candidate 1 solved the question with great optimised code and way of thinking were great
  2. Candidate 2 did not solve the question in an optimised way, but the way of thinking was also great.

Who would you hire based on this?

Collapse
 
linkbenjamin profile image
Ben Link

Not enough information to decide. How was the rest of the interview? Do I pick up any personality red-flags from either? How do years of experience compare? Where did they work previously, so that I can get a picture of their career journey & trajectory?

I think I can stand by my original comment - IF the outcome doesn't matter, leetcode problems can show thought process and how someone will respond given a little bit of (gentle!) pressure.

Don't really care about their code though!

Thread Thread
 
huseyn0w profile image
Elman Huseynov

Let's simplify and say, no red flags, rest of the interviews were amazing, and they both had more/less the same experience.

Thread Thread
 
linkbenjamin profile image
Ben Link

Well then of course I hire the one who performs better. I can only afford to hire one person... and I have to do something to differentiate them. Leetcode shouldn't be the first criteria I divide them by, but if everything else is equal, it doesn't mean I can suddenly magically hire both. I still only have budget for one person. That's the world we live in, where constraints are... constraining. 🤷🏽‍♂️

For what it's worth - and I know it still doesn't feel great to be on the receiving end of this because I spent the first half of this year being rejected over and over and over myself - losing to a better-qualified candidate isn't failure. It means you're a contender. Lots of teams in the world cup ⚽️, only one champion. Doesn't mean those other teams don't deserve to be there!

Thread Thread
 
huseyn0w profile image
Elman Huseynov • Edited

Competition makes sense, however:

  1. In the world cup they play football, and they train to play football.
  2. In Tech interviews you train algos, even if you will not use it in daily life. That is the difference.
  3. The question is: Why candidates should receive a rejection in a job position where they will not write DSA 99% of the time because they did not pass the DSA interview?
Thread Thread
 
linkbenjamin profile image
Ben Link

That's fair, but how's the alternative any better? I see posts almost daily where people are complaining that they had to do some "real-world" project, didn't get selected, and it leaves them thinking that the company just used the interview process to get them to do some work really cheaply / for free.

I think that as long as there's scarcity, the people who aren't selected will find a reason that the system was unfair. I know I thought of a few along the way myself! But I don't begrudge those who are hiring the use of something like DSA as a way to help them narrow the field. Yeah, I don't have to invert a binary tree every day, but we just need a way to select in a competitive market.

Sometimes the interview will go in my favor, sometimes it won't. I just keep doing my best and looking for ways to improve for next time.

Thread Thread
 
huseyn0w profile image
Elman Huseynov

I prefer to be rejected after doing real-world problems, instead of DSA questions :) Yes, companies can use me to do some work cheaply, that is true, it is hard to avoid that anyway. On the other hand, companies that do DSA checkups also sometimes waste our time.

Collapse
 
lnahrf profile image
Lev N.

I have gotten a lot of DSA interview questions, and they almost always fail to measure the abilities of a developer.

I think an assignment that includes nitty gritty technical details works better. If you will need an algorithm to solve an issue, you could easily search for the right one and implement it, you don’t have to solve hard leet code problems to be a good developer.

Collapse
 
huseyn0w profile image
Elman Huseynov

Totally agree. I told this in interviews lots of time, but response was something like:

"We have our company policies, 2-3 coding challenges, 1 home assignment, 1 system design" :D

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

I've never once been given a DSA question in an interview for a developer role (over 30 years). I would never give one to an interviewee either.

As Ben says, you want to get an idea of how they think, and if they can solve problems.

Collapse
 
huseyn0w profile image
Elman Huseynov

As a person who attended interviews in such companies as Amazon, Google, and Shopify, I can say that all of them ask you to solve 3-4 coding challenges based on DSA. I understand that they have to check the way you think. It makes sense. But let's say candidate 1 is faced with a DSA question you never studied or solved before during the interview. In this case, it is quite hard to solve the question in a very optimised way and cover all edge cases. On the other hand, if Candidate 2 solved this question before, he would have done it and passed the interview. Here is the question. Does it mean that because the second person received the question he studied before by luck, while the first one didn't, it makes the second candidate better than the first one?

Collapse
 
adaptive-shield-matrix profile image
Adaptive Shield Matrix

Synthetic real world problems are super work intensive to create.
Why would you do the extra work?

Everything is framework dependent, especially in JS-Land where a new Web Frameworks pops out every month.
Frameworks can be harder more complex and harder to learn than the programming language its build upon because of its own api, assumptions, common treaded golden-paths, pitfalls, etc.
Combine it that each web framework releases a major version each year there the entire api gets mostly or completely overhauled.

Collapse
 
wilsonuponsea profile image
Aoibhe Wilson 🇨🇭

You have code already, show it to them. Ask them how it works, ask how they'd maybe do it differently.

Collapse
 
huseyn0w profile image
Elman Huseynov

Yes, it's true, it will take more time.

But:

  1. The company will test the candidate on real-world problems and tasks that the candidate has to solve on a daily basis
  2. With the help of AI, it is much easier and faster to create real-world oriented questions.
Collapse
 
acudworth3 profile image
acudworth3

I’ve always thought something like “identify the code smells” or “this program has a bug in it” would make a lot of sense. It wouldn’t be that much work to use real examples from the team doing the interviews which would also be harder to game.

Collapse
 
karenhilliard profile image
KarenHilliard

This post suggests a need for change in the technical interview process, implying dissatisfaction with the current methods. Fairbet7