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.

12
Interview Questions
1
Categories
3
Difficulty Levels

Table of Contents

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

Company: Uber Difficulty: hard Categories: Devops

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

Company: Uber Difficulty: easy Categories: Devops, Data analysis, Data engineering, Quality assurance

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

Company: Uber Difficulty: medium Categories: Devops, Data engineering

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

Company: Uber Difficulty: medium Categories: Data analysis, Data engineering

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

Company: Uber Difficulty: medium Categories: Data analysis, Data engineering

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

Company: Uber Difficulty: hard Categories: Data analysis, Data engineering

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

Company: Uber Difficulty: hard Categories: Data analysis, Data engineering

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

Company: Uber Difficulty: medium πŸ”’ Premium Categories: Data engineering

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.

Upgrade to Premium β†’

9. Customer Region Switch Tracker

Company: Uber Difficulty: easy πŸ”’ Premium Categories: Data engineering

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.

Upgrade to Premium β†’

10. User Transaction Milestone

Company: Uber Difficulty: medium Categories: Data engineering

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

Company: Uber Difficulty: easy Categories: Data engineering

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

Company: Uber Difficulty: easy πŸ”’ Premium Categories: Quality assurance

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.

Upgrade to Premium β†’


Ready to Practice More?

Explore interview questions from other companies or try our hands-on labs to build practical experience.