March 12, 2019
Technical interviews. They can be intimidating, nerve-wracking, and sometimes just plain awkward. For better or worse, they’re also going to be a requirement for 99% of developer jobs you apply for. The 20 minutes to 2 hours that you meet with your potential coworkers/boss can make or break your chance at a job you’re passionate about - so make sure you go in ready!
I don’t consider myself an expert, but I have sat on both sides of the interview table enough to offer a few points of advice for developers - especially those relatively new to the industry:
“Do I want to work with this person?” Chances are, everyone in the room (or on the conference call) will be asking themselves this question about you. Many of us put a great deal of thought into the technical side of interviews, but in many cases soft skills are just as important. As long as a candidate has the required grasp of fundamentals, knowledge of a particular framework isn’t necessarily a deal-breaker. A framework or even a language can be picked up relatively easily; the same can’t always be said of soft skills.
Someone who comes across as unmotivated, a poor communicator, or not a team player throws up immediate red flags to interviewers. So make sure that you present yourself as someone who communicates effectively, takes initiative, and works well with others. Be prepared with examples of times you’ve successfully worked on a team (preferably in a development context, but teamwork in other areas can translate, too.)
If there’s one thing I’ve noticed about passionate developers, it’s that they love solving problems. If I ask about an interesting/tough problem that they’ve solved recently, a candidate should be able to come up with examples of things like race conditions, network connection issues, or CSS bugs that they’ve figured out recently. Talking through a tough problem is a great way to display your problem-solving skills. Always be prepared with examples.
I’ve heard variations on this line a number of times in interviews - especially with junior-level candidates:
“I’d really love to find a place I can grow and be mentored!”
Don’t get me wrong - mentorship and growth should absolutely be something we provide for everyone on our teams, from seniors to juniors. My issue with presenting this as a primary motivation for applying for a job is that it doesn’t show that you’re there to add value. Instead of this, I would challenge you to talk about the contribution you plan on making.
Talk about your desire to contribute to the team’s work, to tackle hard projects, write documentation, to mentor others (you can absolutely have a positive impact on people around you, even as a junior!)
This is one of the scariest parts of an in-person interview - the whiteboard or live-coding challenge. Unless you have a great deal of experience in pair programming (which, on a side note, is also a great interview preparation exercise), coding while people watch you and ask about your code can be quite intimidating. Make sure you talk through the problems you’re presented, explaining at a broad level or in pseudo-code what you’d do. If you’re stumped, explain what you would google to continue solving the problem.
I believe interviewing is a skill. It’s a skill that some people are naturally better at, but that anyone can improve on with deliberate practice. It’s also possible to be a very good developer and not be very good at interviewing. One of the interview aspects I’d recommend practicing is verbally discussing code.
Ask a friend to give you a mock interview, or even practice answering interview questions out loud on your own. Again, pair programming can be an invaluable exercise to prepare you to talk through code. The goal here is not to memorize scripted responses, but rather just to make sure you’re comfortable articulating what you know!
Along with examples of solving problems, examples of your initiative can go a long way in making a good impression. This doesn’t need to be solely in the area of software development, but development examples are preferred. How did you go above the call of duty in a particular situation? Being a valuable contributor on a team means doing more than just the tickets assigned to you - it means actively looking for where you can add value.
Hopefully you’re interviewing for a job you’re interested in and passionate about. If that’s the case, you should have a number of questions to ask - don’t be afraid to! Asking good questions shows you’ve put thought into the job and that you care. Asking questions about tech stack, best practices, current and future projects, and even culture is a great way to learn more about a company and also to show that you’re a smart person who cares about what you’re doing.
Your goal as an interview candidate should not be to ask interviewers to “give you a chance” or “do you a favor” by hiring you. Be confident, energetic, inquisitive, and show that you’re someone they want to have on the team. You should walk out the door leaving them thinking “He/she is really going to do some great things - let’s make sure it’s here!“.
I hope these tips help you prepare for your next interview - remember, just like any other skill, interviewing is something you can prepare for and improve on throughout your life.