Daily lessons
Problems
Url Shortener
Design Rate Limiter
Design LeetCode
Design Yelp
Design Pastebin
Design E-commerce Store
Realtime Monitoring System
Design Typeahead System
A comment system
Design Twitter
Design a Realtime Chat App like WhatsApp
Design Dropbox
Design YouTube
Design a Ride-Hailing Service Like Uber
Google Maps
Design TicketMaster
Design Netflix
Top K Heavy Hitter
Daily activity
Aug
Sep
Oct
Nov
Dec
Jan
Feb
Mar
Apr
May
Jun
Jul
Concepts
Basics: The System Design Interview Course
Basics: Interview Template
Basics: Study Guide
Basics: Core Challenges in Web-scale System Design (and How to Tackle Them)
Basics: Back-of-the-envelope Resource Estimation
Basics: Back-of-the-envelope Resource Estimation Real World Examples
Non-functional Requirements: Non-functional Requirements in System Design Interviews
Non-functional Requirements: System Design Components
Non-functional Requirements: High Availability
Non-functional Requirements: How to Achieve High Availability
Non-functional Requirements: Tech Stacks to Achieve High Availability
Non-functional Requirements: Latency
Non-functional Requirements: Throughput
Stateless Services: Evolution of Computing Environments
Stateless Services: Evolution of a Web App | Single to Scaling
Stateless Services: Evolution of a Web App | Stateless vs Stateful
Stateless Services: Load Balancer
Stateless Services: Load balancing Codelab
Data Structures Behind Databases: Data Structures Behind Databases
Data Structures Behind Databases: Sorted String Table(SSTable)
Data Structures Behind Databases: LSM Tree
Data Structures Behind Databases: B-tree
Storage: Introduction to Storage
Storage: SQL Database
Storage: Introduction to NoSQL Databases
Storage: Key-value Database
Storage: Document Database
Storage: Full-text Search Database
Storage: OLTP (Transaction) or OLAP (Analytics)?
Storage: Blob/Object Storage
Data Replication: How to Scale Databases
Data Replication: Database Replication: Fundamentals and Algorithms
Data Replication: Implementing Database Replication: Practical Guide and Failover Strategies
Data Replication: Data Replication Tutorial
Data Replication: Change Data Capture
Data Partitioning: Database Partitioning
Data Partitioning: Advanced Database Partitioning Techniques and Key Selection
Data Partitioning: Consistent Hashing
Data Partitioning: Database Partition Tutorial
Caching: Caching
Caching: Cache-aside (Lazy loading) Pattern
Caching: Write-through Pattern (pre-loading)
Caching: Caching Scaling
Caching: Caching TTL
Caching: Redis Codelab
Dataflow: Overview
Dataflow: Push vs Pull
Message Queue: Message Queues in System Design
Message Queue: Message Queue Use Cases and Patterns
Message Queue: Redis-queue Tutorial
Message Queue: Log-based message queues
Message Queue: Introduction to Kafka
Message Queue: Kafka Exercise
Batch Processing: Overview
Batch Processing: Batch processing In System Design
Batch Processing: MapReduce
Batch Processing: Dataflow Engines
Batch Processing: Why use Batch Processing
Stream Processing: Stream processing
Stream Processing: Batch and stream
Stream Processing: Lambda Architecture
Stream Processing: Kappa Architecture
Patterns: A Database Per Microservice
Patterns: Cache, Always
Patterns: Change Data Capture + ElasticSearch
Patterns: The Two-Stage Processing Pattern
Template: Design Template
Template: System Design Template Application: Social Media Comment System
Progress
0%