Skip to content
Learn Netverks
Company prep Improbable
Senior (5–8 years) System design Medium

Design a notification service for email, SMS, and push

Reported in Improbable European engineering loops. System design problem testing reliability, fan-out, and channel abstraction.

Role
Backend Engineer
Location
Berlin, Germany

Context for Improbable candidates:

Build a service that sends transactional and marketing notifications across multiple channels.

Try answering aloud first

Cover trade-offs, structure, and a concrete example before revealing the baseline response.

Spoiler-free prep mode

How to frame this at Improbable: Connect your answer to measurable impact, clarity of thought, and trade-offs the team cares about. Below is a strong baseline response you can adapt with your own project examples.

Start with a unified notification API that accepts user id, template id, channel preferences, and priority. Store request metadata, then publish to a queue so senders are decoupled from request latency.

Create channel-specific workers for email, SMS, and push with retry policies, rate limiting, and provider fallback. Track delivery states (queued, sent, failed, bounced) in an events table for observability and audit.

For scale, partition by tenant or user hash and enforce idempotency keys to avoid duplicate sends during retries. Mention user preference service integration for do-not-disturb and opt-out compliance.

Comments (0)

Share how this question came up in your loop, or add tips for others preparing.

Log in to comment on this question.