My Uber L4 Frontend Interview
Overview
Uber, one of the world's largest mobility and delivery technology platforms, hires frontend engineers at the L4 level to build and scale complex user-facing products across its global ecosystem. L4 interviews at Uber typically evaluate a candidate's depth in data structures and algorithms, JavaScript fundamentals, system design thinking, and hands-on React expertise. This article walks through one candidate's complete interview experience for the L4 Frontend position in March 2026, including the problem statements, the technical decisions made under pressure, and the reasoning behind the elimination decision.
Interview Process
The interview process for the L4 Frontend role at Uber consisted of three sequential rounds, each designed to assess a different layer of frontend engineering competency:
- Round 1 ā DSA Elimination Round: A focused problem-solving round based on a single 2D grid problem with progressive follow-up variations.
- Round 2 ā Core DSA & JavaScript Concurrency Round: A mixed-format round covering graph validation, an asynchronous queue implementation, and rapid-fire JavaScript trivia.
- Round 3 ā React In-Depth Specialization: A machine-coding round that required building a production-quality nested file explorer with search functionality.
The candidate progressed past the first round and the second round but was eliminated following the React specialization round.
Technical Rounds
Round 1: The DSA Elimination Round
The round opened with a classic 2D array problem: counting the number of islands in a grid where land and water are represented by specific characters. This is functionally equivalent to LeetCode 200 ā Number of Islands.
The candidate approached the problem using a recursive Depth-First Search (DFS). The strategy involved iterating through the grid, locating the first unvisited land cell, incrementing the island counter, and then using DFS to mark the entire connected landmass in place to avoid double-counting.
Once the base solution was complete, the interviewer introduced two progressive follow-ups:
- Handling Diagonals: The logic was modified so that land cells touching only at the corners count as part of the same island, transitioning from 4-directional to 8-directional exploration. This mirrors LeetCode 827 ā Making A Large Island.
- Closed Islands: The candidate was asked to identify and count only the islands completely surrounded by water and not touching the outer borders of the grid, similar to LeetCode 1254 ā Number of Closed Islands.
Original Source
This experience was originally published on medium.com. Support the author by visiting the original post.
Read on medium.com