Posts on system design — both the fundamentals (consistency, partitioning, replication, queues) and the worked-out problems (rate limiting, URL shorteners, distributed counters, chat, feeds). Practical writing that prepares you for interviews and for the day a design decision actually matters.
Distributed counter at every scale. Postgres single-row up to ~10k updates/sec. Redis sharded counters up to ~1M. Async aggregation patterns for billions.
End-to-end content moderation design. Automated rules, ML / LLM classification, human review queues, appeals, and the patterns from real platforms.
Multi-region patterns: per-tenant region pinning, read replicas everywhere, write to home region, eventual consistency on the global plane, and the operational realities.
End-to-end design for voice chat: WebRTC, SFU vs MCU, signaling, presence, room state, and the operational realities of running voice at scale.
RTB system design. Latency budget breakdown, candidate generation, ranking, fraud, billing, and the operational realities of a sub-100ms decisioning pipeline.
Designing distributed locks. Redlock vs Redis SET NX, Postgres advisory locks, ZooKeeper / etcd, fencing tokens, and the patterns that prevent split-brain.
End-to-end CDN design. Anycast routing, edge / regional / origin tiers, cache hierarchy, purge propagation, and the operational realities.
End-to-end design for sending newsletters / transactional email at scale. Sender reputation, bounce / complaint handling, suppression lists, throttling per provider, and the patterns from real ESPs.
End-to-end design for a distributed cache. Consistent hashing, replication, eviction policies, hot keys, and the operational realities.
Leaderboards and live counters at scale. Redis sorted sets, counter sharding for hot keys, eventual consistency tradeoffs, and the production realities.