Design a Chat for Reddit
Last updated: September 22, 2025
Quick Overview
Design a multi-tenant chat system that handles millions of requests. Discuss trade-offs in consistency, availability, and performance.
Reddit
System Design
Software Engineer
Software Engineer
Technical Screen
System Design
Hard
36
6
1,852 solved
Design a multi-tenant chat system that handles millions of requests. Discuss trade-offs in consistency, availability, and performance.
This ML system design question from Reddit's Technical Screen tests your ability to think about ML systems at scale. The interviewer expects discussion of data quality, feature stores, model serving infrastructure, and A/B testing strategy.
What the Interviewer Expects
- Design the full ML lifecycle from data collection to model monitoring
- Address cold start, exploration/exploitation, and model freshness
- Discuss multi-objective optimization and ranking systems
- Plan for model debugging, fairness, and bias mitigation
- Design the feature store and training pipeline for scale
- Address model versioning, canary deployments, and rollback strategies
- Discuss the data flywheel and long-term system evolution
Key Topics to Cover
Feature engineering and feature stores
ML objective formulation and metric selection
Training pipeline and infrastructure
Feedback loops and model retraining
How to Approach This
- Start by clarifying functional and non-functional requirements with the interviewer.
- Estimate the scale: QPS, storage, bandwidth. This drives your design decisions.
- Draw a high-level architecture first, then deep dive into 1-2 critical components.
- Discuss trade-offs explicitly (e.g., consistency vs availability, SQL vs NoSQL).
- Address failure scenarios, monitoring, and how the system handles 10x traffic spikes.
Possible Follow-up Questions
- How would you handle a 10x increase in prediction requests?
- How would you debug a model that works well offline but poorly online?
- How would you run A/B tests on different model versions?
Practice a Similar Problem on Codemia
Solve a related problem with our interactive workspace, get AI feedback, and view detailed solutions.
Solve on CodemiaSample Answer
Requirements
Functional Requirements
- Real-time Messaging: Users can send and receive messages instantly within public and private chat rooms.
- Multi-Tenant Support: Each subreddit can have its own...
Capacity Estimation
Assuming Reddit has 50 million active users:
- Concurrent Users: If 10% are active at peak times, we have 5 million concurrent users.
- Messages per User: If each user sends about 5 messages p...
Submit Your Answer
Markdown supported