I think the best insight you can get into a potential hire is by asking deep questions about their experience. This takes IMO a really smart interviewer. I try to think about their past projects as if I had to take them on myself and ask them questions based on what I’d expect to be the difficult parts of the implementation. Especially things that sound like data hot spots or might benefit from parallelization.
I’m actually most interested in finding out what abstractions they were able to apply, and not necessarily the end result but
more their problem solving process, because I’m going to have to live with this person’s design choices.
In my experience the above is just really hard for someone to fake. If they try to steer me away from talking about their experience or gloss over too much then the BS alarms start to go off…
Really the above is also IMO the real value in asking folks to solve coding challenges. It’s not so I can see you struggle to write code on the spot. I want you to talk to me. I want to know how it’s going to feel to collaborate with you. Are you going to go off on your own and do a bunch of stupid garbage I’ll have to fix later? Or do you design in the open?
I've co-interviewed about ~15 people or so with the hiring manager and a guy from HR.
We're looking for people that
1. match the requirements at least somewhat.
2. we can get excited about software and technology.
3. can communicate clearly about software.
A good candidate has preferences in technologies and software. Bad candidates don't give a shit or can't mention languages or frameworks when asked.
We ask questions about soft skills too: Have you ever been in a conflict at work, if so how did you approach it. If not, have you had to act "professionally" in other situations?
Good candidates can always tell a story about some conflict where they talked it out with a colleague or a boss, or give some other lame story where they "learned something". Bad candidates can't say shit. The answers to such questions can reveal some true assholes that can easily be filtered.
Finally we ask why you want this job. Why this company?
Good candidates have some bullshit story or can tell something they actually find fascinating about our products. Bad candidates tell you that they don't actually care much where they work, it's just for the money etc. Even whey you give them hints and clues etc., the bad candidates are usually just an obvious bad fit for the role.
Shitty applications get filtered in bunches. Good candidates write applications that read as if written for the job posting. Bad applications read as if written by ChatGPT or plain ol' copy/pasta.