Ask HN: What does your ideal software engineering interview look like?
Posted this before but it got lost quick, so trying again. I've seen many posts talk about the deplorable state of interviewing today, calling out whiteboarding, take-homes, multi-days, algorithmic, etc as all have massive shortcomings (and I think many who've done the rounds of the interview circuit would agree that its a stressful pain in the ass situation). Maybe the answer is that there isn't any one-size fits all situation here, but I was generally curious about what people think their ideal software engineering interview would look like?
5 comments
[ 4.5 ms ] story [ 19.6 ms ] threadIf you've got a specific, narrow skill that you're hiring for, then you might need to get more technical, but you should have vetted that already by selecting your candidates from a PhD program or a prior successful job where you're already familiar with their research.
If you're hiring someone right out of undergrad, there's no technical interview that's really going to help. You just need to find someone smart and motivated to learn, and a casual conversation is better for that as well.
A free-form conversation without going through your CV in minute details and without asking plenty of detailed technical questions is a sign that they are already positive about you and want to see if you would fit in on a personal level along with confirming their impression. The reverse suggests that they are negative and want to verify everything and/or find reasons to turning you down.
That has been my experience and feeling during the intervie process, anyway. Like you, those who ended up making offer offer have tended to be those who conducted 'easy' and comfortable interviews. Those who dissected everything in minute details usually found reasons to turn me down. The worst are those where you immediately sense the internal politics at play and who already decided against you because of that.
Here are some of the more-technical questions I ask interview candidates, which are still best done in a casual way:
* What happens when a user enters a URL in their browser and hits return? If they start talking about DNS, protocol/port mapping, networks/firewalls, web servers-application communication, cookies, page rendering, etc. then I can go off on various tangents.
* How do you test your software? Can get into the differences between unit/integration testing, mocking/fixtures, QA, etc.
* How do you deploy software? Leads to discussions about SCM/branching, CI/CD, containerization, IaC, cloud services, the benefits/drawbacks of self-hosting vs cloud hosting.
There are plenty of others along these lines. My goal is to see if the person has actually done anything in a real environment, formed opinions, and stayed up to date on modern technology and practices.