Question bank / Software Engineering, System Design, Advanced
How to answer: Design a notification service for email, SMS, and push at large scale.
Whether you design for retries, duplicates and user preferences, not just the happy path.
What the interviewer is testing.
Queues, preferences, retries, idempotency. Whether you design for retries, duplicates and user preferences, not just the happy path.
An outline for this question.
- Clarify scale, delivery guarantees and whether messages can be delayed.
- Accept requests into a queue, with a worker pool per channel (email, SMS, push) so a slow provider does not block the others.
- Check user preferences and rate limits before sending.
- Make every send idempotent with a message ID so a retry never delivers twice, and send failures to a dead letter queue.
The mistake to avoid.
Calling the providers directly from the request. One slow provider then slows every caller.
The general method: requirements, design, trade-offs.
The same shape works for most system design questions, whatever the topic.
- Pin down what the system must do, how many users, and what matters most (speed, cost, correctness).
- Sketch the main parts and how data moves between them, starting simple.
- Pick one or two parts to go deep on, and say what you gave up for each choice.
- Finish with how it fails and how you would know: monitoring, retries, limits.
Practice it, out loud.
Reading an outline is not the same as saying it. Answer this question in a mock interview, in your own words, then compare it with the outline above.
More to practice.
Tell me about yourself and why this role is the right next step.
Software Engineering, Behavioral
Given a string, return the first non-repeating character and explain the complexity.
Software Engineering, Coding
Design an LRU cache with O(1) get and put operations.
Software Engineering, Coding
How do you investigate a production latency regression when no deployment is obvious?
Software Engineering, Role Knowledge
This is a Replysis practice question. It is not a leaked or official question from any company, and the outline is a guide to structure, not a script. Use your own experience and facts.