Uber Data Engineer Interview Guide

Uber's loop is unusually infrastructure- and real-time-focused: streaming is the default framing, not the exception. System design centers on real-time architectures such as surge pricing computation, ETA prediction, and marketplace matching, and questions probe whether you can reason about hybrid on-prem plus cloud infrastructure you manage directly rather than only managed services. Geospatial reasoning (H3, spatial joins, per-city partitioning) runs through both design and modeling rounds.

Last updated: Proudly published by: Jeff Wahl

The Uber interview timeline

First contact to offer, stage by stage, with how long each round runs and roughly when it lands.

  1. 1
    wk 030 min
    Recruiter Screen
  2. 2
    wk 1-260 min
    Technical Phone Screen
  3. 3
    wk 34 to 5 hours
    Onsite Loop
Typical Uber loop, first contact to offer. Week estimates are approximate and vary by team and scheduling.

Uber data engineer interview process

The loop stage by stage, from recruiter call to offer.

  1. 01

    Recruiter Screen

    Initial call covering your experience and interest in Uber. The recruiter assesses your background with real-time data systems, large-scale infrastructure, and streaming architectures. Uber operates a massive real-time platform processing millions of rides and deliveries daily, so they look for candidates comfortable with event-driven systems and low-latency requirements.

    • Emphasize real-time experience: streaming pipelines, Kafka, Flink, or similar tools
    • Uber has open-sourced many data tools (Hudi, AresDB, Cadence); mentioning familiarity shows research
    • Ask which team: Marketplace, Maps, Safety, or Data Platform each have different focuses
  2. 02

    Technical Phone Screen

    1 to 2 coding problems, typically SQL or Python. Uber phone screens test data manipulation with ride and delivery event data. Expect questions about time-series analysis, geospatial logic, and event processing. The interviewer evaluates both correctness and your ability to reason about scale.

    • Be comfortable with geospatial concepts: latitude/longitude distance calculations, geohashing
    • Practice time-series SQL: sessionization, gap detection, and event ordering
    • Think aloud about how your solution scales to millions of events per minute
  3. 03

    Onsite Loop

    4 to 5 rounds covering system design, SQL deep dive, coding, data modeling, and behavioral. System design at Uber focuses on real-time architectures: surge pricing computation, ETA prediction pipelines, and marketplace matching. The data modeling round often involves designing schemas for trip data that support both real-time operations and historical analytics.

    • Know the CAP theorem and how it applies to Uber's real-time requirements
    • Uber's system design questions involve geographic partitioning and time-sensitive data
    • Behavioral questions focus on working under pressure and adapting to rapidly changing requirements

What the Uber loop tests: domains and difficulty

Our prediction of the question mix by domain and difficulty for this company's data engineer loop, from live listings and interview reports.

By domain
SQL
11%
1
Python
33%
3
Data modeling
33%
3
Pipeline design
22%
2
By difficulty
Easy
22%
2
Medium
56%
5
Hard
22%
2

The domain and difficulty mix we predict for a Uber data engineer loop, across 9 problems. It updates as more Uber data lands.

Updated 9 predicted Uber problems

10 real Uber interview questions

Reported by candidates from real loops, tagged by domain, round, level, and year. Expand for what the round is scoring.

SQLL5 · 2025
Write a SQL query to randomly select a driver using weighted probabilities: given a table with a weighting column, each driver's selection probability should be proportional to their weight.
Onsite · sql
+

Schema: drivers(driver_id, driver_name, weight). The weighted random selection requires computing a cumulative weight sum using a window function, then comparing a random number (drawn uniformly between 0 and total_weight) to the cumulative boundaries. Approach: SUM(weight) OVER (ORDER BY driver_id ROWS UNBOUNDED PRECEDING) to get cumulative sums, then filter for the row where the random value falls within the bucket. Tests: window functions, RANDOM(), CTE usage. Used to improve Uber rider-driver matching systems.

SQLL4 · 2023
Uber DE phone screen: given 5 related tables, write SQL to aggregate across them; questions are wordy but not tricky; window functions needed for some aggregations
Phone screen · screen sql
+
PythonL5 · 2025
Given a list of meeting time intervals, find the minimum number of rooms required so no two overlapping meetings share a room
Onsite · python
+

Write a function min_rooms(meetings) where each meeting is a tuple (start, end) with start < end. Intervals are half-open: a meeting (0, 30) occupies times [0, 30). A meeting ending at time 10 does NOT conflict with one starting at time 10. Return the minimum number of rooms needed so no two overlapping meetings share a room. Example: meetings = [(0, 30), (5, 10), (15, 20)] Output: 2 (meetings (0,30) and (5,10) overlap) meetings = [(7, 10), (2, 4)] Output: 1 meetings = [(1, 5), (2, 6), (3, 7)] Output: 3 (all three overlap at time 3) meetings = [(0, 5), (5, 10)] Output: 1 (no overlap, second…

PythonL5 · 2025
Given a list of named events with start and end times, find all pairs of events that overlap
Onsite · python
+

Write a function find_overlaps(events) where each event is a tuple (name, start, end). Return a list of tuples containing the names of all pairs of events that overlap in time. Two events overlap if one starts strictly before the other ends and vice versa. Events that share only a boundary point (one ends exactly when another starts) do NOT overlap. Example: events = [('A', 1, 5), ('B', 3, 7), ('C', 6, 9), ('D', 8, 10)] Output: [('A', 'B'), ('B', 'C'), ('C', 'D')] events = [('X', 1, 2), ('Y', 3, 4)] Output: [] events = [('P', 1, 10), ('Q', 2, 3), ('R', 4, 5)] Output: [('P', 'Q'), ('P', 'R')]…

Data modelingL6 · 2025
Design a relational database schema to record rides between riders and drivers, including table structures and how they join together
Onsite · data modeling
+

Design core tables (riders, drivers, vehicles, trips, payments) with well-defined foreign keys. Explain one-to-many relationships (driver to trips, rider to trips), how vehicle assignment works, and how the schema supports both real-time operational queries and historical analytics. Discuss indexing strategy for high-throughput queries.

Data modelingL6 · 2025
Design a relational database schema recording rides between riders and drivers, including entities for riders, drivers, vehicles, and trips with appropriate foreign key relationships.
Onsite · data modeling
+

Data modeling design question from Uber Data Engineer onsite. Candidate must define entities: Riders (rider_id, name, email, signup_date), Drivers (driver_id, name, license_number, rating), Vehicles (vehicle_id, driver_id FK, make, model, year, license_plate), Trips (trip_id, rider_id FK, driver_id FK, vehicle_id FK, pickup_location, dropoff_location, start_time, end_time, fare, status). Key relationships: driver 1:M vehicles, rider 1:M trips, driver 1:M trips.

System designL7 · 2025
Design a cost-efficient analytics architecture to ingest, store, and query 600 million daily Kafka clickstream events with a two-year retention period
Onsite · pipeline architecture
+

Architect an end-to-end pipeline: Kafka consumers for ingestion, partitioned columnar storage (Parquet/ORC on S3/GCS), tiered storage strategy (hot/warm/cold) for cost efficiency, query engine selection (Presto/Trino/Athena) for ad-hoc analytics. Must handle 600M events/day with 2-year retention while keeping storage costs manageable.

System designL5 · 2025
Design an end-to-end data pipeline that ingests daily raw files from multiple sources and prepares clean, reliable datasets for predicting city-wide bicycle rental demand.
Onsite · pipeline architecture
+

The problem tests end-to-end pipeline design including: source ingestion (daily raw CSV/JSON files from multiple city providers), data quality checks, normalization, feature engineering for ML model (weather, time of day, location features), output format optimized for a prediction model. Expected to discuss orchestration (Airflow/Dagster), storage layers (raw, cleaned, feature), monitoring, and backfill strategy. Interviewer follows up on handling missing source files and schema drift across providers.

System designL5 · 2024
Design the backend of a near real-time dashboard showing trending dishes in a city
Onsite · pipeline architecture
+

Uber Data Engineer SDE2 final round, Jan 2024. System design question: design backend for a near real-time dashboard showing which dishes are trending in a given city. Expected to discuss data ingestion pipeline, aggregation strategy, storage layer, and serving layer for near-real-time updates. Candidate felt they did well. Part of a final loop including coding rounds (merge intervals + binary search, course schedule graph problems) and behavioral. Candidate rejected overall.

Behavioral / mixedunknown · 2025
Uber Data Engineer - SDE 2 role
Phone screen · screen sql
+

I took the interview in Jan 2024; so i know this is late and I apologize. Round 1 was just a screening round; asked about compensation, location Round 2) Techinical Screen -> very simiklar to Final Round) Coding Round #1: It was a combination of and binary search. I did not do well in this; partly because I just did not understand the interviewer's accent. The interviewer also gave no hints, but I guess thats just the market and I need to improve more. Behavioral: Like standard amazon LP questions.

How candidates rate the Uber loop

How hard candidates rated the loop and how they felt, summarized across the reports below.

How hard candidates rated it
Easy
0%
Medium
0%
Hard
100%

5 rated reports

Recent Uber interview reports

Candidate accounts of the loop, each with its date, level, difficulty, and outcome. Scroll the feed.

5 candidate interview reports

real candidate submissions

No offer· Mid-levelJan 2025

I took the interview in Jan 2024; so i know this is late and I apologize. Round 1 was just a screening round; asked about compensation, location Round 2) Techinical Screen -> very simiklar to Final Round) Coding Round #1: It was a combination of and binary search.

I did not do well in this; partly because I just did not understand the interviewer's accent. The interviewer also gave no hints, but I guess thats just the market and I need to improve more. Behavioral: Like standard amazon LP questions. Did pretty well in this round System Design: Data Modeling, Design backend of a near real time dashboard for users to see trending dishes in a city.

Read full report

I believe I did well in this. FInal Coding ROund: 2 SQL questions I got rejected but I hope this would help people. Onto the next!!

No offer· Mid-levelMay 2024

Company: Uber Level: L4 Position: SDE 2 [ Data Engineer ] **Preliminary Round:** * * SQL questions on Manager & Employee tables * Basic questions on Spark, Data skewness, Data partitioning etc.., **Round 1:** * SQL questions on fact_trip table ( trip details, driver_id,rider_id,start_time,end_time,city_id ), driver_signup ( driver_id,signup_date etc.., ) 1.

Find driver_ids who have not taken trip in first 7 days of their signup ( Lot of optimizations were discussed based on data volume ) 2. Find top3 cities each month baased on number of trips as criteria 3. Find total_time spent of each driver each day ( start_time and end_time may span across 2 days → can extend to multiple days ) * Given a sorted array of n elements, possibly with duplicates, find the number of occurrences of the target element. ( ) * Several questions on spark optimizations **Round 2 ( LLD ):** * Build a system to generate Top 10 movies by category by time frame in streaming platforms like Netflix.

Read full report

Input Table **users_viewership**: userid,movieid,date,starttime,endtime Top 10 criteria: Number of views & Atleast 80 percent of run time should be watched for each view count. 1.

· PrincipalJul 2023

``` I got 1 coding question: Task: Check if string follows order of characters defined by a pattern Example1 Inputstring = "engineers rock" pattern = "er"; Output: true Example2 Inputstring = "engineers rock" pattern = "gsr"; Output: false ```

· Mid-levelMay 2021

This was for the data engineer 2 position at Uber,Bangalore. It was a 90 min Zoom call, with a single machine coding question: Design an In-Memory Pull Based Queue Library: Use Cases to be supported: 1.Multiple queues maintained by the Library 2.Each queue must support multiple publishers and subscribers.

3.Each queue has a maximum retention period beyond which a message in the queue should not reside in memory. 4.Each message inside the queue can have an optional TTL value. Any message with expired TTL should not be consumed by any subscriber and should not reside in the memory as well.

Read full report

5.Each consumer should read all the messages. First 30 minutes were devoted to discussing the implementation approach, next 60 minutes to coding the solution. Looking for ideas for a good solution.

· SeniorFeb 2021

YOE: 13+ Working as Big data architect/Engineer in a startup Honestly I was preparing for DE but I didn't got much help in LC for DE. The SQL questions were below par even the hard ones. I just learnt from google/youtbe and my past exp helped. Can't share exact questions here.

Phone Screen: A recruiter reached me out in linkedin. Asked some basic questions and past experiences and direct onsite. Onsite: 3 Tech rounds, 1 hiring Manager and 1 BR. Onsite 1: Design a CCD type system with facts, dims. Two fairly difficult SQL questions invoving multiple tables and nested relations.

Read full report

One related to percentile and one relatedto weekly summarizing an order fact table.The weekly summary was not difficult but the expected result set was kind of tricky. I did the 1st one and the 2nd one I did partial. Feedback: Design is good but SQL not par. Soft no from recruiter however no red flgs.

Onsite 2: One Sql and One Python. SQL was again Tricky and there was a followup condition needed to do after u solved. Python was very easy: Move zeroes to right kindof.I did LC 200+ qiuestions on DS but this was very easy The stress was on SQL and ETL and Modelling.

Try a Uber-style SQL round

Find every user active on 3 or more CONSECUTIVE days. This gaps-and-islands shape shows up in nearly every DE SQL round. Edit the query and run it against the seed data.

/* Users active on 3+ consecutive days. */
/* Hint: date minus a per-user ROW_NUMBER is constant within a streak. */
WITH streaks AS (
SELECT
user_id,
activity_date,
activity_date - CAST(
(ROW_NUMBER() OVER (
PARTITION BY user_id
ORDER BY activity_date
))
AS INT
) AS grp
FROM user_sessions
)
SELECT
user_id
FROM streaks
GROUP BY user_id, grp
HAVING COUNT(*) >= 3

Practice the Uber loop

The problems our model expects in this company's interview, grouped by round. Work the shapes that come up, not the ones that read well on a list.

Common mistakes in Uber DE interviews

The patterns that sink otherwise strong candidates here.

Defaulting to batch when the question requires real-time

Candidates propose nightly Spark jobs for problems that demand sub-second latency. At Uber, surge pricing, driver matching, and ETA updates all require streaming. If the interviewer describes a real-time scenario, your first instinct should be Kafka plus Flink, not Airflow plus Spark.

Ignoring geographic partitioning

Uber data is inherently spatial. Candidates who partition only by date miss the point. Most Uber tables are partitioned by city or H3 hex zone first, then by time. Forgetting this leads to full table scans and shows you have not thought about how Uber's data is actually structured.

Treating all events as if they arrive in order

Mobile clients send events over unreliable networks. GPS pings arrive late. Trip end events sometimes arrive before trip start events. Candidates who assume ordered data get caught when the interviewer asks about late arrivals. Always discuss watermarks, event-time processing, and how to handle out-of-order data.

Designing systems without considering city-level isolation

Uber operates in hundreds of cities with different regulations, currencies, and demand patterns. A system designed as a single global pipeline will not work. Interviewers expect you to discuss per-city or per-region isolation, failover, and how to prevent a problem in one city from affecting another.

Skipping the cost and operational complexity discussion

Uber runs a hybrid on-prem and cloud infrastructure. Candidates who propose expensive fully-managed cloud services without discussing cost tradeoffs miss the mark. Mention compute costs, storage tiering, and how to handle peak vs off-peak workloads efficiently.

Uber-specific preparation tips

Tactical advice for the dimensions this company weighs.

Real-time is the default, not the exception

Most Uber DE questions are framed around real-time or near-real-time requirements. Batch processing is secondary. Know Kafka, Flink, and streaming concepts: watermarks, windowing, exactly-once delivery, and backpressure.

Geospatial data is core to Uber's business

Uber partitions data geographically using H3 hexagonal indexing. Understand geohashing, spatial joins, and how to partition and query location-based data efficiently. This comes up in both system design and data modeling rounds.

Know Uber's open-source contributions

Uber created Apache Hudi (incremental data processing), AresDB (real-time analytics), and Cadence (workflow orchestration). Mentioning these tools and understanding their purpose shows deep familiarity with Uber's data ecosystem.

Scale is measured in events per second

Uber processes millions of events per second across rides, deliveries, and driver locations. When discussing system design, think in terms of throughput (events/sec), latency (p99 in milliseconds), and geographic distribution across hundreds of cities.

SQL is your highest-ROI prep area

SQL accounts for the majority of the Uber DE interview, so spend the bulk of your prep time on it. Focus on ride-sharing schemas (trips, drivers, riders, cities, surge multipliers, ratings) and practice time-based aggregations, window functions (LEAD, LAG, ROW_NUMBER, running sums), self-joins, and optimization discussions. Do a handful of timed SQL problems per day for 2 to 3 weeks.

Prepare behavioral stories about ownership and speed

Uber values engineers who ship fast and own their systems. Prepare stories about shipping under a tight deadline, a pipeline failure you owned end-to-end, a disagreement with a stakeholder, and a project where you simplified a complex system. Keep each story under 3 minutes using STAR.

What Uber is really evaluating

The signals behind the questions. Shape every answer around these.

Hybrid infrastructure

Unlike companies that run entirely on AWS or GCP, Uber operates a hybrid of on-prem data centers and cloud resources. This means DEs must understand bare-metal performance tuning alongside cloud-native patterns. Interview questions often probe whether you can reason about infrastructure you manage directly, not just managed services.

Open-source DNA

Uber has built and open-sourced multiple foundational data tools: Apache Hudi for incremental data lake management, Cadence for workflow orchestration, H3 for geospatial indexing, and AresDB for real-time analytics. Interviewers expect candidates to know these exist and understand the problems they solve.

Multi-sided marketplace complexity

Every Uber transaction involves at least 2 parties (rider and driver, eater and courier) plus the platform. This creates data modeling challenges that single-sided businesses do not have. Supply/demand balancing, dynamic pricing, and matching algorithms all generate complex event streams that DEs must process and serve.

Real-time financial impact

When a data pipeline breaks at Uber, drivers earn less, riders wait longer, and the company loses revenue every minute. This urgency shapes interview expectations. Uber wants DEs who think about monitoring, alerting, SLAs, and graceful degradation as first-class requirements, not afterthoughts.

Uber compensation and culture

The numbers, tech stack, and team structure live on the company overview.

Uber DE interview FAQ

How many rounds are in an Uber DE interview?+
Typically 6 to 7: recruiter screen, technical phone screen, and 4 to 5 onsite rounds covering SQL, system design, coding, data modeling, and behavioral. Some teams add a domain-specific round for marketplace or maps.
Does Uber test Kafka and Flink in DE interviews?+
Not always directly, but streaming concepts are central. You should understand event-time vs processing-time, windowing strategies, watermarks, and exactly-once semantics. Uber uses Kafka and Flink heavily, so referencing them in system design is appropriate and expected.
What programming languages does Uber DE use?+
Python, Java, Scala, and Go are common. For interviews, Python and SQL are accepted. If you have Java/Scala experience with Spark or Flink, it can be an advantage for streaming-focused roles.
How does Uber's interview compare to other ride-sharing companies?+
Uber's interview is more infrastructure-focused than Lyft's, with heavier emphasis on real-time systems, geospatial data, and large-scale distributed processing. The behavioral round focuses on operating under pressure in a fast-moving environment.
What is the typical offer timeline after the onsite?+
Most candidates hear back within 5 to 7 business days after the onsite. If you are at a senior level or above, the calibration process may add a few extra days. Recruiters are usually responsive about status updates if you ask.
Does Uber require system design for junior and mid-level candidates?+
Junior candidates typically get a lighter system design round focused on data modeling and basic architecture. Mid-level candidates face a full system design round. Senior and staff candidates get the most rigorous design questions with expectations for cross-team and org-level thinking.
How does Uber's equity work?+
Uber grants RSUs (Restricted Stock Units) that vest over 4 years. The standard schedule is 25% per year. RSU value fluctuates with Uber's stock price, which means your actual total compensation depends on market conditions at each vesting date.
Can I negotiate the Uber offer?+
Yes. Uber recruiters expect negotiation, especially at senior levels and above. Competing offers from other top-tier companies give the most leverage. Base salary has less room to move than equity and sign-on bonus. Always negotiate equity if you believe in the stock trajectory.
How SQL-heavy is the Uber DE interview?+
Very. SQL is Uber's primary filter for data engineers. You will face SQL in the phone screen (2 to 3 problems) and a dedicated onsite SQL deep dive (3 problems, 60 minutes), and the system design round may also involve SQL for the serving layer. In total, you will write more SQL in an Uber DE loop than at almost any other company. The problems are set in Uber's domain (trips, drivers, riders, surge, geospatial data) and emphasize window functions, time-based aggregations, and query optimization.
What level does Uber hire data engineers at?+
Uber hires DEs from IC3 (entry level, 1 to 3 years) through IC6 (staff, 10+ years). Most external hires come in at IC4 (mid-level, 3 to 6 years) or IC5 (senior, 6 to 10 years). IC5+ candidates always have a system design round, while IC3 candidates may have an extra coding round instead. The level determines the scope of projects you will own.

Uber data engineer roles by level

Level-specific pages: the comp, the bar, and what the loop tests at each seniority.

Compare Uber with other data engineering employers

How the role, pay, and loop stack up against peer companies.

02 / Why practice

Prepare at Uber interview difficulty

  1. 01

    Reading a solution is not the same as writing one

    Every engineer who has frozen on a query they had read a dozen times knows the gap. The only preparation that closes it is producing the answer yourself, under time, before the interview does it for you

  2. 02

    76% of hiring managers reject on the coding task, not the resume

    From HackerRank's 2024 Developer Skills Report. Candidates who look strong on paper still fail the live screen if they haven't done timed, executable practice

  3. 03

    5 problem shapes cover 80% of data engineer loops

    Dedup, sessionization, top-N-per-group, slowly-changing dimensions, partition tricks. Writing the shapes by hand turns the unfamiliar into pattern recognition

Related Guides