There was a time when I hated livecoding interviews, but anyone who has ever participated in an interview process that lacks a livecoding interview and wound up hiring someone that literally could not code knows that a bad hire is incredibly painful and expensive. For most employers, missing out on a good candidate is a less expensive mistake than hire a bad candidate.

The post describes what candidates can do, but there's a lot of responsibility on the end of the interviewer. Most of the responsibility, if not all of the responsibility here, is on the interviewer. If you're seeing 75% of your candidate bomb your livecoding interview, your process is very, very broken.

- Never spring a livecoding question on someone as a surprise. Candidates should know well in advance which portion of an interview has a livecoding question in it.

- Interviewers are responsible for helping the candidate feel comfortable. I always chat a bit with candidates, explain the schedule of the timeslot up front, read through the problem with them, answer any questions about the problem they have to make sure they understand what is being asked, etc.

- Always give more than enough time. A question that you expect to take 10-15 minutes to solve requires an hour long interview slot. For candidates that finish very early, have a bonus question lined up in advance, or use the time to talk and answer candidate questions. E.g., for a 10-15 minute problem, you could do a 5 minutes intro, 40-45 or minutes coding, and a 10-15 minute outro for candidate questions.

- Don't make the problem too small. If it's too small, you're quizzing them on knowing a single thing and not gathering any signal on whether or not they can break a problem down. One medium problem that breaks down into two smaller subproblems is better than two small problems that have nothing to do with one another.

- I tell candidates they can pick what language they want and I also tell them what languages I know.

- Frame it more as a pair programming exercise. If the candidate wants to do something that requires a lot of typing, I'll pitch in. If they make a typo in a variable name, an indentation error in python, or drop a parenthesis, I just tell them. It's not a typing test.

- I tell people they can look stuff up. I even tell people they can ask me. If someone asks me a question about the Python or Go standard library I just answer it. It's not a test of your memory of the layout of the Python standard library. If you vaguely know "the standard library has this thing that I need" and can name it, I'll just tell you where it is.

- I tell people they can run the code as many times as they want; if they want to run their code a bunch of times and solve it in an iterative fashion that's totally normal. Without this instruction, sometimes candidates think they are expected to get it right on the first run, or in as few runs as possible. We're not golfing here.

etc. Things like that. Sometimes people tell me what they're going to do and ask me if it will work and I'll say "ah I think that's giving too much away", so there are limits. Obviously don't solve the problem for people, but making sure the candidate is comfortable is something the interviewer must actively engage in and manage, and when candidates are getting stressed out, it is the interviewer's job to do their best to help lower the stress level of the situation. And yes, sometimes you'll still get people who bomb, but if you're seeing that happen 75% of the time, that's likely signaling that your process is not working.