PrepKitBeta
DSALLDSystem DesignLanguages
PrepKit

© 2026 PrepKit. All rights reserved.

Made with ❤︎ by Jasir

System Design

Learn the building blocks of scalable systems and apply them to real-world case studies to ace the system design interview.

Foundations

Foundational concepts for understanding system design.

  • Introduction & The Interview Process
  • Back-of-the-Envelope Estimation
  • Networking Fundamentals
  • API Design (REST, gRPC)
  • Databases (SQL vs NoSQL, Indexes, ACID)

Scaling to a Distributed System

Key concepts for scaling applications and managing distributed systems.

  • Scalability (Vertical vs Horizontal)
  • Load Balancing
  • CAP Theorem
  • Consistency Patterns
  • Availability Patterns (Failover, Redundancy)
  • Caching Strategies
  • Proxies

Data in a Distributed World

Key concepts for managing data in distributed systems.

  • Data Partitioning (Sharding)
  • Database Replication
  • Consistent Hashing
  • Quorum and Consensus
  • Blob Storage for Large Files

Building Modern, Resilient Architectures

Architectural patterns for building modern, resilient systems.

  • Monolithic vs. Microservices
  • API Gateways
  • Service Discovery
  • Message Queues
  • Publish-Subscribe Pattern
  • Event-Driven & Serverless Architectures
  • Idempotency

Operating a Production System

Key concepts for operating and maintaining production systems.

  • Security (AuthN, AuthZ, Encryption)
  • Observability (Metrics, Logging, Tracing)
  • Rate Limiting
  • Leader Election
  • Distributed Transactions

System Design Case Studies

Hands-on case studies to apply system design concepts in real-world scenarios.

  • Design a URL ShortenerComing Soon
  • Design a Social Media FeedComing Soon
  • Design a Ride-Sharing AppComing Soon
  • Design a Video Streaming ServiceComing Soon
  • Design a Chat ApplicationComing Soon
  • Design a Web CrawlerComing Soon
  • Design a Search TypeaheadComing Soon