The Deceptively Simple Interview: Designing a Like Counter
You've rehearsed "design WhatsApp" until the boxes draw themselves. The principal engineer across the table reads from a card instead: "Add a like button to posts. Show the count." Two sentences. You have tapped that button ten thousand times; you have never once defended it. Welcome to the canonical deceptively simple system — the prompt where everyone knows what the feature does and almost no one can explain what it costs, because a number that looks like a column is actually a distributed system wearing a disguise.
The Trap Built Into a Single Number
This prompt fails candidates in two opposite directions, and interviewers see both every week:
- The Dismissal:
UPDATE posts SET like_count = like_count + 1and a confident smile. It double-counts the first retried request, cannot express "unlike," and melts the first time a celebrity's post takes fifty thousand likes a second on one database row. Signal: the candidate has never watched a lock convoy form. - The Citadel: Kafka, Flink, CRDTs and an exactly-once pipeline — summoned to protect a median post that will receive about a dozen likes in its entire life. Signal: judgment baited by the word "scale."
The passing performance threads between them: a boring, strongly consistent baseline that is simply correct for 99.99% of posts, plus a surgical hot-post path that activates only when measured contention demands it — with the activation threshold named before anyone asks. That performance, end to end, is what this module teaches.
Sign in to continue reading
The rest of this lesson is available with a free account. Signing in with Google or Microsoft is free.
Sign in to read the full lesson