Uber Interview Questions (12+ Questions)
Last Updated: June 23, 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
We have two running Docker containers, Mac one and Mac two. They're failing to communicate with the host network. The reason for this is that both of these containers are not created in the host network. Our task is to fix this and make both of these containers to be able to reach host network. Maclan is a device that has its own virtual network, the same as Bridge. The difference between Mac vlan and Bridge is that Mac vlan gives each container that connected to Mac vlan via its network interface, a unique Mac address. We need to create an additional network interface and connect it to the maclan. For this we'll use sudo IP link add. Type Mac vlan and Mode is going to be Bridge. We need an IP range to be assigned to this network interface. Finally, enable our network interface and retest our connectivity. We have 0% packet loss and everything now is working.
2. Count User Events from JSON Activity Logs
We will count user events from JSON activity logs. We are given one JSON file that is called activity_logs. JSON stands for JavaScript Object Notation, and it is a text-based format that stores structured data. Our job here is to count how many events each user performed and save the results as a new JSON file. First thing that has to be done is importing the JSON module, which is a built-in Python library for reading and writing JSON files. We will use the open function. It takes two arguments. First is the path to the file, and second is the mode we need. Load will read the entire JSON file and convert it into a Python object. A dictionary in Python is a data structure that stores information as key value pairs. We need to use for loop to go through every log entry. Dump function converts a Python object back to a JSON file. To run the script, we type python3 and path to the file.
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
We are given a sales data table with the name of the products, date of transaction, and the amount of daily sales. Each row simply represents one day of sales per product. Our mission is to add a new column called cumulative sales, which is a running total that keeps adding up the daily sales for each product as we move forward through the dates. We do the calculation within each product separately. For each row, we need to add up all the previous rows for the same product, which is not something that regular sum with group by can handle, since group by would just put everything into one total. A window function performs a calculation across multiple rows, but unlike group by, it never collapses them. We start with sum within daily sales column, and then we use over keyword that simply activates the window function. We will use partition by function within product name column that will simply divide the data into separate groups.
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.