Tips for Acing Technical Coding Interviews
Your job as a software engineer is to solve problems with code as part of a team.
Because of this, interviewers are looking for a few key things in candidates:
- Technical skill
- Problem-solving skills
- Culture fit
You can maximize your chances of landing an offer if your show these skills throughout your interview - especially if you focus on showing all three skillsets at once. Yes, it’s possible!
For example, during your system design interview, you should discuss tradeoffs throughout. When making component decisions, talk through multiple options and give the pros and cons of each, including downstream effects. Your decision should be free of assumptions - that means checking in with your interviewer frequently, and engaging them in the discussion - and should tie consistently back to the business case for the system.
You display technical skill when you list the pros and cons of alternative components. You show problem-solving skills when you make decisions based on the original problem and think through dependencies. And you show culture fit when you engage with your interviewer and keep the company goals top-of-mind.
With this basic rubric in mind, let’s talk through the most common mistakes we see candidates make during the SWE loop.
Common Mistakes to Avoid
These easy mistakes can cost you.
Skipping Problem Clarification
This happens all the time. Technical interviews are scary. But failing to properly scope out the problem beforehand is one of the worst mistakes you can make. Not only are you missing out on a chance to show how much you know about the tech stack and the landscape your company is working with, but you’ll probably miss important details which will block you later on.
Instead, always begin by restating the problem statement and talking through ways to chunk it down. You can use pseudocode to visually explain your process at this stage (check-in with your interviewer!) but make sure you use a proper language once you sit down to code.
Being Quiet
Your interviewer is a huge resource. Make sure you don’t miss out on their advice as you work. Not talking through your thought process and not checking-in frequently is a big missed opportunity. If you code a great solution in silence, you may have shown technical chops but you’ve failed to show you can work on a real problem - because you wouldn’t sit down to code an entire solution without involving anyone else, right?
Instead, get lots of practice talking while you code. We know that doesn’t come naturally, but with practice it gets easier. Sign up for a software engineering peer mock interview session now - they run twice daily!
Sloppy Coding
Whether you forgot to test throughout, didn’t consider edge cases, or coded something illegible, sloppy code won’t cut it in an interview scenario, regardless of how fast it is. Remember the context - you’re here to prove you can solve problems in a business environment. Other people will have to work with your code, so be sure you spend time and effort making it easy for them.
Common mistakes include:
- Giving random variable names
- Using multiple naming conventions
- Defensive coding that makes things unnecessarily complicated
You get the idea. Similar to #2 above, this gets easier with practice. As you work through the coding practice in the next course, before you consider yourself finished, be sure to check for these styling details and seriously ask yourself whether another person could understand your work.
Tips for Success
There are many things you can do to improve your technical interviewing skills. We’ve addressed some of the common technical mistakes you should avoid, and we’ll give you lots of practice opportunities next. But there are also things you can do to alleviate interview anxiety.
Understand Your Own Problem-Solving Process
As you practice for technical interviews, try to analyze how you go about solving problems. What techniques do you reach for first? Do you use frameworks? If you find yourself making mistakes - are there flaws in your reasoning? Assumptions you’re making that you should rethink? Understanding how you approach problems will help you articulate your decisions.
Doing this exercise will empower you to communicate better than you ever have in interviews, because you’re proactively prepping to give interviewers exactly what they’re looking for - a window into your thought process.
Drive the Conversation
You can pass a technical interview even if you don’t arrive at the best possible answer. We repeat - it is possible to pass a technical interview even if your solution isn’t the best. Take advantage of this by prioritizing communication above the technical. Whatever you do - explain your thought process clearly and in plenty of detail, and check-in frequently with the interviewer.
Want to explore an off-the-wall data structure that might improve runtime? Mention it. Need a moment to organize your thoughts on syntax? Take it. Taking control of your interview lets you focus on your strengths and gives you confidence, and shows interviewers you can take initiative.
Remember - you can’t plan for everything. There’s no way of knowing what question you’ll get. But prioritizing communication will make everything easier downstream - for you, and for your interviewer.
Reframe the Interview
It’s normal to feel anxious during technical interviews, but you’re not “at the mercy” of your interviewers. Try reframing to gain a different perspective as you prep. Mistakes happen on both sides - interview enough, and you’ll notice interviewers mixing up components or fumbling words. Think about how important it is for hiring committees to get this decision right. And remember that you get to grill your interviewers at the end.
They want to sell themselves to you just as much as you want to impress. Ultimately, you’re looking for a good fit. So are interviewers.