Uber SDE I Interview Experience – Feb 2026

uber logo
uber
· SDE I
March 14, 2026 · 3 reads

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:

  1. Elimination Round – Technical Assessment
  2. Coding Round – Data Structures & Algorithms
  3. 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 service i
  • depX = indices of services that must start before service i

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)

1.

Earliest Timestamp When All Users Become Connected

Data Structures & Algorithms

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.

2.

Earliest Timestamp When All Users Become Connected (with cancellations)

Data Structures & Algorithms

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.

3.

Microservice Restart Cycles

Data Structures & Algorithms

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 service i
  • depX = indices of services that must start before service i

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.

4.

File System API Implementation

System Design

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.

📣 Found this helpful? Please share it with friends who are preparing for interviews!

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!