Uber Interview Experience | L4 | Frontend #uber
Summary
I recently went through the interview process for an L4 Frontend position at Uber, which included a screening round, two coding rounds focusing on DSA and UI, a UI system design round, and a manager discussion. The questions spanned from implementing interactive UI components to designing a concurrent task queue and a full-fledged calendar application.
Full Experience
I interviewed for an L4 Frontend role at Uber, bringing 4.5 years of experience. The interview process was comprehensive, covering various aspects of frontend development and problem-solving.
Screening Round
My screening round involved a UI component design and implementation task. I was asked to build a voting poll UI. The requirements were quite specific:
- Display four voting options with buttons.
- Dynamically update vote counts and percentage distribution upon a click.
- Show a colored progress bar for each option, reflecting its current percentage, with smooth, real-time updates.
Optional features included distinct colors, animations, and total vote counters.
Loop Interviews
Coding 1 (DSA)
This round focused on Data Structures & Algorithms, specifically involving concurrency. I was tasked with designing and implementing a task queue in TypeScript. The queue needed to support controlled concurrency, executing up to K tasks in parallel, and queuing additional tasks until slots became available. Each task required a unique ID and support for success and error callbacks. An interesting design constraint was allowing a custom executor for logging, retries, or rate limiting.
Coding 2 (UI Coding)
The second coding round was another UI implementation challenge. I had to design and implement a modal component using any UI framework. The modal needed several features:
- Primary and secondary action buttons (e.g., “Save” and “Cancel”).
- An optional close icon ('X').
- Configurable priority levels to manage modal stacking.
- A mechanism to automatically close all other open modals when a new, higher-priority modal opens.
UI System Design
This was a more extensive design round where I had to design a calendar application similar to Google Calendar. Key features to cover included:
- User authentication (sign up, log in, log out).
- Event management (create, edit, delete, accept invitations), with events having title, time, date, participants, and description.
- Multiple calendar views (Month, Week, Day) with seamless switching.
Manager Round (Zoom Collaboration)
The final round was with a manager, where we discussed leadership and collaboration. The questions were primarily behavioral, drawing from my past experiences to assess my approach to teamwork and leadership.
Interview Questions (4)
Design and implement a voting poll UI component using any front-end framework (e.g., React, Vue, or Angular).
- The poll should display four voting options, each represented by a button.
- When a user clicks on a button, the corresponding option’s vote count increases, and the percentage distribution across all options updates dynamically.
- Each option should display a colored progress bar that visually represents its current percentage of total votes.
- The bars should update smoothly and in real time as users vote.
You may also include additional features such as:
- Distinct colors for each option’s bar.
- Animations or transitions for visual appeal.
- A total votes counter or percentage labels.
Design and implement a task queue in TypeScript that supports controlled concurrency. The queue should allow executing up to K tasks in parallel, while additional tasks are queued until slots become available.
Each task should have a unique task ID and support success and error callbacks. The design should also allow setting a custom executor to define how tasks are executed (for example, to add logging, retries, or rate limiting).
Design and implement a modal component using any UI framework of your choice (e.g., React, Vue, or Angular).
The modal should support the following features:
- Primary and secondary action buttons (e.g., “Save” and “Cancel”).
- An optional close icon (X) for dismissing the modal.
- A configurable priority level to control modal stacking or importance.
- A mechanism to close all other open modals automatically when a new modal with higher priority is opened.
Design and implement a calendar application (similar to Google Calendar) using any front-end framework of your choice (e.g., React, Vue, or Angular).
The application should support the following core features:
- Authentication: Allow users to sign up, log in, and log out securely.
- Event Management: Users should be able to create, edit, delete, and accept event invitations. Each event should include details such as title, time, date, participants, and description.
- Calendar Views: Display events in multiple views: Month, Week, and Day. Enable switching between views seamlessly.