Senior Engineer Design Questions I Actually Use

Four open-ended design prompts I ask in senior engineer loops. There is no clean LeetCode answer; I am listening for how the candidate frames the tradeoff, when they push back, and whether they can ship a v1 before optimizing.

Question Bundle
JavaScript
senior
system-design
interview-prep
trade-offs
meerapowell

By @meerapowell

December 26, 2025

·

Updated May 18, 2026

487 views

5

4.2 (10)

We need to send a transactional email when a user signs up. The email service is third-party and occasionally returns 500s. Design the call site so signups are not blocked and emails are eventually sent. Be specific about where retries live and how you avoid double-sending.

How I'd ship it

How I'd ship it: signup({ email, name }) inserts the user row AND an outbox row { kind: 'email.welcome' } inside a single DB transaction, then returns the user. The signup never blocks on the email service. A separate dispatcher worker claims outbox rows and calls emailService.send({ idempotencyKey: 'welcome:user-42', ... }). Retries by the dispatcher hit the idempotency key on the email service side and no-op, so no double-sending.

3 more questions and all solutions are locked.

Purchase this item to access all questions, code snippets, and solutions.