Blog
29 posts on system design, distributed systems and things I find beautiful.
- 14 MAY geohash vs quadtree vs r-tree - three ways to find what's near you #databases
- 12 MAY computer use agent story #design-stories
- 11 MAY noVNC and websockify #networking
- 07 MAY how dropbox handles uploads, downloads and sync #design-stories
- 03 MAY id generators - from `Date.now()` to snowflake #distributed
- 20 APR designing instagram's hashtag page #design-stories
- 20 APR designing the unread message count #design-stories
- 05 APR bit.ly system design — building a url shortener #design-stories
- 11 FEB remote locks and distributed locks #distributed
- 03 JAN Message queue #messaging
- 05 DEC scaling reads #databases
- 01 OCT why databases use b+ trees to hold data #databases
- 23 SEP kv store on relational db: a storage-compute separation story #databases
- 07 SEP Caching : Thundering Herd and Request Hedging #distributed
- 07 SEP How DNS Really works and How it scales infinitely #networking
- 07 SEP Understanding Proxies: Forward vs Reverse #networking
- 07 SEP 13 Root Name Servers - The Foundation of the Internet #networking
- 07 SEP Soft Delete: Why We Never Really Delete #databases
- 07 SEP The Framework of Opposites: A System Designer's Secret Weapon #fundamentals
- 07 SEP What Happens When You Hit a URL in Your Browser #networking
- 27 JUL load balancer #networking
- 15 JUL Delegation | Task Offloading #distributed
- 15 JUL Kafka Essentials #messaging
- 27 JUN Database Locking #databases
- 25 JUN Communication - Polling, Websockets & SSE #networking
- 23 JUN Scaling | DB Proxy Pattern #databases
- 01 MAY Designing a Practical Rate Limiter #distributed
- 07 APR Bloom Filters: Space-Efficient Probabilistic Data Structures #fundamentals
- 05 APR Client-Server Architecture and Network Protocols #networking
2026
2025
geohash vs quadtree vs r-tree - three ways to find what's near you
14 MAY 2026 · 13 MIN
computer use agent story
12 MAY 2026 · 19 MIN
noVNC and websockify
11 MAY 2026 · 5 MIN
how dropbox handles uploads, downloads and sync
07 MAY 2026 · 11 MIN
id generators - from `Date.now()` to snowflake
03 MAY 2026 · 18 MIN
designing instagram's hashtag page
20 APR 2026 · 15 MIN
designing the unread message count
20 APR 2026 · 8 MIN
bit.ly system design — building a url shortener
05 APR 2026 · 16 MIN
remote locks and distributed locks
11 FEB 2026 · 13 MIN
Message queue
03 JAN 2026 · 14 MIN
scaling reads
05 DEC 2025 · 20 MIN
why databases use b+ trees to hold data
01 OCT 2025 · 9 MIN
kv store on relational db: a storage-compute separation story
23 SEPT 2025 · 11 MIN
Caching : Thundering Herd and Request Hedging
07 SEPT 2025 · 6 MIN
How DNS Really works and How it scales infinitely
07 SEPT 2025 · 9 MIN
Understanding Proxies: Forward vs Reverse
07 SEPT 2025 · 9 MIN
13 Root Name Servers - The Foundation of the Internet
07 SEPT 2025 · 5 MIN
Soft Delete: Why We Never Really Delete
07 SEPT 2025 · 5 MIN
The Framework of Opposites: A System Designer's Secret Weapon
07 SEPT 2025 · 5 MIN
What Happens When You Hit a URL in Your Browser
07 SEPT 2025 · 7 MIN
load balancer
27 JUL 2025 · 14 MIN
Delegation | Task Offloading
15 JUL 2025 · 9 MIN
Kafka Essentials
15 JUL 2025 · 5 MIN
Database Locking
27 JUN 2025 · 16 MIN
Communication - Polling, Websockets & SSE
25 JUN 2025 · 14 MIN
Scaling | DB Proxy Pattern
23 JUN 2025 · 18 MIN
Designing a Practical Rate Limiter
01 MAY 2025 · 10 MIN
Bloom Filters: Space-Efficient Probabilistic Data Structures
07 APR 2025 · 10 MIN
Client-Server Architecture and Network Protocols
05 APR 2025 · 7 MIN