← Uber Interview Insights

Uber·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Jun 2026

Summary

Uber system design round for a software engineer role. Just one question but it took the full hour and I left feeling like I'd only scratched the surface.

Questions Asked (1)

Q1

Design a messaging system like WhatsApp.

System DesignTechnical Trade-offsData Modeling
Author's notes

I started with the usual stuff, users, messages, storage, but the scope kept expanding.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then outline a high-level architecture covering message flow, storage, and delivery guarantees. Dive into key components like real-time transport, message persistence, and offline handling, making explicit trade-offs at each step.

Pro tip: Proactively discuss trade-offs between consistency, availability, and latency (e.g., using eventual consistency for message delivery) and tie them to Uber's scale and reliability needs.

1. Clarify Requirements and Scale

Ask about functional and non-functional requirements: one-on-one vs group chat, message types, delivery guarantees, expected DAU, message volume, and latency targets.

2. High-Level Architecture

Sketch the main components: clients, load balancers, API gateways, chat servers, message queues, storage (databases, caches), and push notification services.

3. Message Flow and Delivery

Explain how a message travels from sender to receiver: client sends to server, server persists and routes, receiver gets via WebSocket or push notification. Cover offline storage and delivery receipts.

4. Data Modeling and Storage

Describe how to store messages, user data, and metadata. Discuss choices like NoSQL (Cassandra) for messages, SQL for user profiles, and caching for recent messages.

5. Scalability and Trade-offs

Address scaling: sharding, replication, partitioning by user or chat ID. Discuss trade-offs: consistency vs availability, latency vs durability, and cost implications.

Key Points to Mention

  • Real-time communication using WebSockets or long polling
  • Message persistence and storage with appropriate databases (e.g., Cassandra, HBase)
  • Delivery guarantees: at-least-once vs exactly-once, and idempotency
  • Offline message handling and push notifications (APNs, FCM)
  • End-to-end encryption and security considerations
  • Scalability patterns: sharding, replication, and load balancing

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.