Uber Interview Questions (12+ Questions)
Last Updated: June 8, 2026 β’ 12 Questions β’ Real Company Interviews
Prepare for your Uber interview with our comprehensive collection of 12+ real interview questions and detailed answers. These questions have been curated from actual Uber technical interviews across various roles including DevOps Engineer, Data Engineer, QA Engineer, and more.
Table of Contents
- Macvlan Network Configuration Fix (hard)
- Count User Events from JSON Activity Logs (easy)
- Course Schedule (medium)
- Calculate Cumulative Sales (medium)
- Airport Name Lengths (medium)
- Government Budgeting Variance (hard)
- Analyzing Pharmaceutical Equipment Maintenance (hard)
- Multi-Channel Sales Integration (medium) π
- Customer Region Switch Tracker (easy) π
- User Transaction Milestone (medium)
- Meeting Rooms (easy)
- Link Extraction Testing (easy) π
Our Uber interview questions cover a wide range of technical topics and difficulty levels, from entry-level positions to senior roles. Each question includes detailed explanations and answers to help you understand the concepts and prepare effectively for your interview.
π‘ Pro Tips for Uber Interviews
- Practice each question and understand the underlying concepts
- Review Uber's specific technologies and methodologies
- Prepare follow-up questions and edge cases
- Practice explaining your solutions clearly and concisely
Interview Questions & Answers
1. Macvlan Network Configuration Fix
Solve macvlan network limitations where containers cannot reach the host or gateway. Create host-side macvlan interfaces, configure IP addresses in the same subnet, add routing rules, and enable bidirectional communication between containers and physical network. Essential for advanced networking, bare-metal deployments, legacy network integration, and scenarios requiring containers with distinct MAC addresses on physical networks.
2. Count User Events from JSON Activity Logs
Parse JSON activity logs to count events per user and generate an aggregated report using Python dictionary operations.
3. Course Schedule
def can_finish(num_courses: int, prerequisites: list[list[int]]) -> bool:
adj = {i: [] for i in range(num_courses)}
indegree = {i: 0 for i in range(num_courses)}
for crs, pre in prerequisites:
adj[pre].append(crs)
indegree[crs] += 1
q = deque()
for i in range(num_courses):
if indegree[i] == 0:
q.append(i)
completed_courses = 0
while q:
curr = q.popleft()
completed_courses += 1
for neighbor in adj[curr]:
indegree[neighbor] -= 1
if indegree[neighbor] == 0:
q.append(neighbor)
return completed_courses == num_courses
4. Calculate Cumulative Sales
Example of How to Answer the Interview Question
The given scenario involves working with sales data from a sales_records table, comprising details such as sale dates, product names, and units sold. The task is to craft an SQL query that will yield each record alongside a new column named total_units_sold, which indicates the cumulative number of units sold for each product up to and including the current sale date. The final results should be ordered by the product name and the sale date. Below is a detailed, SEO-friendly explanation of how to handle this interview question:
SQL Solution
To tackle this task, you can utilize the SQL Window Functions, especially the SUM() function combined with the PARTITION BY clause to calculate running totals. The query will leverage window functions to maintain the total units sold for each product chronologically up to the given date.
Here's the SQL query for this solution:
SELECT
sale_date,
item_name,
units_sold,
SUM(units_sold) OVER (PARTITION BY item_name ORDER BY sale_date) AS total_units_sold
FROM
sales_records
ORDER BY
item_name,
sale_date;
Explanation
- SELECT Clause: We choose the relevant columns
sale_date,item_name,units_sold, and generate a new columntotal_units_sold. - SUM() Function with OVER Clause: The
SUM(units_sold) OVER (PARTITION BY item_name ORDER BY sale_date)computes the cumulative sum of units sold for each product (item_name), ordered by the sale date (sale_date). - Result Ordering:
ORDER BY item_name, sale_dateensures the output is first ordered by the product name and subsequently by the sale date for each product.
By structuring the SQL query in this manner, you ensure that the running total for each product is correctly calculated and effortlessly retrieve the desired data layout.
Implementation Context
This query will be effective in scenarios such as generating daily sales reports, monitoring product performance over time, or analyzing sales trends. It can be adapted to various relational database management systems (RDBMS) like PostgreSQL, MySQL, SQL Server, and Oracle, making it versatile for different SQL environments.
Relevance to SEO
By explaining the SQL solution in a clear and detailed manner, this content becomes highly relevant and useful for individuals searching for information on SQL interview questions related to cumulative totals and window functions. It provides a practical, step-by-step approach that is likely to rank well in search engine results for queries like "SQL running total query," "SQL cumulative sum example," and "SQL window functions interview question."
Final Thoughts
Providing a detailed yet concise solution to SQL interview questions can help demonstrate proficiency in SQL and understanding of advanced functions. When crafting SQL solutions, always consider the readability and efficiency of your queries to ensure they perform well even with larger datasets.
5. Airport Name Lengths
WITH joined AS (
SELECT
f.flight_id,
LENGTH(TRIM(orig.airport_name)) AS origin_airport_name_length,
LENGTH(TRIM(dest.airport_name)) AS destination_airport_name_length,
LENGTH(TRIM(pl.plane_model)) AS plane_model_length
FROM {{ ref("flights") }} f
LEFT JOIN {{ ref("airports") }} orig
ON f.origin_airport = orig.airport_id
LEFT JOIN {{ ref("airports") }} dest
ON f.destination_airport = dest.airport_id
LEFT JOIN {{ ref("planes") }} pl
ON f.flight_id = pl.plane_id
)
SELECT * FROM joined
6. Government Budgeting Variance
Practice statistical aggregations in PySpark. Learn how to perform multi-key inner joins and calculate the sample variance of budgetary data across federal departments.
7. Analyzing Pharmaceutical Equipment Maintenance
Master complex window functions in PySpark. Learn how to combine dense_rank with row_number to rank maintenance costs and extract the most recent service records for pharmaceutical equipment.
8. Multi-Channel Sales Integration
Objective
Combine sales data from three different sales channels (online, store, and mobile) and aggregate it to generate a comprehensive report. The report should list each product's name, total sales amount, number of transactions, and the channels through which the product was sold. The resu...
π Premium Content
Detailed explanation and solution available for premium members.
9. Customer Region Switch Tracker
How to Track Customer Region Changes Over Time with SQL
Objective
Track the changes in customer regions over time using a detailed SQL query. Identify customers who have moved from one region to another, and list the old region, new region, and the date of the change for each customer.
...
π Premium Content
Detailed explanation and solution available for premium members.
10. User Transaction Milestone
SELECT
user_id,
spend,
transaction_date
FROM
(
SELECT
user_id,
spend,
transaction_date,
ROW_NUMBER() OVER (
PARTITION BY
user_id
ORDER BY
transaction_date ASC
) AS transaction_rank
FROM
transactions
) AS ranked_transactions
WHERE
transaction_rank = 3;
11. Meeting Rooms
def can_attend_meetings(intervals: list[list[int]]) -> bool:
intervals.sort(key=lambda x: x[0])
for i in range(1, len(intervals)):
if intervals[i][0] < intervals[i-1][1]:
return False
return True
12. Link Extraction Testing
Master link extraction testing with Selenium. Learn basic link finding and attribute extraction for beginners....
π Premium Content
Detailed explanation and solution available for premium members.
Ready to Practice More?
Explore interview questions from other companies or try our hands-on labs to build practical experience.