← Uber Interview Insights

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

Intermediate
Jul 2026

Summary

Uber SWE system design round, one question the whole time. Pretty focused session around logistics and real-time data, which made sense given the domain.

Questions Asked (1)

Q1

Design a truck tracking system that supports filtering by truck number and provides an interface for updating driver status.

System DesignData ModelingAPI & Integrations
Author's notes

I started with the data model and worked outward, which felt right but I probably spent too long on the database schema before touching the API layer.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying functional and non-functional requirements, then design the data model and API endpoints for truck tracking, filtering, and driver status updates. Discuss scalability, consistency, and real-time considerations, and finally walk through the end-to-end flow of a status update and a filtered query.

Pro tip: Emphasize idempotency and conflict resolution for driver status updates, as drivers may update status from multiple devices or with intermittent connectivity. Also, consider using a read-optimized store for filtering by truck number and a write-optimized store for status updates to balance load.

1. Clarify Requirements

Ask about scale (number of trucks, updates per second), latency requirements, consistency needs, and whether filtering is by exact truck number or partial match. Also clarify who updates driver status and how often.

2. Design Data Model

Define entities: Truck (truck_number, driver_id, current_location, status), Driver (driver_id, name, status, last_updated). Choose a database (e.g., relational for strong consistency or NoSQL for scale) and indexing strategy for truck_number.

3. Define APIs

Design RESTful endpoints: GET /trucks?truck_number={number} for filtering, and PUT /drivers/{driver_id}/status for updates. Include request/response schemas, status codes, and idempotency keys.

4. Address Scalability & Real-time

Discuss partitioning by truck_number or region, caching frequent queries, and using a message queue for asynchronous status updates. Consider WebSockets or SSE for real-time tracking if needed.

5. Handle Edge Cases & Consistency

Cover offline updates, conflict resolution (e.g., last-write-wins with timestamps), and data consistency across replicas. Mention monitoring and alerting for system health.

Key Points to Mention

  • Indexing on truck_number for efficient filtering
  • Idempotent API design for driver status updates
  • Use of caching (e.g., Redis) for read-heavy filtering
  • Partitioning/sharding strategy for horizontal scalability
  • Real-time update mechanisms (WebSockets, MQTT) for live tracking
  • Consistency models (strong vs eventual) and conflict resolution

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