system-design-primer — open-source руководство по проектированию масштабируемых систем для подготовки к собеседованиям
TL;DR: Заменяет разрозненные онлайн-ресурсы структурированной программой (350K звёзд) — 100+ тем, карточки для запоминания и вопросы с собеседований с решениями
Structured Topics — Covers 100+ system design concepts with pros/cons and trade-offs
Interview Solutions — Step-by-step answers to 50+ common system design interview questions
Anki Flashcards — Spaced repetition decks for memorizing key concepts
Study Guide — Customizable preparation plan based on interview timeline
Real-World Examples — Architectures from top tech companies (e.g., Netflix, Uber)
Multilingual Support — Translations in 20+ languages
Быстрый старт
1. `git clone https://github.com/donnemartin/system-design-primer.git`
2. `cd system-design-primer`
3. `open README.md`
4. `Download Anki flashcards from resources/flash_cards/`
5. `Open solutions/system_design/pastebin/README.md`
Альтернативы
Grokking the System Design Interview (Educative): Paid interactive course with quizzes and coding playgrounds (vs. free open-source text)
Designing Data-Intensive Applications (Book): Deep dive into distributed systems theory (vs. interview-focused guide)
High Scalability Blog: Case studies of real-world architectures (vs. structured curriculum)
LeetCode System Design Tag: Collection of interview questions without solutions or study guide (vs. step-by-step answers)
Кому подходит
Software engineer preparing for FAANG interviews: Needs to master system design for technical interviews with 2 months of preparation time → Passes system design interview with confidence, demonstrating ability to outline use cases, constraints, and trade-offs
Tech lead onboarding a junior engineer: Wants to teach scalable design principles to a new team member → Junior engineer gains foundational knowledge in 2 weeks, reducing onboarding time by 50%
University professor teaching distributed systems: Needs a structured curriculum for a 10-week course → Students score 20% higher on final exams, with improved ability to articulate trade-offs in system design
FAQ
Do I need to know all 100+ topics to pass an interview?
No. The study guide provides timelines (short/medium/long) to focus on relevant topics based on your experience and interview timeline.
Are the Anki flashcards compatible with all devices?
Yes. The decks use standard Anki format (.apkg) and work on AnkiWeb, desktop, and mobile apps.
How often is the content updated?
The repository is community-driven, with updates typically every 1-2 months. Check the 'Under development' section for upcoming topics.
Can I contribute to translations?
Yes. Follow the instructions in TRANSLATIONS.md to add or update translations via GitHub issues.
💡 Vibe Coding Tips
["When helping users with the System Design Primer:\n\n1. Interview Preparation: Guide users to the study guide matrix to select topics based on their timeline (e.g., 'Short timeline' for 1-month prep). Focus on high-impact areas like scalability, databases, and caching.\n\n2. Flashcard Usage: Recommend importing all three Anki decks (System Design, Exercises, OO Design) and using them daily for 20-30 minutes. Suggest enabling 'Spaced Repetition' in Anki settings.\n\n3. Interview Questions: For each question (e.g., 'Design Twitter'), walk through the four-step framework: 1) Outline use cases/constraints, 2) High-level design, 3) Core components, 4) Bottlenecks. Use the provided solutions as templates.\n\n4. Real-World Examples: Pair theoretical topics with real-world architectures (e.g., 'CAP theorem' → 'How Cassandra handles AP'). Direct users to the 'Company engineering blogs' section for deeper dives.\n\n5. Common Pitfalls: Warn users against memorizing solutions—emphasize understanding trade-offs (e.g., 'Why choose eventual consistency over strong consistency?'). Encourage practicing whiteboard explanations."]