system design interview - exercices
Tips
https://www.educative.io/blog/complete-guide-system-design-interview#sdifundamentals
- State what you know/Clarify the goals: Start each problem by stating what you know. This could include required features of the system, problems you expect to encounter, and what kind of traffic you expect the system to handle. This process shows your interviewer your planning skills, and also allows them to correct any possible misconceptions before you jump into the solution.
- Describe trade-offs: Your interviewer will want insight into any system design choice you make. At each decision point, explain at least one positive and one negative effect of your decision.
- Discuss emerging technologies: Conclude each question with an overview of how and where the system could benefit from machine learning, for example. This demonstrates that you’re not just prepared for current solutions, but future solutions as well.
Design a rate limiter
Transclude of system_design-rate_limiter.excalidraw
Design a unique id generator in distributed systems
Transclude of system_design-unique_id_generator.excalidraw
Design a URL shortener
Transclude of system_design-url_shortener.excalidraw
Design a Web Crawler
Transclude of system_design-web_crawler.excalidraw
Design a Notification System
Design a flight price alert
Design a News feed system
Design a Chat system
Design a search autocomplete system
Design Youtube / Video Streaming Engine
Design Google drive
Design a calendar
Design Uber
Design Instagram
Design a host logging solution
Design banking transaction aggregation system
Design an app that will aggregate your bank account balance and send notifications if it goes below a certain threshold.
Design a game with no latency constraint
Design a highly available distributed stats collection system
We need to be able to pull up recent data quickly to view them in a dashboard. All historical data needs to be persisted. Eventual consistency is acceptable.