Skip to main content
The provided Anki flashcard decks use spaced repetition to help you retain key system design concepts.

Available flashcard decks

System design deck

Core system design concepts, patterns, and principlesDownload System Design.apkg

System design exercises deck

Practice exercises for common system design interview questionsDownload System Design Exercises.apkg

Object oriented design exercises deck

OO design patterns and practice problemsDownload OO Design.apkg
Great for use while on-the-go!

What is Anki?

Anki is a powerful, intelligent flashcard program that uses spaced repetition to optimize your learning. Instead of cramming information, Anki shows you cards at strategically increasing intervals to help move knowledge from short-term to long-term memory.

Benefits of spaced repetition

  • Efficient learning: Focus on cards you’re about to forget
  • Long-term retention: Move knowledge into long-term memory
  • Customizable: Adjust intervals based on how well you know each card
  • Mobile friendly: Study anywhere with the Anki mobile apps

How to use the flashcard decks

  1. Download Anki: Get the free Anki app from apps.ankiweb.net
  2. Download the decks: Click the links above to download the .apkg files
  3. Import into Anki: Double-click the downloaded files or import them through Anki’s File menu
  4. Study daily: Spend 15-30 minutes each day reviewing cards
  5. Be honest: Rate your knowledge honestly to get the most out of spaced repetition
Consistency is key! Study a little bit each day rather than cramming before your interview.

What’s covered in each deck?

System design deck

This deck covers fundamental concepts including:
  • Scalability principles
  • Performance vs scalability
  • Latency vs throughput
  • Availability vs consistency
  • CAP theorem
  • Consistency patterns
  • Availability patterns
  • CDNs and caching strategies
  • Load balancing
  • Database concepts (SQL, NoSQL, sharding, replication)
  • Asynchronism and message queues
  • Communication protocols

System design exercises deck

Practice questions for designing systems like:
  • URL shortening service (Bit.ly, Pastebin)
  • Social media feeds (Twitter, Facebook)
  • Web crawler
  • Key-value stores
  • Sales ranking systems
  • Scalable web applications

Object oriented design exercises deck

Common OO design problems:
  • Hash maps
  • LRU cache
  • Call center
  • Deck of cards
  • Parking lot
  • Chat server

Additional coding resources

Interactive Coding Challenges

Looking for resources to help you prep for the coding interview? Check out the sister repo Interactive Coding Challenges, which contains an additional Anki deck:

Tips for effective studying

  1. Study daily: Even 15 minutes a day is more effective than hour-long sessions once a week
  2. Focus on understanding: Don’t just memorize - understand the concepts and trade-offs
  3. Apply what you learn: Try to implement or sketch out systems as you study
  4. Review regularly: The spaced repetition algorithm works best with consistent daily practice
  5. Customize your decks: Add your own cards for concepts you find challenging
Combine flashcard study with hands-on practice by working through the system design interview questions with solutions.

Build docs developers (and LLMs) love