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, and data structures, and know how to calculate runtime and space complexity, OOP, etc.
I’ll only talk about the nonobvious, smaller things, and I promise that the more you pay attention to them, the better you’ll do.
Being likable
At least half of your “cultural fit” grade is how much people think they’ll like or dislike working 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. A lack of curiosity reads as a fixed mindset.
- Try to be confident during the interview. If you’re not it will signal that you think you’re below their 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.
Code cleanliness
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?
Listening skills
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 don’t understand it. It’s 10x better than assuming something wrong and starting to do 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. A lack of questions might be read as a lack of interest on your part. Too many / too trivial questions might be read as pedanticism. 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 a 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 you get influences you a lot on 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!
By the way, Upstart is hiring engineers both in the SF Bay area and in Columbus, Ohio!