Uber SDE-2 Frontend Interview Experience: A Detailed Breakdown with Coding Questions and…
JavaScript With Vinay
January 8, 2026
medium
Overview
This document details the interview experience for a Software Engineer II (Frontend) position at Uber. The process consisted of five rounds, designed to evaluate the candidate's technical skills, problem-solving abilities, system design knowledge, and leadership qualities. This breakdown provides a comprehensive guide for prospective candidates.
Interview Rounds
The Uber SDE-2 Frontend interview process includes the following stages:
-
Online Assessment (35 mins)
- Format: CodeSignal test with 2 coding questions and 8 multiple-choice questions (JavaScript, HTML, CSS).
- Difficulty: Easy to Medium.
- Coding Question 1: Playing with Digits (Easy) - Digit manipulation (Math).
Explanation: The function calculates the sum of digits repeatedly until a single-digit number remains.function sumOfDigits(num) { while (num >= 10) { let sum = 0; while (num > 0) { sum += num % 10; num = Math.floor(num / 10); } num = sum; } return num; } - Coding Question 2: Longest Substring Without Repeating Characters (Medium) - HashMap and Sliding Window technique.
Explanation: The algorithm uses a sliding window and a HashMap to find the longest substring without repeating characters.function lengthOfLongestSubstring(s) { let map = new Map(); let maxLen = 0; let start = 0; for (let end = 0; end < s.length; end++) { if (map.has(s[end])) { start = Math.max(map.get(s[end]) + 1, start); } map.set(s[end], end); maxLen = Math.max(maxLen, end - start + 1); } return maxLen; }
-
DSA Coding Round (1 hr)
- Format: Live coding round (1-2 Data Structures and Algorithms problems).
- Difficulty: Medium to Hard.
- Coding Problem: Minimum Time for Objects to Meet - Binary Search and Math.
Explanation: The code uses binary search to find the minimum time for all objects to meet at a single point.function minMeetingTime(positions, velocities) { let low = 0; let high = 1e9; while (high - low > 1e-6) { let mid = (low + high) / 2; let minPos = Number.MAX_VALUE; let maxPos = -Number.MAX_VALUE; for (let i = 0; i < positions.length; i++) { minPos = Math.min(minPos, positions[i] + velocities[i] * mid); maxPos = Math.max(maxPos, positions[i] - velocities[i] * mid); } if (minPos >= maxPos) { high = mid; } else { low = mid; } } return low; }
-
Tech Specialization Round (1 hr)
- Format: Vanilla JavaScript problem (DOM Manipulation and Asynchronous Programming).
- Difficulty: Medium.
- Problem: Sequential Bind/Unbind Click Handlers.
Explanation: The problem evaluates the ability to manage event listeners and asynchronous code. Follow-up questions involve performance improvements such as debouncing or event delegation.function bindSequentialClicks(buttons) { buttons.forEach((btn, index) => { btn.addEventListener('click', () => { console.log(`Button ${index + 1} clicked`); }); }); }
-
System Design and Architecture (1 hr)
- Format: Discussion-based round (Collaborative Calendar Application design).
- Difficulty: Open-ended.
- Key Concepts: API Design (RESTful APIs), Component Architecture (React or Vue.js), Performance Optimization (caching, load balancing, database design).
- The candidate may include a diagram depicting a microservices architecture, illustrating the interaction between various services (user management, calendar events, notifications).
-
Leadership and Collaboration (1 hr)
- Format: Behavioral questions.
- Difficulty: Reflective.
- Key Questions: Challenging project experience, conflict resolution within a team, and demonstration of leadership skills.
Key Takeaways
- State Management: Context API for small to medium applications, Redux or MobX for larger applications.
- Performance Optimization: Lazy Loading, Memoization, Code Splitting (Webpack).
- The interview process assesses a range of skills, from fundamental coding to high-level system design and interpersonal abilities.
Original Source
This experience was originally published on medium. Support the author by visiting the original post.
Read on medium