Interview Resources

Tools we've used to get offers from Big 4s, Unicorns, Fortune 500s, and Startups

P.S. - These are affiliate links, so we get a small commission if you buy something, at no extra cost to you. Thanks for supporting the site!

Algorithms, 4th Edition

By far the best way to learn the fundamentals of algorithms and data structures, with a real focus on clean, understandable code and practical applications and examples. Study this alongside the free Coursera course.

Elements of Programming Interviews

EPI has become an extremely useful resource in the interview prep arms race as companies move to more difficult questions. It also contains study plans based on how much time until your interview, and is also available in Python and C++.

Dynamic Programming for Coding Interviews

Dynamic programming is tricky and requires a lot of practice, and in our experience comes up ~10% of the time. Most algorithms books don't cover it in much depth, so this book fills in the gap and get you to that magic moment when it finally "clicks" and starts to make sense.

Cracking the Coding Interview

The OG resource for preparing for interviews at top companies. This book should form the foundation of your interview prep, because you will be asked something from it.

Cracking the PM Interview

If you're interested in a new grad PM role, you'll be facing fierce competition--offer rates tend to be much lower than software engineer roles at the same level. Cracking the PM interview will help you prepare for the open-ended nature of PM interview questions and also help you gain a better understanding of what a PM does. is our other project to make the best interview prep tool for top tech companies. Instead of mindlessly grinding Leetcode where you spend hours trying to undertand "ninja" one line solutions, we break up questions by topic, difficulty, question type, and company, and offer video tutorials that show the step-by-step process to go from brute force to optimal solution.

We're also developing additional tutorials on problem solving techniques (slow and fast pointers, sliding window, etc.), data structure and algorithm fundamentals, and useful standard libraries in your chosen interview language.