Improve Interviews for Software Engineers
I recently gave a friend a mock interview. He was trying to prepare for a big interview and needed practice. What was interesting was that here was an engineer that I would have hired in a heartbeat and yet his performance during the interview was incredibly mediocre. His first reaction was “I really need to improve my interviewing skills.” The sad thing is, he probably did if he wanted to get that job.
I’ve always been pretty proud of my ability to interview. I put a lot of effort in creating a flow that puts the candidate at ease, but also ramps up to really test their abilities. Rarely have I ever accepted a bad hire and I’ve made many fantastic ones. Based on this track record it does sound like my friend is the one who needs to improve things.
The very notion that candidates need to work on their “interviewing skills” offends me. That enforces a system that rewards engineers who job hop a lot because they have the most interviewing experience. Ideally, candidates should actually just focus on the skills needed for their job. Why would any employer want their employees to be good at being interviewed rather than being good at the work their employees are paid to do?
This isn’t a new belief of mine. It’s why I throw out all the “standard” programming interview questions. These questions tend to be theoretical problems that programmers will never need to solve on the job. I used to ask these and found they can get you a great candidate… for solving problems other than the ones your business needs solved. Every question I now ask is based on a real problem that I have solved at a company. If a candidate can solve a problem the company actually needed solved, then they can clearly do the job. Yet, it’s clear that I still have some improvement to do. Maybe it’s the delivery of the question, the scope of the question, or something else, but regardless the onus is on me.
What I find interesting is that mock interviews are usually performed to help candidates. They’re rarely, if ever, done to help interviewers. However, it is the job of the interviewer to actually improve their skills in evaluating candidates properly. Given the job market for software engineers, losing out on a great hire is not a trivial matter. Sure there will be more candidates, but it can take months to find a truly great hire. That’s a steep opportunity cost for a company. It is in a company’s best interests to make sure their interviewers understand that. It’s time to stop making people waste time working on their “interviewing skills”.