Hello guys, if you are preparing for Software Engineer Interviews, or Software developer interview then you may know that how difficult it is to prepare for System Design interviews given its open ended nature and vastness but at the same time you cannot ignore it. In Software Engineering world, if you are applying for a Senior Engineer / Lead / Architect / or a more senior role, System Design is the most sought-after skill, and hence one of the most important rounds in the whole process. If you mess this up, nothing else would matter.
If you get it right though, you're looking at a raise of at least tens of thousands of dollars annuall and in this repository, you will find best System design resources like online courses, books, websites, and system design interview cheat sheets like below from Exponent and ByteByteGo which you can use to quickly revise the key concepts
So how do you ace your system design round? Well, here's what I did while preparing for my interviews with Facebook, Google, and Amazon, and it worked out rather well. I did end up creating a checklist for myself which got me through most of my rounds, so if you follow a similar path you should be able to come up with something that works for you as well.
A collection of best resources to learn System Design, Software architecture, and prepare for System Design Interviews
Online courses provide the most structured way to prepare for System Design, here are the best online courses you can join to learn System Design and prepare for System Design interviews
- Zero to Mastery Academy
- ByteByteGo
- Grokking the System Design Interview course by DesignGuru.io
- Pragmatic Design course on Udemy
- Software Design Specialization on Coursera
- Software Architecture 101
- Modern System Design Course on Udemy
- Advanced System Design Course on DesignGuru
- Meetapro
While online courses are good to start with, books provides the most in-depth knowledge required to crack the System Design interview, here are the top System design books you can read to prepare for interviews
- Designing Data-Insensitive Applications
- System Design Interview
- The System Design Interview, 2nd Edition
- System Design Interview --- An Insider's Guide: Volume 2 by Alex Xu and Sahn Lam
- Machine Learning System Design Interview by Ali Aminian and Alex Xu
- Hacking the System Design Interview: Real Big Tech Interview Questions and In-depth Solutions by Stanley Chiang
- Acing the System Design Interview by Zhiyong Tan
- The System Design Interview, 2nd Edition by Lewis C. Lin and Shivam P. Patel
- Machine Learning Design Interview: Machine Learning System Design Interview by Khang Pham
- System Design at Google: Engineering Peak for Interviews (System Design Interview)
- Mastering the System Design Interview: Insider tips for your system design interview from a former Amazon hiring manager
These are the online platforms and websites where you can not only learn SYstem design but also practice solving System design questions and you can also find more tutorials and articles related to system design:
- DesignGuru
- ByteByteGo
- Exponent
- Udemy
- Educative
- System Design Interview – An insider's guide
- ZTM
- Coursera
- Github
- free system design courses
- DDIA
These are the concept based System design interview questions which is often asked during telephonic round of interviews. Many of these questiosn were asked to me and I have impressed my interviewer with my answers, which you can also read
- [What is difference between API Gateway and Load Balancer?]
2. (What is difference between Reverse Proxy and Forward Proxy?)
3. (What is difference between Horizontal scaling and vertical scaling?)
4. (What is difference between Microservices and Monolithic architecture?)
5. What is difference between vertical and horizontal partitioning ?
6. (What is Rate Limiter? How does it work?)
7. (How does Single Sign On (SSO) works?)
8. (How does Apache Kafka works? why it so fast?)
9. (Differnece between Kafka, ActiveMQ, and RabbitMQ?)
10. (Difference between JWT, OAuth, and SAML?)
Now the holy grail of System design interviews, here are the most popular System design probelems you can practice
- Youtube Design
- URL Shortner
- Real-Time Gaming Leaderboard
- WhatsApp design-
- Parking Lot Design
- Design a LMS
- Instagram Design
- TinyURL Design
- Real-Time Live Comments
- Distributed Counter
- Real Time Presence Platform
- 50+ Syste Design Problems
- Differnce between ActiveMQ, Kafka, and RabbitMQ
- Distributed data strutures and algorithms for interviews
- Difference between Microservices and Monolithic Architecture
- API Gateway vs Load Balancer
- Horizontal vs Vertical Scaling
- Forward proxy vs reverse proxy.
- 9 Caching Strategies for System Design Inerviews
Place holders for system design case studies
- How to Scale an App to 10 Million Users on AWS
- This Is How Airbnb Adopted HTTP Streaming to Save 84 Million USD in Costs
- Amazon Prime Video Microservices Top Failure
- How Amazon S3 Achieves 99.999999999% Durability
- Back of the Envelope
- How to Troubleshoot if You Can’t Access a Particular Website?
- What Happens When You Type a URL Into Your Browser?
- System Design Interview Cheat Sheet
- Software Engineer Interview Learning Resources
- 7 Simple Ways to Fail System Design Interview
- System Design blueprint** by ByteByteGo
-System Design Interview cheat sheet by Educative which is definitely worth reading and printing:
And, here is the System Design Template from DesignGuru which is another great resources to learn bout System Design concepts:
DesignGuru also offers Mock Interviews for Coding interview and System Design interview, if you are serious about your preparation for FAANG interview,
Antoher System Design Interview cheatsheet by ByteByteGo
Here is another System Design Cheat Sheet you can print:
It's is designed by Exponent , a dedicated websites for tech interview preparations which I accidentally found while looking for system design interview resources.
Renowned for its specialized courses like System Design Interview Course, Exponent stands out as a valuable resource for those seeking to enhance their skills in areas such as system design, engineering
Depending on where you are interviewing, go through the company blog. VERY USEFUL IN INTERVIEWS! It really helps if you have an idea of the architecture, as the questions asked will generally be of that domain and your prior knowledge will help out here.
- Airbnb Engineering
- Amazon
- Amazon AWS
- Bandcamp Tech
- BankSimple Simple Blog
- Bitly Engineering Blog
- Cloudera Developer Blog
- Dropbox Tech Blog
- Engineering at Quora
- Etsy Code as Craft
- Facebook Engineering
- Flickr Code
- Foursquare Engineering Blog
- Google Research Blog
- Groupn Engineering Blog
- High Scalability
- Instagram Engineering
- LinkedIn Engineering
- Oyster Tech Blog
- Pinterest Engineering Blog
- Songkick Technology Blog
- SoundCloud Backstage Blog
- Square The Corner
- THE REDDIT BLOG
- The GitHub Blog
- The Netflix Tech Blog
- Twilio Engineering Blog
- Twitter Engineering
- Uber Engineering
- Walmart Labs Tech Blog
- WebEngage Engineering Blog
- Yammer Engineering
- Yelp Engineering Blog
- Smarkets Blog
These are the additional resources you can see for more in-depth prepration of your interviews:
- Top 50 System Design Interview Questions
- How to Crack System Design Interview?
- 10 best System Design Interview resources_
- 3 Best Mock interview platforms for System design interviews
- Top 5 Places to learn System design and Software design
- Is DesignGuru's System Design Course worth it
- 5 System Design Cheatsheets You can Refer before Interview
- 16 best Resources to Prepare for System Design Interview
- 100+ System Design Interview Questions and Problems
- Is Exponent's System Design Course worth it?
- 16 Best System Design Interview Resources for Developers
- 10 Reasons to Learn System Design
- 6 Best System Design and API Design Interactive Courses
- Top 5 System Design YouTube Channels for Engineers
- 10 Best Places to Learn System Design
- How to Prepare for System Design Interview
- Is ByteByteGo really worth the hype?
- 10 Software Design Courses for Developers
- 5 Best System Design Newsletters for Interviews
- My Favorite Software Design Courses
- 20 System Design Interview Questions for Practice
- Is Designing Data intensive application book worth reading?
- Is Grokking Microservices Pattern course on DesignGuru worth it?