Preparing for the Tech Interview

Preparing for technical interviews can be a daunting task. Here are some useful tips and resources to stay on track.

Coding

  1. Practice, a lot. There is no way around it. But rather than doing all 600 problems on Leetcode, cover all types and spend time understanding each problem thoroughly.
  2. Go for the hardest ones. After those the rest all become easy.
  3. If stuck on one problem for over two hours, check out the solutions. More time might not be worth it.
  4. After solving one problem, check out the solutions. I was often surprised by how smart and elegant some solutions are, especially the Python one-liners.
  5. Use a language that you are most familiar with and that is common enough to be easily explained to your interviewer.

System design

  1. Understand the requirements first, then lay out the high-level design, and finally drill down to the implementation details. Don’t jump to the details right away without figuring out what the requirements are.
  2. There are no perfect system designs. Make the right trade-off for what is needed.

Topics for review

Behavioral

  1. Dealing with difficult customer

  2. Did you ever tell a customer they were wrong about something, and how?

  3. Strengths and weaknesses

My brain dump

Software Design and Architecture

Tutorial

References