System Design Interview

Course Overview
Advanced
Free Course

For software engineers preparing for the system design interview, from mid-level to staff. You will learn a four-step framework, back-of-the-envelope estimation and the core building blocks, then practise them on twenty-five classic designs, from a rate limiter and URL shortener to chat, payments and a stock exchange, so you can scope, size and defend a design under interview pressure. 71 lessons in 31 sections, about 60 hours.

Instructor: MantraMindAI
Sections: 31

Course Content

Section 1: Introduction: How to Use This Course

Learn what the system design round is, how it is scored and levelled, and how to work through this course and pick the sections that fit your target role. 2 lessons, about 60 minutes.

Section 2: Scale From Zero to Millions of Users

Grow a design from a single server to millions of users, adding load balancers, replication, caching, a CDN and sharding one step at a time, and learn what each step costs. 2 lessons, about 120 minutes.

Section 3: Back-of-the-Envelope Estimation

Size a system in minutes from the numbers worth memorising, computing traffic, storage, bandwidth and memory, and sanity-check the result before it drives your design. 2 lessons, about 90 minutes.

Section 4: A Framework for System Design Interviews

Learn the four-step interview framework — requirements, high-level design, deep dive and wrap-up — with a time budget for each and how to communicate when the problem is still vague. 2 lessons, about 90 minutes.

Section 5: Building Blocks Reference

A reference for the building blocks every design uses: CAP and consistency models, databases, partitioning and replication, caching, load balancing, queues, communication patterns, reliability and observability. 3 lessons, about 150 minutes.

Section 6: Design a Rate Limiter

Design a distributed rate limiter by comparing the five main algorithms, choosing where the limiter lives, and keeping counters correct across servers. 2 lessons, about 100 minutes.

Section 7: Design Consistent Hashing

Learn why modulo hashing breaks when servers change, and how the hash ring, virtual nodes and replication on the ring fix it. 2 lessons, about 90 minutes.

Section 8: Design a Key-Value Store

Design a distributed key-value store, covering storage engines, partitioning, quorums, conflict resolution and failure handling, and trace a read and a write end to end. 3 lessons, about 140 minutes.

Section 9: Design a Unique ID Generator in Distributed Systems

Generate unique, roughly time-ordered IDs across many machines with the Snowflake approach, and handle clock problems and machine ID assignment. 2 lessons, about 80 minutes.

Section 10: Design a URL Shortener

Design a URL shortener, from the API and data model through short-key generation to serving billions of redirects from cache. 2 lessons, about 100 minutes.

Section 11: Design a Web Crawler

Design a web-scale crawler around the crawl loop, a polite URL frontier and duplicate detection, and make it survive the traps of the open web. 2 lessons, about 120 minutes.

Section 12: Design a Notification System

Design a notification system that sends push, SMS and email reliably, without duplicates, while respecting user preferences and rate limits. 2 lessons, about 110 minutes.

Section 13: Design a News Feed System

Design a social news feed by weighing fan-out on write against fan-out on read, then build the hybrid real systems use, with storage, caching and ranking. 2 lessons, about 130 minutes.

Section 14: Design a Chat System

Design a chat system with persistent connections, stateful servers, ordered message storage, group chat, presence and delivery state. 2 lessons, about 130 minutes.

Section 15: Design a Search Autocomplete System

Design search autocomplete with a trie that caches the top suggestions at every node, an offline data pipeline, and serving at millisecond latency. 2 lessons, about 110 minutes.

Section 16: Design YouTube

Design a video platform whose uploads are transcoded in parallel as a task graph and whose playback is served almost entirely from a CDN, where egress cost drives the design. 2 lessons, about 140 minutes.

Section 17: Design Google Drive

Design a file sync service that splits files into content-addressed blocks, sends only the blocks that changed and resolves conflicting offline edits across devices. 2 lessons, about 130 minutes.

Section 18: Proximity Service

Find nearby places quickly by precomputing a geospatial index (grids, geohashes or quadtrees) over data that rarely changes. 2 lessons, about 120 minutes.

Section 19: Nearby Friends

Show users which friends are nearby when every location changes every few seconds, using publish-subscribe over live connections instead of an index. 2 lessons, about 110 minutes.

Section 20: Google Maps

Design map tiles, a routing engine that works at continental scale, ETAs from live traffic and turn-by-turn navigation. 2 lessons, about 130 minutes.

Section 21: Design a Distributed Message Queue

Design a Kafka-style message queue: why a log beats a queue, how partitions decide ordering, and what each delivery guarantee really costs. 3 lessons, about 130 minutes.

Section 22: Design a Metrics Monitoring and Alerting System

Design a metrics pipeline that takes millions of writes per second, covering push versus pull collection, time-series storage, downsampling and alerting. 2 lessons, about 120 minutes.

Section 23: Design an Ad Click Event Aggregation

Count ad clicks accurately enough to bill from, using stream aggregation with windowing, exactly-once processing and reconciliation against raw events. 3 lessons, about 130 minutes.

Section 24: Design a Hotel Reservation System

Design hotel search and booking so that no room is ever sold twice, keeping strict consistency to the small part of the system that needs it. 2 lessons, about 120 minutes.

Section 25: Design a Distributed Email Service

Design an email service at petabyte scale, separating metadata from message bodies, with per-user search, reliable delivery, threading and spam filtering. 3 lessons, about 130 minutes.

Section 26: Design an S3-like Object Storage

Design S3-style object storage with separate metadata and data paths, durability worked out from replication or erasure coding, and strong read-after-write. 3 lessons, about 130 minutes.

Section 27: Design a Real-Time Gaming Leaderboard

Rank millions of players in real time by choosing the right data structure, a sorted set, and learn how to scale it beyond one node. 2 lessons, about 100 minutes.

Section 28: Design a Payment System

Design a payment system that never charges twice, using idempotency keys, a double-entry ledger, the outbox pattern and daily reconciliation with the provider. 3 lessons, about 140 minutes.

Section 29: Design a Digital Wallet

Design a digital wallet whose balances cannot silently go wrong, using double-entry bookkeeping, event sourcing and safe transfers across shards. 3 lessons, about 140 minutes.

Section 30: Design a Stock Exchange

Design a stock exchange around a single-threaded, deterministic matching engine, with a microsecond latency budget, replay-based failover and multicast market data. 3 lessons, about 150 minutes.

Section 31: The Learning Continues

Review the patterns that recur across every case study, find your own gaps with a self-assessment, and plan how to keep practising. 2 lessons, about 60 minutes.