Uber SDE I Interview Experience – Feb 2026
Summary
I had an interview with Uber for the SDE I role in February 2026, which consisted of three rounds: a technical assessment, a coding round focusing on data structures and algorithms, and a low-level design round.
Full Experience
Uber Interview Experience
The interview process consisted of three rounds:
- Elimination Round – Technical Assessment
- Coding Round – Data Structures & Algorithms
- Low-Level Design Round
Round 1 – Technical Assessment
This was an elimination round designed to assess core technical and problem-solving skills.
Problem
Earliest Timestamp When All Users Become Connected
You are given logs representing shared ride interactions between users.
<timestamp> <UserA> shared ride with <UserB>
Each log indicates that UserA becomes connected with UserB at the given timestamp.
The logs are sorted by timestamp.
Task
Determine the earliest timestamp at which all users in the system become connected.
Follow-up
A second type of log was introduced:
<timestamp> <UserA> cancel ride with <UserB>
This operation removes the connection between the two users.
Updated task
Determine the earliest timestamp at which all users are connected, considering that connections can also be removed.
Round 2 – Coding Round (Data Structures & Algorithms)
This round focused on algorithmic problem solving and optimized implementation.
Problem
Microservice Restart Cycles
There are N microservices. Each microservice may depend on other microservices.
A service can only start if all its dependencies are already started.
Input format:
N
For each service i:
K dep1 dep2 dep3 ...
Where:
K= number of dependencies of serviceidepX= indices of services that must start before servicei
The system attempts to start services in cycles:
- In each cycle, services are checked from 0 to N-1
- If a service's dependencies are satisfied, it starts
- Otherwise it is skipped
- The process repeats until all services are started
Task
Return the minimum number of cycles required to start all services, or report impossible if it cannot be done.
Round 3 – Low Level Design
This round evaluated class design, modular code structure, and API design.
Problem
File System API Implementation
Design an in-memory file system that mimics basic Linux directory operations.
Required APIs:
mkdir(dirname: string)
pwd()
cd(path: string)
Functional requirements
mkdir(dirname)
Creates a new directory inside the current working directory.
pwd()
Returns the absolute path of the current working directory.
cd(path)
Changes the current working directory.
Path rules
- If the path starts with
/, it represents an absolute path from root - Otherwise it is a relative path from the current directory
The path may contain a wildcard *.
* can match:
- the current directory (
.) - the parent directory (
..) - any child directory
The APIs should behave similarly to Linux directory navigation commands.
Interview Questions (4)
Earliest Timestamp When All Users Become Connected
You are given logs representing shared ride interactions between users.
<timestamp> <UserA> shared ride with <UserB>
Each log indicates that UserA becomes connected with UserB at the given timestamp.
The logs are sorted by timestamp.
Task
Determine the earliest timestamp at which all users in the system become connected.
Earliest Timestamp When All Users Become Connected (with cancellations)
A second type of log was introduced:
<timestamp> <UserA> cancel ride with <UserB>
This operation removes the connection between the two users.
Updated task
Determine the earliest timestamp at which all users are connected, considering that connections can also be removed.
Microservice Restart Cycles
There are N microservices. Each microservice may depend on other microservices.
A service can only start if all its dependencies are already started.
Input format:
N
For each service i:
K dep1 dep2 dep3 ...
Where:
K= number of dependencies of serviceidepX= indices of services that must start before servicei
The system attempts to start services in cycles:
- In each cycle, services are checked from 0 to N-1
- If a service's dependencies are satisfied, it starts
- Otherwise it is skipped
- The process repeats until all services are started
Task
Return the minimum number of cycles required to start all services, or report impossible if it cannot be done.
File System API Implementation
Design an in-memory file system that mimics basic Linux directory operations.
Required APIs:
mkdir(dirname: string)
pwd()
cd(path: string)
Functional requirements
mkdir(dirname)
Creates a new directory inside the current working directory.
pwd()
Returns the absolute path of the current working directory.
cd(path)
Changes the current working directory.
Path rules
- If the path starts with
/, it represents an absolute path from root - Otherwise it is a relative path from the current directory
The path may contain a wildcard *.
* can match:
- the current directory (
.) - the parent directory (
..) - any child directory
The APIs should behave similarly to Linux directory navigation commands.