Published July 10, 2025
Yesterday I posted on my Mastodon that "Coding interviews should be replaced with code review interviews."
This post went "wooly" (Mastodon equivalent of viral) and has gotten a fair amount of traction. Some of the responses were defending the practice and trying to explain how they use it. I honestly don't care. Live coding is not a valid way of seeing if a candidate is qualified for the position.
Let's think about what a live coding session entails:
None of this mirrors how we work.
I don't know anyone who writes code on a day to day basis without some kind of IDE. Even if they use vim, emacs, or Notepad++ they have bindings, syntax highlighting, and other things that make their lives easier so that they don't need to remember all the details. I, personally, use PyCharm as my primary IDE and fall back to neovim or VS Code depending on what I'm doing. I don't need to remember what the order of the arguments is or which arguments are required - the IDE helps me with that. It helps me if I'm missing a parentheses or something else silly. It makes my job easier.
I don't know about you but the last time I implemented a linked list or a sort I was in school. These are not things I need to implement on any kind of regular basis. If I did need one, odds are I can find a library that has an implementation or I can look it up and include it myself. These are not even close to real world tasks.
When I write code I test it often. I write something and then I execute it. I do this early and I do this often. It helps me fix mistakes quickly. The idea of writing code that I can't execute as needed to make sure this little block does what it's supposed to is anathema to me.
I've done paired programming. It's not my favorite thing in the world but I'll do it on occasion when it's helpful, usually as part of mentoring someone or working together on a difficult problem. Taking notes while watching someone code and asking leading questions? That's not paired programming. That adds pressure to an inherently stressful situation.
So a live coding session gives no value because it is not an honest evaluation of someone's work. But code review is. Doing a live code review exercise with someone shows how well they read code and understand it; it shows how they interact with other people; it shows actual skills that they need to display during their work.
If you want to successfully interview someone for a software engineering position send them a PR and have them review it with you. For best results, send them the repo ahead of time and let them know that they'll be reviewing a PR in it with you as a part of their interview process. The repo should be somewhat consistent with the type of code that they will see when they get there and you should make sure the PR has things to comment on. By going through that PR you will learn so much more about the candidate and their skills than you will through any live coding exercise.