Technical interview questions are hard. It comes naturally to some– I am not one of those people. In this post I’ll be going over some of the tips and tricks I’ve picked up over the last few years to improve in this domain.

Last updated Jun 14 2022

Technical interviews have become the norm for any company somewhat related to tech. With such a huge talent pool and limited spots at top companies, you’ll be answering at least one leetcode question to even be considered.

LC Meme 2

Leetcode style questions are daunting at first, but once you dip your toes in you’ll soon realize they’re all a subset of a few different patterns. Those being…

  • Arrays
  • Binary manipulation
  • Dynamic programming
  • Graphs
  • Intervals
  • Linked lists
  • Matricies
  • Strings
  • Heaps

With consistent practice over a long period of time, you’ll learn how to apply various techniques to solve these patterns. You’ll also learn how to identify these problem patterns within the long-winded prompts of leetcode questions.

When I first started prepping for technical interviews I didn’t have a direction. I started doing random questions on the front page of leetcode and was surprised to see that I wasn’t learning anything :trollface: In order to properly dive into technical interview preparation, it’s best to have a plan and some sort of structure.

I recommend doing 2-4 problems a day from the Blind75. I have a template for you to follow here, this will allow you to take notes and track your progress on your journey :point_right: the link

It’s best to do a range of different categories and difficulties a day. Do what’s harder for you now, so you’ll be prepared for the future. Try each problem for a good 30-45 minutes. If you’re still stuck, look at the discussion or the solution tab to see how others approached the problem. Seeing how others solved it helps you understand the intuition behind some of the techniques. Leetcode premium (or a shared account :wink:) is a sound investment for this. There are also plenty of youtube channels that go over some of the most common problems (like NeetCode)

You might have to review Data Structures and Algorithms content for any of this to make sense. If you haven’t taken a course yet, it might be best to do that either through your school or virtually. There are plenty of free resources out there, choose one that suits you. A fan favorite is Princeton’s coursera course.

You’re moreso trying to learn how to approach these problems and identify when to use certain techniques/algorithms rather than memorizing a solution for every problem. Expose yourself to as many problems as you can.

If you’re on a particularly short timeframe, it’s possible to cram but your results will vary. The learning process is often slow for these problems. It might be best to no-life leetcode for a bit if your interview is particularly close.

LC Meme

Your mileage will vary with just these types of questions, but these are standard for FAANG and other big name companies. You will see various take home, design, and general knowledge based questions come up as well (If you’re applying for an ML role, know ML)! Do your due diligence and be flexible in your preparation to suit your own goals.

There will also likely be non-technical/behavioral questions. The best guide I’ve seen to answering these have been in the book Cracking the Coding Interview. In my experience, though, the best way to prepare for this is through experience. You’re not just a code monkey :monkey_face: You’ll need to be able to fluently talk about your past experiences in classes, personal projects, and internships. Software Engineering and related fields are social jobs. Explaining your code both precisely and in high level terms is a necessary skill you’ll need to develop.

The path to conquering technical interviews is long, frustrating, and tedious. However you may feel about them, technical interviews are here to stay. There are two options: adapt or die

Pour it on

Secure your future, start leetcoding. Best of luck and add me on LinkedIn :^)