Coding challenges are a waste of everyone's time
After hundreds of technical interviews, I don't think live coding ever measured the right thing. Now that AI is part of the job, it makes even less sense.
Over the past few years I’ve sat on both sides of hundreds of technical interviews. Recruiter calls, phone screens, take-home projects, system design rounds, architecture deep dives, behavioral panels, and more live coding sessions than I want to count. I’ve been the nervous candidate. I’ve been the tired interviewer. I’ve passed loops I probably should have failed, and I’ve failed loops I should have passed.
After enough of those, I have a blunt opinion: live coding challenges are a waste of everyone’s time. They were always theater. Now that AI is part of real engineering work, the whole thing feels even more disconnected from the job.
To be clear, I’m not against technical interviews. I like good technical interviews. I’m against one ritual in particular: share your screen, solve an algorithm puzzle from memory, and talk out loud while a stranger watches your cursor blink and a clock runs down.
Live coding never measured the job
Inverting a binary tree on a timer, while narrating every thought and getting graded on your keystrokes, has very little to do with building software for a living. The real job is rarely solo. It is rarely timed to the minute. It is almost never done without references, docs, teammates, logs, tests, or existing code.
Live coding mostly rewards two things: memorized patterns and the ability to stay calm while being watched. Those are not useless skills, but they are not the job. I’ve seen great engineers freeze in that format. I’ve also seen candidates who were shaky in the rest of the process fly through a problem because they happened to grind the same pattern the week before. The signal is thin.
The recorded version is worse. Screen recording on. Camera on. Microphone on. Timer running. Some of these are not even interviews, just a questionnaire, a coding challenge, and instructions to record yourself doing the whole thing like a speedrun. It treats an experienced engineer like a suspect who has to prove they are not cheating. Nobody does their best work while being monitored like that, and the format says a lot about how the company sees the people it is trying to hire.
I haven’t written code by hand since 2024
Here’s the part most interviewers aren’t ready to hear: I haven’t hand-written a meaningful line of production code since 2024. AI writes the code now. I still build software. I just don’t treat typing as the hard part anymore.
My job is the architecture, the tradeoffs, the outcome, and the validation. I decide what to build and why. I decide how the pieces fit, where the system will bend, where it will break, and how we will prove it works. I review what the model gives me. I set the evals and the guardrails. I spend my judgment on the parts that don’t have an obvious answer.
So when an interview bans the tools I use every day and grades me on how much syntax I can remember, it is measuring a skill I intentionally stopped optimizing for. It feels like asking someone who drives Uber in New York for a living to turn off GPS, traffic data, road closures, and live route updates. They can still drive. They may even know the city well. But they will be slower, miss things like closed streets, and do worse at a job that depends on using the best information available.
The interviews I actually like
Give me a real conversation instead. Walk me through something you built and actually cared about. Why that database? Why that service boundary? What broke in production? What would you change if you started again today? Put two designs on the table and argue through the tradeoffs.
That is where real knowledge shows up. A good technical interview lets the candidate show what they know, and it lets the interviewer see how that person thinks under conditions that look like work, not a performance.
It also works both ways. I am evaluating the company as much as the company is evaluating me. I want to join a team that is worth my time. The team wants the right person for the work. Neither side is above the other. The best interviews I’ve had felt like two professionals trying to figure out whether they should build something together, not like an exam with a buzzer at the end.
Take-homes, done right
If you really need to see me build, give me an async take-home I can do on my own schedule, with the tools I would actually use. The best ones I’ve done felt like real work. A few were paid, and paid well, because they were real work. That one choice tells me a lot: this company respects my time and takes its hiring process seriously enough to invest in it.
Now compare that to a recorded live round with a microphone over your shoulder. One format says: we trust you, here is something real, show us how you think. The other says: perform for us while we record you. Same stated goal. Completely different message.
The interview shows you the culture
This is the part people overlook. The interview is not some neutral filter attached to the side of the company. It is the company, in miniature. A process that respects your time, trusts your experience, and evaluates your judgment is showing you a culture worth joining. A process built on surveillance, trick questions, and artificial constraints is showing you its culture too. Believe it.
That means you are allowed to say no. You can decline the awkward recorded challenge and ask for a conversation or a take-home instead. I’ve done it. The companies worth working with said yes without making it weird. The ones that insisted on the theater told me, for free, what the next few years would probably feel like.
The tools changed, and the job changed with them. AI should write the code. Engineers should spend more of their energy on architecture, outcomes, validation, and the work that actually moves the system forward. Interviews should test for that.
If your process still grades people on how convincingly they can pretend it is 2015, it is not measuring talent. It is wasting everyone’s time, starting with yours.