← Uber Interview Insights

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

SeniorPrefer not to say
Apr 2026

Summary

System design round at Uber for a software engineering role. Just one question but it had a lot of surface area and I felt like I only scratched the top layer of it.

Questions Asked (1)

Q1

Design a cart system for Uber (e.g. for Uber Eats or a similar ordering product).

System DesignData ModelingTechnical Trade-offs
Author's notes

I went straight for the data model and probably should have spent more time clarifying scope first.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scope and requirements of the cart system, such as whether it's for a single restaurant or multi-restaurant, user authentication, and real-time updates. Then, propose a high-level design covering data models, APIs, and storage, and dive into key components like consistency, scalability, and trade-offs. Finally, discuss how to handle edge cases like item availability changes and concurrent modifications.

Pro tip: Emphasize idempotency and conflict resolution strategies, as carts often involve concurrent updates from multiple devices. Also, consider how to handle price changes and item availability in real-time, which is crucial for food delivery.

1. Clarify Requirements

Ask questions to understand functional and non-functional requirements, such as expected scale, consistency needs, and integration with other services like menus and payments.

2. High-Level Design

Outline the main components: client, API gateway, cart service, database, and cache. Sketch how data flows between them.

3. Data Modeling

Define the cart data model, including items, quantities, modifiers, and pricing. Decide on storage (e.g., SQL vs NoSQL) based on access patterns and consistency requirements.

4. Deep Dive into Key Challenges

Discuss scalability, consistency (e.g., using optimistic locking or versioning), and real-time updates (e.g., WebSockets or polling). Address how to handle item availability and price changes.

5. Trade-offs and Edge Cases

Summarize trade-offs made (e.g., consistency vs availability) and cover edge cases like concurrent edits, cart expiration, and multi-device sync.

Key Points to Mention

  • Data model: cart, cart items, modifiers, and pricing details
  • Storage choice: SQL for strong consistency vs NoSQL for scalability
  • Concurrency control: optimistic locking, versioning, or CRDTs
  • Real-time updates: WebSockets, SSE, or polling for cart sync
  • Integration with menu service for item availability and price changes
  • Idempotent operations to handle duplicate requests and retries

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