Uber
Proud winner of ABECA 2024 - AmbitionBox Employee Choice Awards
Filter interviews by
I applied via Referral and was interviewed in May 2024. There was 1 interview round.
There was an online coding test on signal consisting of leetcode easy medium and hard
I applied via Campus Placement and was interviewed in Feb 2024. There were 2 interview rounds.
Question are very tough and faad
Question like trees linked list and graphs
I applied via LinkedIn and was interviewed in May 2024. There was 1 interview round.
1 Hr coding round, Leetcode medium problems like Minimum Grid sum & Basic calculator
I applied via Naukri.com and was interviewed in Nov 2022. There were 2 interview rounds.
Debouncer and throttle are techniques used to limit the frequency of function calls.
Debouncing delays the execution of a function until a certain amount of time has passed without the function being called again.
Throttling limits the frequency of function calls to a certain rate, executing the function at fixed intervals.
Debouncing is useful for events that may be triggered multiple times in quick succession, such as r...
Currying is a technique of transforming a function that takes multiple arguments into a sequence of functions that each take a single argument.
Currying allows partial application of a function
It helps in creating reusable functions
Curried functions are easier to compose and chain
Example: const add = (a) => (b) => a + b; add(2)(3) returns 5
Curry function is a higher-order function that allows partial application of arguments.
Currying transforms a function that takes multiple arguments into a series of functions that take one argument each.
It returns a new function until all the arguments are received and then executes the original function.
Example: const add = (a, b) => a + b; const curriedAdd = curry(add); curriedAdd(2)(3) returns 5.
promise.all() is a method that takes an array of promises and returns a new promise that resolves when all promises in the array have resolved.
It is used to handle multiple asynchronous operations simultaneously.
If any of the promises in the array rejects, the returned promise will be rejected with the reason of the first rejected promise.
The resolved values of the promises are returned as an array in the same order as
Memoization is a technique of caching the results of a function to improve performance.
Memoization is used to avoid redundant calculations by storing the results of a function and returning the cached result when the same inputs occur again.
It is commonly used in recursive functions and functions with expensive computations.
Memoization can be implemented manually or by using libraries like Lodash or Memoizee.
Example: M...
Closure is a function that has access to its parent scope even after the parent function has returned.
Closure allows for private variables and functions in JavaScript.
It is created when a function returns another function.
The inner function has access to the outer function's variables and parameters.
Example: function outer() { let x = 10; return function inner() { console.log(x); } }
The inner function can access and mo...
Closures can cause memory leaks if not handled properly.
Closures can hold references to variables outside of their scope, preventing them from being garbage collected.
If closures are used excessively or not released properly, they can cause memory leaks.
To avoid memory leaks, make sure to release closures when they are no longer needed.
There is no difference between class based components and class based components.
There seems to be a typo in the question.
Assuming the question is about functional components vs class components, the major difference is that class components use a class to define the component while functional components are defined as functions.
Class components have access to lifecycle methods while functional components do not.
Functi...
Shallow copy only copies the reference to an object while deep copy creates a new object with a new memory address.
Shallow copy is faster and uses less memory than deep copy.
In shallow copy, changes made to the original object will reflect in the copied object as well.
Deep copy creates a completely new object with its own memory space.
In JavaScript, arrays and objects are assigned by reference, so a shallow copy will o...
Deep copy creates a new object with the same values as the original object.
Use Object.assign() method to create a deep copy of an object.
For nested objects, use recursion to copy all levels.
For arrays, use slice() method to create a new array with the same values.
Avoid using spread operator for deep copy as it only creates a shallow copy.
Coding a frontend UI from provided image. And creating a fucntional star rating system
Designing a Component API in React using Typescript involves defining props, state, and methods for the component.
Define the props interface to specify the expected input data for the component
Use typescript types to ensure type safety and prevent runtime errors
Define the state interface to manage the internal state of the component
Implement methods to handle user interactions and component logic
Document the component
Function to clear all timer ids at once
Create an array to store all timer ids
Iterate through the array and clear each timer id using clearTimeout() function
I applied via LinkedIn and was interviewed before Aug 2023. There were 3 interview rounds.
30mins aptitude test
90 mins coding test for 3 questions
I am choosing this role because of my passion for creating user-friendly and visually appealing websites.
Passion for front end development
Enjoy creating user-friendly interfaces
Excited about the creative aspect of web design
I am a dedicated and skilled front end developer with a passion for creating user-friendly interfaces.
I have a strong understanding of HTML, CSS, and JavaScript
I have experience with responsive design and cross-browser compatibility
I am proficient in using front end frameworks like React and Angular
Given a matrix of zeros and ones, find the minimum distance for each one to a zero.
Use breadth-first search (BFS) to find the minimum distance from each one to a zero.
Start by initializing a queue with all the zeros in the matrix.
While the queue is not empty, dequeue a zero and enqueue its neighboring ones.
Keep track of the distance from each one to the nearest zero.
Repeat until all ones have been visited.
Return the ma
I applied via Campus Placement
Regex for email validation
Start with a string of characters followed by @ symbol
Followed by a string of characters and a period
End with a string of characters with a length of 2-6 characters
Allow for optional subdomains separated by periods
Disallow special characters except for . and _ in username
Print prime numbers in a given range and optimize the solution.
Use Sieve of Eratosthenes algorithm to generate prime numbers efficiently
Start with a boolean array of size n+1, mark all as true
Loop through the array and mark all multiples of each prime as false
Print all the indexes that are still marked as true
Find angle between hour and minute hand in a clock given the time.
Calculate the angle made by the hour hand with respect to 12 o'clock position
Calculate the angle made by the minute hand with respect to 12 o'clock position
Find the difference between the two angles and take the absolute value
If the angle is greater than 180 degrees, subtract it from 360 degrees to get the smaller angle
To un-hash a string, use a reverse algorithm to convert the hash back to the original string.
Create a reverse algorithm that takes the hash as input and outputs the original string
Use the same logic as the hash function but in reverse order
If the hash function used a specific algorithm, use the inverse of that algorithm to un-hash the string
I appeared for an interview before Sep 2016.
Search an element in sorted rotated array.
Use binary search to find the pivot point where the array is rotated.
Divide the array into two subarrays and perform binary search on the appropriate subarray.
Handle the cases where the target element is at the pivot point or not present in the array.
Find the Kth largest element in an array.
Sort the array in descending order and return the element at index K-1.
Use a max heap to find the Kth largest element efficiently.
Implement a quickselect algorithm to find the Kth largest element in linear time.
Reverse a linked list in groups of n elements.
Divide the linked list into groups of n elements.
Reverse each group individually.
Connect the reversed groups to form the final linked list.
Handle cases where the number of elements is not a multiple of n.
Example: 1->2->3->4->5->6->7->8, n=3 -> 3->2->1->6->5->4->8->7
Find the median of two sorted arrays.
Merge the two arrays into one sorted array and find the median.
Use binary search to find the median in O(log(min(m, n))) time complexity.
Handle edge cases like empty arrays or arrays of different lengths.
Count number of paths from (0, 0) to (m, n) in a matrix while crossing through some indexes were not allowed.
Use dynamic programming to solve the problem
Create a 2D array to store the number of paths
Traverse the matrix and update the array based on the allowed paths
Return the value at the last index of the array
based on 1 interview
Interview experience
Driver
558
salaries
| ₹0.9 L/yr - ₹7.3 L/yr |
CAR Driver
361
salaries
| ₹0.8 L/yr - ₹7.2 L/yr |
Software Engineer
151
salaries
| ₹25 L/yr - ₹103.4 L/yr |
Data Analyst
142
salaries
| ₹7 L/yr - ₹23.3 L/yr |
Senior Software Engineer
140
salaries
| ₹27.5 L/yr - ₹110 L/yr |
Amazon
Ola Cabs
Airbnb