Distributed Systems
- Distributed ID Generation: Snowflake, Sequences, UUIDs, and Clock Failure
- Inside Distributed Rate Limiters: Token Buckets, Sliding Windows, and Global Quotas
- Distributed Locks: Leases, Fencing Tokens, Sessions, and Failure Safety
- Inside Distributed Transactions: 2PC, Sagas, Outbox, Idempotency, and Recovery
- Designing a CDN: Routing, Edge Delivery, and Origin Protection
- Designing WebSocket Systems: Connections, Sessions, Reconnection, and Server Internals
- Inside Raft: Leader Election, Log Replication, Quorums, and Safety
- Inside a Load Balancer: Connections, Scheduling, Health, and Failover
- Geohashing: Scalable Geospatial Indexing for Distributed Systems
- CAP Theorem: What a Network Partition Actually Forces You to Choose
- S3 Multi part upload
- Inside Redis Cluster: Slots, Gossip, Replication, and Failover
- SSTable
- Inside Cassandra: Partitioning, Replication, Storage, and Repair
- Inside Apache Kafka: Partitions, Replication, Consumer Groups, and KRaft
- Inside Service Discovery: Registries, Health, Routing, and Stale Endpoints
- Inside Sharding: Partition Maps, Consistent Hashing, Rebalancing, and Hotspots
- Inside Replication: Logs, Acknowledgements, Failover, and Convergence
- Distributed Cache
- Inside ZooKeeper: Znodes, Sessions, Watches, Zab, and Fencing
- Comparison between databases
- Inside Bigtable: Tablets, SSTables, Compaction, and Recovery
- Inside GFS: Chunks, Leases, Mutation Ordering, and Recovery
System Design
- Designing a Distributed Top-K Heavy Hitters System
- Designing CRDT Systems: Replicas, Merges, Offline Edits, and Convergence
- Design Deliveroo
- Design Uber
- Design Twitter
- Design Tiny URL
- Design Booking Service
- Design Collaborative Editing: Real-Time Documents, Conflict Resolution, and Recovery
- Design Web Crawler
- Capacity Estimation for System Design: Traffic, Storage, Bandwidth, and Headroom
- Design Chat Application
- Design Data Intensive Applications
C++ Algorithms
- Next Greater Element II: Circular Monotonic Stack
- Detect Squares
- Number of Islands
- Max Area of Island
- Design a Hit Counter
- Assign Rental Cars to Time-Window Requests
- Max Points on a Line
- Graph Representation and DFS
- Top N Tickers by Traded Volume
- LRU Cache
- Algorithms Index
- Segment Tree and Fenwick Tree
- String Algorithms
- Dynamic Programming
- Binary Search Patterns
- Monotonic Stack and Deque
- Sliding Window and Two Pointers
- Topological Sort and SCC
- Shortest Path and MST
- Disjoint Set Union
- Trees
- Basic Algorithms
C++ Reference
- C++ Template Programming: From Generic Functions to Library Design
- C++ Threads, Mutexes, and Condition Variables
- Understanding C++ Concurrency: Locks, Conditions, and Queues
- RAII: Deterministic Resource Management in C++
- C++ Value Categories: lvalues, rvalues, and std::move
- C++ Iterators and Invalidation
- C++ List and LRU Patterns
- C++ Deque and Sliding Windows
- C++ Queue, Stack, and Priority Queue
- C++ Sets and Multisets
- C++ Maps and Hashing
- C++ Vector and String
- C++ Containers Index
- C++ Value Semantics: Rule of Zero, Copy, and Move
Cloud Infrastructure
- Containers from First Principles