Uber Onsite Frontend Role

Onsite consisted of 5 rounds: 2 algorithm, 2 system, and 1 behavior.

The first system design round involved designing a sudoku game. Users input numbers, and each time they input, it must be checked if it violates any rules. If a violation occurs, the cell in the sudoku should be displayed in red, otherwise not. When the user completes all cells, it should output that the user has won.

The key challenge is not the check itself but how to write it in an extendable and decoupled manner. It is recommended to use MVC/Observable. This is a more detailed design test to see if you can create a good class diagram and routine.

The second system design round was about designing a music player (like Spotify). It should include search functionality, artist pages, playing music, saving music, creating playlists, and more. Both backend and frontend need to be designed. For example, what endpoints the backend should have and what values they return. This round focuses more on macro design. If your interviewer only asks about specifications beyond this, then you have succeeded.

I forgot the details of the algorithm round. It was probably of medium to hard difficulty, definitely involving graphs, and I can’t remember if it included dynamic programming.

The behavioral round was quite typical. They asked how you would handle a disagreement with a colleague. They also inquired about autonomous vehicles. It’s advisable to have some knowledge about autonomous vehicles, such as how they operate.