Resources I Used To Crack Multiple Big Tech Interviews
Coding, System Design, Low Level Design and Behavioral Interviews
Over the past 7 years, I’ve given 80+ interviews and cleared interviews at multiple big tech companies including Adobe, Amazon, Google and Microsoft.
During my interview preparation, I came across countless resources (both free and paid ones).
In this article, I will share the best resources (most free, some paid) I used to prepare for coding, system design, low level design and behavioral interviews.
1. Coding Interviews
1.1 Books
Data Structures and Algorithms Made Easy: This was the first DSA book I read. It helped me grasp the fundamental concepts through actual interview problems. It’s a beginner friendly book and available in multiple programming languages.
Cracking the Coding Interview: This book contains 189 high quality coding interview problems and their solutions. Solving each problem taught me something new.
1.2 YouTube Playlists
Abdul Bari’s Algorithms Playlist: Abdul Bari Sir’s Algorithms playlist is a must-watch for anyone who wants to develop a strong foundation in Algorithms.
Tushar Roy’s Dynamic Programming Playlist: This playlist helped me understand how to think about and solve DP problems using bottoms up approach.
William Fiset’s Data Structure Playlist: William explains data structure through visualizations and animations which makes understanding difficult concepts lot easier.
William Fiset’s Graphs Playlist: This playlist explains all the graph algorithms you need to know for coding interviews.
1.3 Courses
Algorithms Part I & Algorithms Part II on Coursera: Professor Robert Sedgewick made learning data structures and algorithms fun and easy through this course. Highly recommend going through this course to understand fundamental data structures and algorithms in depth.
Note: You can watch all the lectures for free by auditing the course. You can skip the Advanced Sections in Algorithms 2 since they are rarely asked.
1.4 Practice
LeetCode: Learning concepts is not enough. You need to practice what you learned to fully grasp DSA concepts and the best platform to do that is LeetCode. If you have limited time, make sure to solve these curated list of problems:
2. System Design Interviews
2.1 Books
Designing Data Intensive Applications: Reading this book helped me understand what goes behind designing large scale systems. It’s a must read if you want to understand how distributed systems work in depth.
2.2 YouTube Playlists
Tech Dummies: This playlist explains commonly asked System Design Interview Problems in detail. If I can recommend only one channel for learning System Design, it’s this.
CodeKarle: This channel has limited videos but each one is filled with insights you won’t find elsewhere.
2.3 Courses
Grokking Modern System Design Interview (Educative.io): This course contains System Design fundamental concepts and commonly asked interview questions. I went through this course multiple times and it helped me learn various patterns related to System Design Interviews.
2.4 Github repositories
awesome-system-design-resources: I have compiled loads of free resources to learn System Design concepts and prepare for interviews in this Github repository.
3. Low Level Design Interviews
3.1 Books
Head First Design Patterns: This books makes learning OOP concepts and Design Patterns fun and engaging by using humor and visuals. It’s one of the best Software Engineering book I ever read.
3.2 Courses
Grokking the Low Level Design Interview (Educative.io): This course covers everything from OOPS concepts to Design Patterns to Solid Principles to commonly asked problems in LLD interviews.
3.3 Github repositories
awesome-low-level-design: I have compiled more resources (concepts and interview problems) for LLD interviews in this Github repository.
4. Behavioral Interviews
To prepare for behavioral interviews, I created a Notion doc listing down the most commonly asked questions and wrote answers based on my work experience and projects following the STAR framework.
I have compiled everything in this GitHub repository.
5. Mock Interviews
Solving a problem in an interview is quite different from solving it in the comfort of your home.
That’s why you should try to practice in an interview setting before your actual interview.
I attended LeetCode virtual contests and gave mock interviews on Pramp few weeks before my interviews.
This made me more confident and improved the speed at which I approached interview problems.
6. Taking Notes
Notion
Notion is one of my favorite applications.
For interviews, I created a Notion page and added all the resources and material I need to cover.
I used it to bookmark, track and organize information so that I can easily find it later.
Hope you enjoyed reading this article.
If you found it valuable, hit a like ❤️ and consider subscribing for more such content every week.
If you have any questions or suggestions, leave a comment.
Checkout my Youtube channel for more in-depth content.
Follow me on LinkedIn, X and Medium to stay updated.
Checkout my GitHub repositories for free interview preparation resources.
I hope you have a lovely day!
See you soon,
Ashish
Thanks a lot for sharing the resources Ashish .
Hey you should checkout peerfect, it fixes many of the issues that pramp has and it is also totally free,