The process started with a conversation with the recruiter. The recruiter then scheduled a more technical interview with one of the engineers. Following that interview, I was invited onsite for a full-day session.
I flew out to San Francisco and met with the team that was interested in hiring me. My first conversation was with the manager, where we discussed my experience.
The next step involved a whiteboard problem. The approach was to first outline a solution and then proceed to code it. After this, there was a lunch break with the team.
Following the break, another whiteboard problem was presented, similar to the previous one but with different interviewers. This was followed by a system design interview.
This system design portion was the only part of the interview I did not enjoy. The interviewer's expectations were unclear. The task was to add functionality to a project I had previously worked on. The most challenging aspect was explaining that the requested functionality already existed, which the interviewer did not seem to grasp.
The final part of the interview was a deep dive into my experience, akin to the initial conversation with the manager. This section focused more on detailing my contributions rather than explaining how I handled specific situations.
Overall, the interview was a positive experience. I only wish I had refreshed my knowledge of computer science fundamentals, as it's been a while since I've actively used them given my years of experience.
Algorithms and Graph Traversal
How would you implement this new feature to a project you've worked on?
The following metrics were computed from 121 interview experiences for the Uber Software Engineer role in San Francisco, California.
Uber's interview process for their Software Engineer roles in San Francisco, California is fairly selective, failing a large portion of engineers who go through it.
Candidates reported having very good feelings for Uber's Software Engineer interview process in San Francisco, California.