Writing on distributed systems, engineering culture, and the craft of building software — served through the lens of South Indian filter coffee.
Filter coffee is not instant. It is slow, deliberate, and demanding — ground fresh each morning, dripped through a steel percolator, served only when it is ready. That is the philosophy here. Every post starts from first principles. Every system design walks the trade-offs, not just the answers. Every idea is brewed until it is worth serving.
Seven principles. One ritual. One way of thinking. Grind fresh. Drip slow. Find the ratio. A philosophy for the craft of software, written in the language of Madras mornings.
The full system design narrated — base62, Cassandra, layered cache. The reasoning behind every call.
On consistency as craft — why raising the floor matters more than chasing the ceiling.
Consistency, availability, partition tolerance — what you actually give up in practice, and when it matters.
Two storage engine strategies, two different bets on the workload. What Postgres and Cassandra chose — and why.
What to optimize for in years one through three. Hint: it is not the tech stack.
TinyURL, bit.ly — the canonical read-heavy redirect. Single-counter ID generation, base62 encoding, layered caching, and a Cassandra-vs-Postgres call that depends entirely on traffic shape.
Like URL shortener, but with content. Two-tier storage, inline vs. S3 split, expiry pipeline, and the moment object storage becomes the right answer.
Photo feed, fan-out on read vs write, and why your celebrity users break everything.
Hybrid fan-out, timeline cache, the eventual consistency you live with so the home feed loads in time.
Video chunks, ABR ladders, CDN economics, and where transcoding actually happens.
Persistent connections, presence, end-to-end encryption, and what "delivered" actually guarantees.
Geohashing, driver matching, and the cell-grid that makes "nearby" tractable.
Token bucket, sliding window, and where the limiter itself becomes the bottleneck.
Kafka-style logs, partitions, consumer groups, and the exactly-once myth.
Idempotency keys, two-phase commits, and the ledger that has to balance no matter what.
Cache-aside, write-through, stampede protection, and the CDN edge. Where the cache lives changes everything downstream.
Base62, Snowflake, UUIDs, Zookeeper-coordinated ranges. Pick by collision tolerance, ordering, and coordination cost.
Postgres vs Cassandra vs Redis — a decision framework that starts with access patterns, not popularity.
Every topic on the docket — what's published, what's drafting, and what's still just an interesting question. Updated as the notebook grows.