System Design
We are delighted that you have decided to join us in learning the system design interviews. System design interview questions are the most difficult to tackle among all the technical interviews. The questions require the interviewees to design an architecture for a software system, which could be a news feed, Google search, chat system, etc. These questions are intimidating, and there is no certain pattern to follow. The questions are usually very big scoped and vague. The processes are open-ended and unclear without a standard or correct answer.
Companies widely adopt system design interviews because the communication and problem- solving skills tested in these interviews are similar to those required by a software engineer’s daily work. An interviewee is evaluated based on how she analyzes a vague problem and how she solves the problem step by step. The abilities tested also involve how she explains the idea, discusses with others, and evaluates and optimizes the system. In English, using “she” flows better than “he or she” or jumping between the two. To make reading easier, we use the feminine pronoun throughout this book. No disrespect is intended for male engineers.
The system design questions are open-ended. Just like in the real world, there are many differences and variations in the system. The desired outcome is to come up with an architecture to achieve system design goals. The discussions could go in different ways depending on the interviewer. Some interviewers may choose high-level architecture to cover all aspects; whereas some might choose one or more areas to focus on. Typically, system requirements, constraints and bottlenecks should be well understood to shape the direction of both the interviewer and interviewee.
The objective of this book is to provide a reliable strategy to approach the system design questions. The right strategy and knowledge are vital to the success of an interview.
This book provides solid knowledge in building a scalable system. The more knowledge gained from reading this book, the better you are equipped in solving the system design questions.
This book also provides a step by step framework on how to tackle a system design question. It provides many examples to illustrate the systematic approach with detailed steps that you can follow. With constant practice, you will be well-equipped to tackle system design interview questions.
Time allocation on each step
System design interview questions are usually very broad, and 45 minutes or an hour is not enough to cover the entire design. Time management is essential. How much time should you spend on each step? The following is a very rough guide on distributing your time in a 45-minute interview session. Please remember this is a rough estimate, and the actual time distribution depends on the scope of the problem and the requirements from the interviewer.
Step 1 Understand the problem and establish design scope: 3 - 10 minutes
Step 2 Propose high-level design and get buy-in: 10 - 15 minutes
Step 3 Design deep dive: 10 - 25 minutes
Step 4 Wrap: 3 - 5 minutes
Quick Scan (60 %):
(Every Week 2 hrs)
- 1. Foreword 2024.11.14 15:00 - 17:00
- 2. Scale From Zero To Millions Of Users 2024.11.14 15:00 - 17:00
- 3. Back-of-the-envelope Estimation 2024.11.14 15:00 - 17:00
- 4. A Framework For System Design Interviews 2024.11.14 15:00 - 17:00
- 5. Design A Rate Limiter
- 6. Design Consistent Hashing
- 7. Design A Key-value Store
- 8. Design A Unique ID Generator In Distributed Systems
- 9. Design A URL Shortener
- 10. Design A Web Crawler
- 11. Design A Notification System
- 12. Design A News Feed System
- 13. Design A Chat System
- 14. Design A Search Autocomplete System
- 15. Design YouTube
- 16. Design Google Drive
- 17. Proximity Service
- 18. Nearby Friends
- 19. Google Maps
- 20. Distributed Message Queue
- 21. Metrics Monitoring and Alerting System
- 22. Ad Click Event Aggregation
- 23. Hotel Reservation System
- 24. Distributed Email Service
- 25. S3-like Object Storage
- 26. Real-time Gaming Leaderboard
- 27. Payment System
- 28. Digital Wallet
- 29. Stock Exchange
Reference
https://bytebytego.com/
https://www.youtube.com/watch?v=M4lR_Va97cQ&list=PLCRMIe5FDPseVvwzRiCQBmNOVUIZSSkP8
https://www.youtube.com/watch?v=i7twT3x5yv8