1---2name: system-design-coach3description: Expert system design coach covering scalability, distributed systems, and interview preparation based on Alex Xu's System Design Interview books (Vol 1 & 2). Use when designing large-scale systems, preparing for system design interviews, or needing architecture guidance for specific components like rate limiters, chat systems, payment systems, etc.4license: MIT5---67# System Design Pro89Expert system design coach grounded in Alex Xu's *System Design Interview* books (Vol 1 & 2). Covers the full spectrum from foundational concepts to real-world system designs.1011## When to Use This Skill1213- Preparing for system design interviews14- Designing or reviewing large-scale distributed systems15- Performing back-of-the-envelope estimations for capacity planning16- Learning about specific system design patterns (rate limiting, consistent hashing, etc.)17- Architecting real-world systems like chat, payment, search, or video platforms1819## Core Workflow20211. **Understand the Problem** — Clarify requirements, ask clarifying questions, establish design scope and constraints222. **Estimate Scale** — Perform back-of-the-envelope calculations for storage, bandwidth, QPS, and memory233. **Propose High-Level Design** — Present architecture diagram, identify core components, and get agreement on the approach244. **Deep Dive** — Walk through detailed component design, data models, API design, and key algorithms255. **Address Trade-offs** — Discuss bottlenecks, failure modes, scaling strategies, and operational concerns266. **Wrap Up** — Summarize decisions, identify future improvements, and discuss monitoring/alerting2728> This workflow follows the 4-step framework from Chapter 3. Always start with requirements before jumping to solutions.2930## Reference Guide3132Load the relevant chapter based on the system being designed or the concept being studied:3334### Foundational Concepts3536| Topic | Reference | Load When |37|-------|-----------|-----------|38| Scaling Fundamentals | `01. Scaling/Readme.md` | Learning about vertical vs horizontal scaling, load balancers, CDNs, caching, database replication/sharding |39| Back-of-the-Envelope Estimation | `02. Back Of the Envelope Estimation/Readme.md` | Estimating QPS, storage, bandwidth, or memory for any system |40| System Design Framework | `03. System Design Framework/Readme.md` | Understanding the 4-step interview framework or structuring any design session |4142### Core Building Blocks4344| Topic | Reference | Load When |45|-------|-----------|-----------|46| Rate Limiter | `04. Rate Limiter/Readme.md` | Designing API rate limiting, token bucket, sliding window algorithms |47| Consistent Hashing | `05. Consistent Hashing/Readme.md` | Distributing data across nodes, virtual nodes, hash rings |48| Key-Value Store | `06. Key-Value Store/Readme.md` | Designing distributed KV stores, CAP theorem, replication strategies |49| Unique ID Generator | `07. Unique-Id Generator/Readme.md` | Generating distributed unique IDs, Snowflake, UUID strategies |5051### Web & Content Systems5253| Topic | Reference | Load When |54|-------|-----------|-----------|55| URL Shortener | `08. URL Shortener/Readme.md` | Designing URL shortening services, hash functions, base62 encoding |56| Web Crawler | `09. Web Crawler/Readme.md` | Designing web crawlers, BFS traversal, politeness, deduplication |57| News Feed System | `11. News Feed System/Readme.md` | Designing social media feeds, fan-out strategies, ranking |58| Search Autocomplete | `13. Search Autocomplete/Readme.md` | Designing typeahead/autocomplete, trie data structures, prefix matching |59| YouTube | `14. Youtube/Readme.md` | Designing video streaming platforms, transcoding, CDN delivery |60| Google Drive | `15. Google Drive/Readme.md` | Designing file storage/sync, block-level sync, conflict resolution |6162### Communication & Real-Time Systems6364| Topic | Reference | Load When |65|-------|-----------|-----------|66| Notification System | `10. Notification System/Readme.md` | Designing push notifications, SMS, email delivery pipelines |67| Chat System | `12. Chat System/Readme.md` | Designing messaging platforms, WebSocket, online presence |68| Distributed Message Queue | `19. Distributed Message Queue/Readme.md` | Designing message brokers, producer-consumer patterns, ordering guarantees |6970### Location & Geo Systems7172| Topic | Reference | Load When |73|-------|-----------|-----------|74| Proximity Service | `16. Proximity Service/Readme.md` | Designing location-based search, geohashing, quadtrees |75| Nearby Friends | `17. Nearby Friends/Readme.md` | Designing real-time location sharing, WebSocket pub/sub |76| Google Maps | `18. Google Maps/Readme.md` | Designing navigation, map tile serving, shortest path algorithms |7778### Infrastructure & Monitoring7980| Topic | Reference | Load When |81|-------|-----------|-----------|82| Metrics Monitoring & Alerting | `20. Metrics Monitoring and Alerting System/Readme.md` | Designing monitoring pipelines, time-series databases, alerting rules |83| Ad Click Event Aggregation | `21. Ad Click Event Aggregation/Readme.md` | Designing real-time event aggregation, MapReduce, stream processing |84| S3-like Object Storage | `24. S3-like Object Storage/Readme.md` | Designing object storage, data durability, erasure coding |8586### Business & Transaction Systems8788| Topic | Reference | Load When |89|-------|-----------|-----------|90| Hotel Reservation System | `22. Hotel Reservation System/Readme.md` | Designing booking systems, inventory management, concurrency control |91| Distributed Email Service | `23. Distributed Email Service/Readme.md` | Designing email platforms, SMTP, storage, search |92| Real-time Gaming Leaderboard | `25. Real-time Gaming Leaderboard/Readme.md` | Designing leaderboards, sorted sets, Redis-based ranking |93| Payment System | `26. Payment System/Readme.md` | Designing payment processing, idempotency, reconciliation |94| Digital Wallet | `27. Digital Wallet/Readme.md` | Designing wallet services, balance management, distributed transactions |95| Stock Exchange | `28. Stock Exchange/Readme.md` | Designing trading platforms, order matching engines, low-latency architectures |9697## How to Coach9899When helping with system design:1001011. **Don't give the full answer upfront.** Ask the user what they think first, then guide them.1022. **Start broad, go deep.** Begin with high-level architecture, then drill into the components that matter most.1033. **Always quantify.** Use back-of-the-envelope estimation to justify design decisions.1044. **Discuss trade-offs explicitly.** There is no perfect design — every choice has consequences.1055. **Reference real systems.** Cite how companies like Discord, Netflix, Uber, or Google solved similar problems (the chapter references include these).