SDE-2 Frontend Interview Uber
Summary
I interviewed for an SDE-2 Frontend role at Uber, undergoing multiple coding rounds, Low-Level Design, High-Level Design, and a Hiring Manager discussion, but was ultimately rejected.
Full Experience
Ubers Interview:-
Coding 1:-
Question 1:-
#Uber's trip history system has encountered a malfunction ing a passenger's journey to be fragmented into multiple unordered segments. Each segment cares a portion of the trip sequence, but the correct chronological order of these segments is unknow
Lily, a data engineer at Uber, has been assigned the tas of restoring the complete trip history. She must analyze the given segments, identify overlapping metails, and piece them together in the correct order to reconstruct the original journey.
Solve jt in js #Your task is to design an efficient algorithm to ass sequence from the unordered segments.
Its n*m aarray
Question 2:-
"Consider you are in an IPL auction for selection of players and there are few (even number of players) left over players (displayed on the screen in a row) who needs to be picked between 2 teams. Each player has a respective score number assigned which suggests how good
that player is. Each team selector gets alternating turns. In each turn, a selector have to select either ist or last player from the screen.
Determine the maximum possible score you can win if we move first.
P.S Opponent selector is as clever as you" "Sample 1
Input Surya kumar- 5, Ashwini 3, Pandiya-7, Virat 10:: (5, 3, 7,10)
Output: 5+10 = 15
Sample 2 Input Surya kumar- 8, Ashwini - 15, Pandiya-3, Vrat- 7 :: (8, 15, 3, 7}
Coding Round 2:-
Create a queue that allows concurrent processing of async tasks up until a limit. Tasks can be added to it after creation at any time. The queue has the following signature:
/*
type Task any;
type Queue = (ProcessorFn, OnCompleteFn, concurrency: number) => QueueObject
I
type QueueObject = {
drain: (error?: Error) => void
push: (Task or Array, CallbackFn) => void
error: (error?: Error, Task) => void
unshift: (Task or Array, CallbackFn) => void
}
type ProcessorFn = (Task, CallbackFn) => void
type OnCompleteFn = (data: any, error: Error, Task) => void
type CallbackFn = (error?: Error) => void
LLD:-
Render C shape squares (25px) a row. A square would have a border
black and bg color white.
Keep space of 10px between ares
Clicking on a square will ange its color to green.
An unwinding process would start once all 3 squares are green. It will turn them back to white in the reverse order of click.
Unwinding should decolor boxes one by one with a delay of 1 second between them
HLD:-
Design Google Calender
HM:- Genral Discussions on previous projects and normal HM questions.
Verdict:- Rejected
Interview Questions (5)
#Uber's trip history system has encountered a malfunction ing a passenger's journey to be fragmented into multiple unordered segments. Each segment cares a portion of the trip sequence, but the correct chronological order of these segments is unknow # Lily, a data engineer at Uber, has been assigned the tas of restoring the complete trip history. She must analyze the given segments, identify overlapping metails, and piece them together in the correct order to reconstruct the original journey. Solve jt in js #Your task is to design an efficient algorithm to ass sequence from the unordered segments. Its n*m aarray
"Consider you are in an IPL auction for selection of players and there are few (even number of players) left over players (displayed on the screen in a row) who needs to be picked between 2 teams. Each player has a respective score number assigned which suggests how good that player is. Each team selector gets alternating turns. In each turn, a selector have to select either ist or last player from the screen. Determine the maximum possible score you can win if we move first. P.S Opponent selector is as clever as you" "Sample 1 Input Surya kumar- 5, Ashwini 3, Pandiya-7, Virat 10:: (5, 3, 7,10) Output: 5+10 = 15 Sample 2 Input Surya kumar- 8, Ashwini - 15, Pandiya-3, Vrat- 7 :: (8, 15, 3, 7}
Create a queue that allows concurrent processing of async tasks up until a limit. Tasks can be added to it after creation at any time. The queue has the following signature: /* type Task any; type Queue = (ProcessorFn, OnCompleteFn, concurrency: number) => QueueObject I type QueueObject = { drain: (error?: Error) => void push: (Task or Array, CallbackFn) => void error: (error?: Error, Task) => void unshift: (Task or Array, CallbackFn) => void } type ProcessorFn = (Task, CallbackFn) => void type OnCompleteFn = (data: any, error: Error, Task) => void type CallbackFn = (error?: Error) => void
Render C shape squares (25px) a row. A square would have a border black and bg color white. Keep space of 10px between ares Clicking on a square will ange its color to green. An unwinding process would start once all 3 squares are green. It will turn them back to white in the reverse order of click. Unwinding should decolor boxes one by one with a delay of 1 second between them
Design Google Calender