System Design
End-to-end designs: requirements → estimates → components → trade-offs.
How to Approach Any System Design
A repeatable framework — requirements, estimates, API, data model, high-level design, deep dives, trade-offs — plus the numbers every architect should know.
Design: URL Shortener
The classic warm-up — ID generation, read-heavy caching, redirects at scale and analytics without slowing the hot path.
Design: Distributed Rate Limiter
Protect APIs and tenants — algorithms (token bucket, sliding window), distributed counters in Redis, and where to enforce limits.
Design: Notification System
Send email, SMS, push and webhooks at scale — fan-out, user preferences, retries, dedupe and provider failover.
Design: Real-time Chat
WebSockets at scale — connection gateways, message fan-out, ordering, delivery receipts, presence and offline sync.
Design: Headless CMS with Branches & Releases
My speciality — a multi-tenant content platform with Git-like branches, scheduled releases, multi-locale publishing and per-item job status.