Today the system design interview is the dividing line between junior, senior, and staff+ engineering candidates, and even between frontline managers, senior managers, and directors. Candidates for the highest engineering roles must have a solid command of modern system design, and even candidates for higher-level management must be able to demonstrate a grasp of it.
This book is designed around the key concepts one needs to be familiar with before walking into a system design interview. Each chapter uses real-world examples to establish a mnemonic concept designed to aid one's recall in the stressful interview environment.
Table of Contents (in alphabetical order)
A ⇒ Availability
B ⇒ Bloom Filter
C ⇒ Consistent Hashing
D ⇒ Distributed Consensus
E ⇒ Event Sourcing
F ⇒ Fault Tolerance
G ⇒ GeoHashing
H ⇒ HTTP
I ⇒ Idempotence
K ⇒ Kafka
L ⇒ Load-Balancing
M ⇒ Merkle Trees
N ⇒ NoSQL
O ⇒ Order-of-Magnitude Estimation
P ⇒ PN-Counter
Q ⇒ Quorum
R ⇒ Replication
S ⇒ Sharding
T ⇒ Transactions
U ⇒ UUID
W ⇒ WebSockets
Z ⇒ ZooKeeper