Tag

#system-design

83 posts

Payments Engineering in India — From UPI to Ledgers

Payments Engineering in India — From UPI to Ledgers

Every app in India takes payments now. Food delivery, ed-tech, D2C brands, SaaS…

In the Wild: Spotify's Event Delivery

In the Wild: Spotify's Event Delivery

Open Spotify and every interaction — pressing play, skipping a track, liking a…

In the Wild: Slack's Job Queue

In the Wild: Slack's Job Queue

Most of what a Slack message triggers does not happen in the request that sent…

In the Wild: How Shopify Survives Flash Sales

In the Wild: How Shopify Survives Flash Sales

The textbook flash sale design is a clean whiteboard exercise. Shopify runs it…

In the Wild: Figma's Multiplayer Editing

In the Wild: Figma's Multiplayer Editing

Our Collaborative Editor lesson weighs Operational Transform against CRDTs for…

In the Wild: How Discord Stores Trillions of Messages

In the Wild: How Discord Stores Trillions of Messages

The design lessons in this course teach patterns in the abstract. This “In the…

How to Prepare

How to Prepare

You can read every lesson in this course and still stumble in the room if you…

Design a Distributed Job Scheduler

Design a Distributed Job Scheduler

Plenty of systems need work to happen later: send a reminder in 24 hours, run a…

Design Live Comments

Design Live Comments

“Design live comments” (Facebook Live, YouTube Live, Twitch chat) tests whether…

Design Top-K / Trending

Design Top-K / Trending

“Show me the 10 most-watched videos in the last hour.” “What are the top…

Design an Online Auction

Design an Online Auction

“Design an online auction” (eBay with live bidding) is a contention problem…

Design a Flash Sale System

Design a Flash Sale System

At 12:00:00 sharp, a retailer drops 10,000 units of a hyped sneaker at half…

Design Yelp (Local Business Search)

Design Yelp (Local Business Search)

“Find good coffee near me.” Behind that one tap sits a system that must filter…

Design Ticketmaster

Design Ticketmaster

Most of Ticketmaster is an ordinary catalogue: browse events, view a seat map…

Design a Metrics & Monitoring System

Design a Metrics & Monitoring System

Every serious system needs eyes on it: CPU, latency, error rates, business…

Advanced: Change Data Capture (CDC)

Advanced: Change Data Capture (CDC)

Your data lives in a database, but that is rarely the only place it needs to be…

Advanced: Vector Databases

Advanced: Vector Databases

Keyword search matches strings: a search for “car” misses a document that only…

Advanced: Time-Series Databases

Advanced: Time-Series Databases

Most databases in this course are optimised for reading and updating individual…

Advanced: Data Structures for Big Data

Advanced: Data Structures for Big Data

Some questions are easy with a hash set and impossible at scale. “Has this user…

Advanced: Proximity Search

Advanced: Proximity Search

“Find the 20 nearest restaurants,” “show drivers within 2 km,” “who is nearby to…

Pattern: Managing Long-running Tasks

Pattern: Managing Long-running Tasks

Not everything fits in a request/response. A user clicks “export my data” and…

Pattern: Handling Large Blobs

Pattern: Handling Large Blobs

Sooner or later a design involves something big and binary: profile photos…

Pattern: Dealing with Contention

Pattern: Dealing with Contention

Some of the most memorable interview questions are really contention questions…

Pattern: Real-time Updates

Pattern: Real-time Updates

Many interview questions have a line buried in the requirements like “users…

Key Technologies: Pick the Right Tool

Key Technologies: Pick the Right Tool

“I’ll use Kafka” is not an answer. “This needs a durable, replayable log to…

Data Modeling

Data Modeling

Ask a junior candidate to design a system and they start drawing tables. Ask a…

Design a Collaborative Editor (Google Docs)

Design a Collaborative Editor (Google Docs)

“Design Google Docs” is the canonical real-time collaboration question. It looks…

Design an Ad Click Aggregator

Design an Ad Click Aggregator

“Design the system behind an advertising dashboard” is a favourite analytics…

Stream Processing

Stream Processing

Most of the designs so far store data and answer queries against it. Stream…

Distributed Transactions

Distributed Transactions

In a single database, a transaction is a gift: , do several writes, , and either…

Consensus and Coordination

Consensus and Coordination

Replication told you how to keep copies of data in sync. This lesson answers the…

Databases Deep-Dive: Indexing and Transactions

Databases Deep-Dive: Indexing and Transactions

Most candidates can say “I’ll use PostgreSQL” or “I’ll use Cassandra,” but…

API Design

API Design

After you gather requirements, the next concrete artifact in a system design…

Networking and Protocols

Networking and Protocols

Most candidates can draw boxes and arrows, but freeze when an interviewer asks…

Design Google Drive / Dropbox

Design Google Drive / Dropbox

File sync services like Google Drive and Dropbox let hundreds of millions of…

Design a Distributed Message Queue (Kafka)

Design a Distributed Message Queue (Kafka)

A message queue decouples producers from consumers: services publish events…

Design Typeahead / Autocomplete

Design Typeahead / Autocomplete

“Design the search box that suggests queries as you type” looks deceptively…

Design a Key-Value Store (Dynamo-style)

Design a Key-Value Store (Dynamo-style)

“Design a distributed key-value store” — the Dynamo question — is the deepest…

Design a Unique ID Generator

Design a Unique ID Generator

Generating unique IDs sounds trivial until you remove the single database that…

Design a News Feed (Twitter/Instagram)

Design a News Feed (Twitter/Instagram)

“Design Twitter’s timeline” (or Instagram’s feed, or Facebook’s News Feed) is…

Design a Notification System

Design a Notification System

Every product sends notifications — order shipped, someone mentioned you, your…

Design a URL Shortener (TinyURL/bit.ly)

Design a URL Shortener (TinyURL/bit.ly)

A URL shortener looks trivial — map a long URL to a short code and redirect…

Scaling Pitfalls: Hotspots, Stampedes and Failure

Scaling Pitfalls: Hotspots, Stampedes and Failure

A design that looks correct on the whiteboard can still collapse the first time…

Replication and Consistency

Replication and Consistency

Almost every scalable system keeps more than one copy of its data. The moment…

Scaling Reads

Scaling Reads

Almost every system you will be asked to design is read-heavy. A social network…

Scaling Writes

Scaling Writes

In the previous lesson, reads scaled by making copies: a cache, a replica, a CDN…

Cracking the System Design Interview

Cracking the System Design Interview

System design interviews are the most feared round in senior engineering…

Mock Interview Walkthrough

Mock Interview Walkthrough

Reading about system design is one thing. Performing under interview pressure is…

Mistakes That Kill Your Interview

Mistakes That Kill Your Interview

I’ve seen hundreds of system design interviews from both sides of the table. The…

Design a Distributed Cache

Design a Distributed Cache

Every high-traffic system hits the same wall: the database cannot handle the…

Design a Rate Limiter

Design a Rate Limiter

Every public API needs a rate limiter. Without one, a single misbehaving client…

Design a Web Crawler

Design a Web Crawler

Web crawlers are the backbone of search engines. Google’s crawler discovers and…

Design a Payment System

Design a Payment System

Payment systems are the backbone of e-commerce. A bug here does not just cause a…

Design a Search Engine

Design a Search Engine

A search engine is one of the most complex distributed systems ever built…

Design an E-Commerce Platform

Design an E-Commerce Platform

E-commerce platforms handle some of the most demanding distributed systems…

Design a Chat System (WhatsApp)

Design a Chat System (WhatsApp)

“Design WhatsApp” is one of the most popular system design interview questions…

Design a Video Streaming Platform (YouTube)

Design a Video Streaming Platform (YouTube)

“Design YouTube” is the quintessential system design interview question. It…

Design a Ride-Sharing App (Uber)

Design a Ride-Sharing App (Uber)

Ride-sharing platforms like Uber and Lyft process millions of rides daily…

Common Components and When to Use Them

Common Components and When to Use Them

Every system you design in an interview is assembled from a small set of well…

The Framework — How to Structure Your Answer

The Framework — How to Structure Your Answer

In the previous lesson, we covered what interviewers actually evaluate. Now we…

Estimation and Back-of-Envelope Math

Estimation and Back-of-Envelope Math

When an interviewer asks you to estimate the storage requirements for a…

What Interviewers Actually Look For

What Interviewers Actually Look For

Most candidates walk into a system design interview thinking they need to…

System Design Masterclass

System Design Masterclass

System design is the skill that separates senior engineers from everyone else…

Staff Engineer Study Plan for MAANG Interviews — The Complete 12-Week Roadmap

Staff Engineer Study Plan for MAANG Interviews — The Complete 12-Week Roadmap

If you’re a Senior Engineer (L5) preparing for Staff (L6+) roles at MAANG…