Design a follower push-notification system
Company: xAI
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Take-home Project
Design a notification system for a social product:
- When a user publishes a new post, the system should send push notifications to that user’s followers.
- Notifications are primarily mobile push (e.g., APNs/FCM), but you may mention extensibility to other channels.
Cover:
- Core requirements and non-functional goals (latency, reliability, scale).
- High-level architecture and main components.
- How to handle large fan-out (users with many followers).
- Data model / storage choices for follower graph and notification records.
- Rate limiting, user preferences (opt-out, quiet hours), deduplication, retries.
- Observability and failure handling.
Quick Answer: This question evaluates understanding of designing scalable, reliable push-notification services and related competencies in distributed systems, high-throughput messaging and fan-out strategies, data modeling for follower graphs, rate limiting, user preferences, deduplication, retries, and observability.