How to Prepare for a Technical Interview at International Tech Companies (and How to Practice LeetCode)

By Coach Chiao (George), author of Data-Driven Job Search · 閱讀中文版 →

How to prepare for a technical interview: what it assesses

In the previous article I covered how to measure your offer rate and where to improve it. This one is about the practical details: how to prepare for a technical interview. As I mentioned, interviews mainly include three kinds of questions: self-introduction, technical questions and behavioral questions (BQs).

First, here’s what a technical test mainly assesses:

These three apply to most technical roles. In keeping with this series, I’ll use software engineers as the example.

To improve the first two, practicing coding problems is basically enough. The third is better practiced through mock interviews, where you get feedback.

Practicing coding problems

You’ve probably heard of “grinding” coding problems. It mostly means practicing coding questions on LeetCode. The questions vary in type and difficulty, and a single question can test algorithms, clarity of logic, writing code and data structures all at once.

Why practice coding problems?

What to practice

The key question is: which types of questions do you need to work on right now?

More specifically, you can pick questions from common question lists. Later in my own prep I used Google’s interview materials, which I got directly from a recruiter (allow me to show off a little).

Email from a Google recruiter after a questionnaire, scheduling a phone interview and listing preparation resources such as Tech Dev Guide, LeetCode, Pramp, Interviewing.io and Cracking the Coding Interview

This is the resource they gave me. I practiced data structures and algorithms from here:

https://techdevguide.withgoogle.com/paths/data-structures-and-algorithms/

I suggest you start from this one too. You can see it lists the main data structures and algorithms Google considers important.

Google Tech Dev Guide page with topics such as maps, linked lists, trees, stacks and queues, heaps, graphs, runtime analysis, searching and sorting, and recursion, with videos, tutorials and coding questions for each

Use these lists to rate how familiar you are with each topic. Again, you can use a traffic light:

How to improve as you practice

Once you’ve picked your questions, I usually suggest tracking the following as you practice:

  1. Which types of questions should you prioritize? Base it on the companies you’re interviewing with, or on your weakest areas. Specifically:
    • Easy questions you can’t finish within 30 minutes
    • Medium questions where you can’t work out an approach within 30 minutes
  2. For each practice session: time spent, question type, result and notes

Here’s an example log:

ItemTypeTime spentResult
Algorithm questionBinary tree40 minutesNot finished
System designDistributed system architecture1 hourPartly successful

I usually ask my mentees to share this data with me. It makes it easy to analyze where to focus next.

What if the interview isn’t coding problems?

Some companies really don’t test with coding problems. This is often called an unstructured interview, which means the questions don’t follow a set pattern and the scope is harder to predict.

In that case, start with past interview questions or common interview questions.

Summary

Improving how you answer technical questions is a key part of interview prep.

Get clear on where you stand now, and use a suitable way to track your progress and keep moving. That’s how you keep improving and land the offer you want.