← Home

databases

9 posts
Hardhigh level designdistributed systemsdatabasesstorage

Storage Engines: LSM-Trees vs B-Trees

Every database makes one foundational choice — how to lay bytes on disk. B-trees update in place; LSM-trees never overwrite, they append and compact. That single decision sets your write throughput, read latency, and space usage. Drive an LSM write path — memtable, flush, compaction — and see the tradeoff for yourself.

Asked at Google, Meta, Amazon +3
·14 min read

System Design Case Studies3-part series

Mediumsystem design interviewdatabasescachingalgorithms

Design a URL Shortener

The canonical system-design interview, built end to end: how tiny.co/aB3xK9 becomes a database lookup in single-digit milliseconds — base62, key generation, the read-heavy cache, and the scale math that makes 7 characters last a century.

Asked at Amazon, Google, Microsoft +2
·20 min read
Hardsystem design interviewdatabasesalgorithmsconcurrency

Design a Key-Value Store

The capstone that ties the whole series together: consistent hashing to place data, quorums to tune consistency, vector clocks to detect conflicts, and hinted handoff to stay writable through failure. This is Amazon's Dynamo, rebuilt from its four moving parts.

Asked at Amazon, Netflix, Uber +2
·23 min read