The big problem with this approach (focusing on what a candidate's done before) is that there's a surprising number of people out there with great CVs who can't actually code. I've interviewed a number of people who looked amazing on paper, and passed a phone screen¹. 7-10 years of experience. Positions of responsibility. They knew how the internet works. They knew their OOP. They could talk about how to troubleshoot performance problems. They could explain MVC to a non-technical colleague.<p>But when it came to an in-person interview, they struggled with FizzBuzz. They couldn't write the add() method for a linked list. Please understand: I want a candidate to thrive in an interview. I don't say "Please write the add() method for a linked list on the whiteboard," then sit back in silence with a stony look. No: I ask them if they've heard of a linked list, then (regardless of the answer) give them a refresher. I talk about what it is, and draw diagrams of the data structure, and code an example of how it's used & a Node struct they can use, and write a class skeleton for it. If they jump in then, great. If not, I'll suggest they start with the empty list case, and keep trying to be a friendly guide through the exercise. Even then, some candidates can't do it. At all.<p>This isn't quite a bullshit brainteaser, but it's definitely not a real-world problem. Nobody who got hired would be implementing their own collections. But that's not what the question's about: it's about understanding how two simple pieces of data interrelate, and being able to manipulate them. If a candidate can't grasp that, then I'm not going to hire them no matter what their CV says.<p>I don't think this is the best way of hiring people. I like the short term contractor approach – candidates get a real-world project to complete that should take 2-3 evenings, and their solutions are code reviewed & discussed. But that's not always feasible for the business or the candidate. So I don't think we'll see the death of this kind of interviewing for a while.<p>(¹ As a result of these experiences, my standard phone screen now contains some basic programming.)