Love them or hate them, coding interviews are often a necessary part of getting a software engineering job. The format used to be writing solutions to algorithmic problems on a whiteboard. Lately, with the pandemic, this has all moved to online platforms. Many people despise this part of the interview since the questions asked can be very different from the day to day work of a typical engineer.
For senior engineering positions, the questions are more challenging, and interviewers expect a higher standard. I enjoy this extra challenge and received several offers for senior positions during my last round of interviews. As a result, I keep getting asked for advice on how to pass these harder interviews. Now, after forwarding my friends the same email a bunch of times in the past year, I’m sharing my advice more broadly.
The intended audience for this post is people who have passed basic coding interviews before but want to up their skills. Therefore I’ll skip the discussion of the interview format and instead focus on:
- How to get prepared
- Choosing the right practice problems
(plus my list of the 12 best problems to practice with)
- Knowing the right things
- A recommended study plan
How to get prepared
There are many online interviewing platforms out there, but I highly recommend using Leetcode for the following reasons:
- It has 1000s of sample problems
- Many of the problems have come up in real interviews
- Most problems include multiple sample solutions with detailed explanations to help you sharpen your skills
- There is a grading scale which you can use to identify the harder problems more likely to come up in a senior engineering interview
Leetcode classifies its problems into three difficulty levels: easy, medium, and hard. The classification system isn’t perfect. It depends on your background/strengths as to what you consider easy or hard. I’ve encountered “easy” problems that I got completely stuck on and couldn’t solve, and I’ve also encountered “hard” problems that I blazed through no problem. Still, these classifications are a…