← Uber Interview Insights

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

SeniorPrefer not to say
Jul 2026

Summary

System design round at Uber for a software engineer role. The prompt was a view-tracking system for an e-commerce product page, which sounds straightforward but ends up touching a lot of surface area fast.

Questions Asked (1)

Q1

Design a view-tracking system for a large e-commerce product detail page, covering client and server-side event collection, APIs, view counting, high write volume, storage, bot filtering, and privacy.

System DesignTechnical Trade-offsData Modeling
Author's notes

I started with the event schema and API shape, which felt safe, but I spent way too long there and had to rush through the hard parts.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements: scale (e.g., 1B views/day), latency, accuracy, and privacy constraints. Then design a high-level architecture covering client-side event collection, ingestion pipeline, counting service, storage, and bot filtering, diving into trade-offs for high write volume and data modeling.

Pro tip: Emphasize idempotency and exactly-once semantics in event processing to avoid double-counting, and discuss how to handle late-arriving events with a lambda architecture or stream processing with watermarks.

1. Clarify Requirements and Scale

Ask questions to understand expected traffic (e.g., 1B views/day), latency requirements, accuracy needs, and privacy regulations. Define what constitutes a 'view' (e.g., 3 seconds on page).

2. Design Client-Side Collection

Propose a lightweight JavaScript tracker that batches events and sends them asynchronously via beacon API or XHR to avoid blocking page load. Include mechanisms to handle offline scenarios and retries.

3. Design Ingestion and Processing Pipeline

Outline a scalable ingestion layer (e.g., API gateway, Kafka) to handle high write volume. Describe stream processing (e.g., Flink, Spark Streaming) for real-time aggregation, bot filtering, and deduplication.

4. Design Storage and Counting Service

Choose storage for raw events (e.g., S3, HDFS) and aggregated counts (e.g., Cassandra, Redis). Explain how to serve view counts with low latency and handle updates.

5. Address Bot Filtering and Privacy

Discuss techniques for bot detection (e.g., user-agent analysis, behavioral patterns) and privacy measures (e.g., anonymization, consent management, data retention policies).

Key Points to Mention

  • Idempotency and deduplication using unique event IDs to ensure accurate counting.
  • Scalable ingestion using a message queue like Kafka to handle high write throughput.
  • Stream processing with windowing and watermarks to handle late-arriving events.
  • Storage trade-offs: raw event storage for replay vs. aggregated counters for fast reads.
  • Bot filtering strategies: rule-based, machine learning, and CAPTCHA challenges.
  • Privacy compliance: GDPR/CCPA, anonymization, and user consent for tracking.

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