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?
The best interviews, and the best places I've ended up working, are the least-technical. A simple free-form conversation in a casual environment (over coffee, lunch, beer, whatever) is sufficient. Talk shop. Geek out about something. If you can joke with the interviewer about how annoying it is that Docker Swarm punches holes in your firewall; playfully debate Vim vs. IDEs; have an opinion on the quality of open source web frameworks in Go vs Python; have a favorite Linux shell; can relate a horror story migrating a UI from React to Vue; etc., then I'm going to learn a whole lot more about you than I'd ever learn in a formal interview. Gotcha questions, whiteboarding, hypothetical situations, etc. rarely demonstrate much actual experience writing software. The bulk of the work that most developers do doesn't involve inventing anything; it's usually just wiring things together.<p>If 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.<p>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.