Little things that matter in a software engineering interview
I’ve been working with software uninterruptedly since 2002 and over time, along with writing code, I’ve run hundreds of interview sessions with software engineering candidates. I’ve also been on the other side of the table a few times and I have some insights on a few little things that matter, that I’d like to share for the next time you’re interviewing.
I’m not going to go over the technical side here. I just expect you to know your algorithms, data structures, know how to calculate runtime and space complexity, OOP, etc.
I’ll only talk about the non obvious, smaller things, and I promise that the more you can pay attention to them, the better you’ll do.
At least half of your “cultural fit” grade is how much people think they’ll like or dislike to work with you. For example if you’re arrogant, you’re toast no matter how well you do technically. So here are a few tips:
- Try to be yourself, don’t fake an id to go to an interview. People can tell.
- Try to calm your nerves. If you‘re uncomfortable the interviewer will get uncomfortable and that will cost you points.
- Be curious about the problems, about the interviewer’s role, about the company, about something. Lack of curiosity reads as fixed mindset.
- Try to be confident during the interview. If you’re not it will signal that you think you’re above your league.
- Be open to criticism and don’t be afraid of talking about past mistakes. Becoming defensive is a red flag and claiming you never made mistakes is just plain silly.
- Don’t be a jerk.
This is almost as important as algorithm correctness. People interviewing you know they might end up having to read your code, so if it’s unpleasant to do so they’ll regret hiring you. So make sure to:
- Indent your code. This is like brushing your teeth, no excuses.
- Name your variables for readability. They’ll be reading, make it pleasant.
- Remove the trash. Those 3 lines from your first attempt that you’re not using anymore are hurting their eyes.
- Simplify your code and make it more elegant. Do you really need this if or can you do without it?
Not listening is also a red flag. Pay close attention to what the interviewer is telling you, there might be a lot of information there if you pay close attention. Also interviewers don’t like to interrupt candidates, it’s unpleasant and impolite. So if it happens, it’s because they really wanna see something different than whatever you’re doing.
It might be that you’re going in the wrong direction, it might be that they consider the hard part solved and want to move on, it might be there’s a problem with your solution, it might be a tip to get you unstuck, etc.
Regardless of what it is, if they say something and you ignore it, that’s going to cost you a lot of points. So make sure to:
- Pay attention to what they’re saying. It is important.
- Ask for clarification if you didn’t understand it. It’s 10x better than assuming something wrong and start doing it.
- Try to change course accordingly so you can show them what they want to see.
Asking questions back
Interviews almost invariably end with interviewers offering the interviewee a chance to ask questions. You might not realize it but you’re still being interviewed. Lack of questions might be read as lack of interest on your part. Too many / too trivial questions might be read as pedantism. If you only ask about work life balance, people might think you don’t like to work hard. So make sure to:
- Ask at least one relevant question to each interviewer.
- Bonus points if you ask questions the interviewer is in great position to answer, like her personal experience at the company.
- Don’t ask questions that you don’t care about the answer, people can tell and it’ll just be read as you’re faking interest.
I’ll make a bold claim here. From my 16 years of going to hiring meetings, I believe that at least a third of your score, if not more, comes from little things like these.
Bear in mind though that different interviewers look for and value different things, so your mileage may vary. Who do you get influences a lot your outcome.
Finally keep in mind Interviewing is never a truly fair process. Interviewers have mental biases, conscious and unconscious, and there is a lot of luck involved. So if you’re hitting a wall, don’t be discouraged, you might only need a small tweak to get that job offer!