1. What do you do for fun when not at work? … dig into to questions from here. 2. What is the coolest thing you ever built? How did it work? How long did it take to build? What language? What architecture / framework? What was hard about it? … you get the idea. 3. What are your biggest pet peeves when it comes to reading other peoples code?
Question #1 breaks the ice and gives permission to the candidate to be themselves. Look for common ground. Connect with them. Learn who they are as a person.
Question #2 gets you to see their passion. Talk to them on their ground. Give them the benefit of the doubt. Ask them hard questions, but don’t intimidate. Just go deep. The candidate cannot fake this. It’s not possible. People without the experience they claim are painfully obvious here.
Question #3 gives you two things. 1. Is this person openly critical of things looking to improve them? And Is this person a jerk? I call this the Jerk Trap. Jerks jump right in to being Jerks. After all you just kind of game them permission here! — I would ask though you be careful about excluding neurodiverse people who may not be able to control tone or navigate social situations well. These people will tend to be direct. Don’t confuse directness with being a Jerk. They are not the same thing.
I’ve interviewed a lot of engineers in my career, and tried a lot of things. This methodology has yet to fail me.
EDIT: It’s sad I even have to point this out, but in #1 you are looking to connect with the person on a human level. It’s not bait them into talking about coding outside of work. If you do that or think that way you are being discriminatory towards people who can’t code outside of work… you know like single mothers. And people wonder why we don’t have more women in tech. Stop equating passion with > 40 hours a week. It’s bullshit. Stop.