Devrim Ozcay

The System Design Answer That Gets the Offer: A Full Teardown of "Design a Notification System"

Subscriber teardown — interview edition. One real prompt, taken apart the way a staff interviewer actually scores it. Free: why strong engineers fail this. Paid: the exact 40-minute script, line by li

Devrim’s Engineering Notes's avatar
Devrim’s Engineering Notes
May 19, 2026
∙ Paid

This is the interview teardown. Same format as the incident ones: one real thing, taken completely apart, ending in something you can use cold — except here the thing you can use is the actual sequence of sentences that wins a system design round, not a runbook.

I’m using “Design a notification system” because it’s the most common senior backend prompt in the market right now and because it is deceptively simple. Every engineer thinks they can answer it. Most strong engineers fail it. I failed it, in real interviews, after a layoff, when I needed the offer and didn’t get it. Then I figured out what was actually being scored, and the next ones converted.

Free section: the trap, and why being good at distributed systems does not save you here. Paid: the minute-by-minute script what to say, in what order, with the actual diagrams that I rebuilt my own answers around once I understood the game.

What you think this question is

You think “design a notification system” is a test of whether you know the components.

So you prepare the components. Queue. Workers. Push provider integration. Fan-out. A database for delivery status. Websockets for real-time. You can draw this. You’ve drawn it. You walk in ready to draw it again.

Here’s the architecture you have in your head, and it’s not wrong:

   Client ──> API ──> Notification Service ──> Queue ──> Workers ──> Push/Email/SMS
                              │
                              v
                        Delivery DB

You can talk about every box. You know why the queue is there. You know fan-out-on-write versus fan-out-on-read. You know the celebrity problem. You are, technically, correct.

And you will still get rejected, with feedback that says “strong technically, concerns about senior-level scoping,” and you will be angry, because you answered everything correctly. I know you will be angry because I was.

Why the correct answer fails

Here is the thing it took me a stack of rejections to understand.

The interviewer is not testing whether you know the boxes. Everyone in a senior final round knows the boxes. The boxes stopped being the test years ago. An AI can draw the boxes.

“Design a notification system” is a deliberately under-specified prompt, and the under-specification is the exam. The sentence is vague on purpose. Notification system could mean five completely different systems:

"notification system" actually means ONE OF:
  ┌─────────────────────────────────────────────┐
  │ 1. Transactional alerts (payment, security)  │  latency-critical, must-deliver
  │ 2. Social/activity feed (X liked your post)  │  high-volume, loss-tolerant
  │ 3. Marketing/campaign sends                  │  batch, throughput-bound
  │ 4. Digest (daily/weekly rollup)              │  scheduled, aggregation-heavy
  │ 5. Regulatory/compliance notices             │  audited, exactly-once-ish
  └─────────────────────────────────────────────┘
   These have OPPOSITE constraints. One design cannot serve all five well.

When you start drawing the generic pipeline, you have silently picked one — or worse, mushed all five into a vague middle — and you’ve done it in your own head, without telling the interviewer. That is the exact failure. Not a technical failure. A judgment failure. You resolved a critical ambiguity privately and started building, and on a real team that is the engineer who builds the elegant wrong thing for two sprints because they never said their assumption out loud where someone could correct it.

The interviewer is screening for that engineer. They will never tell you that’s the screen. Watching whether you resolve the ambiguity out loud, with them, before you build — that is the entire first half of the score.

Everything above this line is what I’d put in a free post: enough to understand why your correct answer keeps losing. Below is the part I needed when I was failing these for real — the exact forty-minute sequence, the sentences, the diagrams, the recovery moves when they push back. This is the teardown.


🔒 The 40-Minute Script That Gets “Strong Hire”

User's avatar

Continue reading this post for free, courtesy of Devrim’s Engineering Notes.

Or purchase a paid subscription.
© 2026 Devrim Ozcay · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture