Photo by Firmbee.com on Unsplash

Uber Data Scientist Interview Experience

From the recruiter's email to the onsite interview, a detailed timeline of the interview process

--

In this article, I will go through my experience interviewing for the Uber Data Scientist role for their San Francisco office. I will begin with my education/research profile and then move on to the interview process and my experience. Throughout the article, I will try to replace original questions with similar questions where needed keeping the gist and nature of the question intact to give the readers a clear understanding of the types of questions asked.

My Background

Before I go into the details, I would like to walk through my profile. I am a Ph.D. candidate in Electrical and Computer Engineering at Georgia Tech working on energy-efficient Machine Learning system design. By the time I was interviewing with Uber, I had about 8 publications 2 patents and had been actively participating in open-source tools. More details can be found on my LinkedIn profile.

Uber Data Scientist Interview Timeline and Process — Image by Author

Application

For the last couple of months, I have been actively applying for Machine Learning jobs. My main source of application has been LinkedIn. I applied for the position of Data Scientist at Uber via LinkedIn. The job responsibilities included the implementation of ML algorithms for real-life challenging problems related to Uber Ride and Uber Eats.

Recruiter’s Email

I received an email from the recruiter within two weeks. The recruiter asked for my availability and also provided a detailed document mentioning the interview timeline and useful resources. The document was really helpful for me to get a good understanding of what the interview process would look like.

Phone Screen 1:

I had two phone screenings ten days apart. Each screening was a 45mins video interview and followed the same format. In the first 5 mins, the interviewer introduced him/herself. Followed by my introduction and a walk-through of my resume. The first phone screen interview consisted of two parts

  • Case Study: The case study consisted of a relevant open-ended problem similar to UberEats. The interviewer and I discussed various aspects of the problem, such as understanding the objective, collecting the data, carrying out exploratory data analysis, scaling the system, important KPIs for the problem, underlying Machine Learning solutions, deploying the solution, and integrating it into the existing system. The purpose of this case study was to evaluate my approach to large-scale Machine Learning problems.
  • Coding: The second part consisted of a medium coding question via CodeSignal. I was asked to choose the language of my liking. The interviewer was very clear when explaining the problem. I was able to solve the problem optimally in the given time.

In the end, the interviewer asked me if I had any questions. We had a really good discussion on what his job responsibilities are at Uber.

Phone Screen 2:

I heard my first phone screen interview feedback in 3 days, and my next phone screen interview was scheduled within a week. Similar to the first interview, this interview had two parts

  • Machine Learning basics: The interviewer went through some basic to intermediate level questions related to machine learning such as backpropagation, graph ML, ensemble methods, vanishing gradients, precision vs recall, bias-variance trade-off, etc. A good understanding of these topics can be found on the useful link below
  • ML case study: Similar to the first interview, an open-ended case study related to UberEats was discussed. Contrary to the first interview, this case study was much more complex and more machine learning and statistics oriented. I was asked to design an ML-based solution for a related product-based problem. The interviewer asked relevant detailed questions in each step. The discussion started from a simple logistic regression model to slightly complex SVM and decision trees and finally to even complex graph ML models. We also discussed important features of the available data set and how to use them towards solving the problem.

Again, the interviewer was very friendly and made sure the interview environment was comfortable enough for me.

On-site

The onsite interview consisted of 6 rounds spanning a total time of 5–6 hours with two 15-minutes breaks. They gave me enough time to explain my answers made me feel welcomed. They eased me into the process by first introducing themselves and describing their job responsibilities. None of the interviewers were distracted and were completely focused on what I had to say. I have listed the six rounds into the following categories of my own based on the nature of the questions asked.

1. Design Problem

This interview consisted of an open-ended case study related to designing an online grocery store. I walked the interviewer through the process of data collection, exploratory data analysis, feature selection, feature transformation, machine learning model selection, training the model, and selecting the right KPIs to analyze the performance. This round was much more focused on the bigger picture. The interviewer was interested in my high-level understanding of the problem and not in the technical details of the algorithms. We also discussed a few business-related KPIs to gauge the solution to the problem.

2. Coding:

The coding interview was focused on my understanding of statistics. The interviewer asked me to implement a problem that involved hypothesis testing. Since I was used to the LeetCode type question related to real-world problems, this coding question gave me a tough time. It took me some time to understand what the interviewer wanted me to implemented. The interviewer gave me a few hints when I got stuck. This coding question had multiple follow-up coding questions. A good understanding of the section can be found below

3. Research

This part of the onsite consisted solely of my prior research experience. The interviewer asked me to explain my Ph.D. research, asking follow-up questions. This part was more of a discussion. The interviewer went through my CV in detail and asked relevant questions on projects that I had mentioned. He asked me to pick up a research project and explain in detail the objectives, setbacks, and final results.

4. Behavioral:

The interviewer asked me questions regarding my experience as a Ph.D. student, my experience as an intern, and a Machine learning engineer. The questions revolved around my leadership qualities, time management, meeting deadlines, dealing with a difficult colleague, and conflict resolution. A good understanding of such questions can be found below

5. Machine Learning/Statistical:

This section was an open-ended discussion related to one of Uber’s products. The problem was presented as a case study and the interviewer was most interested in my ML approach to the problem. We started with a very basic ML solution, discussed how this was a very simple approach that would fail in real-life cases, moved onto more complex solutions. Throughout the interview, we discussed various ML concepts and how changing a few things would address issues related to the ML pipeline. Topics such as Graph ML models, embeddings, loss functions, etc were discussed as well.

A few of the related topics can be found on the link below.

6. Case Study:

This was similar to the Design Problem and Machine Learning/Statistics but the Uber product under consideration was different. The interviewer was interested in my high-level understanding of designing a solution to a given problem and how would I design a solution when scaled to larger data sets. The case study was somewhat similar to the design problems asked in FAANG companies.

Summary:

Overall my interview experience with Uber was really good. The interviewers were focused on what I had to say and gave me ample time to explain my answers. The interviews mainly focused on design problem/case studies, machine learning concepts, coding problems, and my research background. I found the following resources useful while preparing for the interview.

Uber Engineering Blog:

  1. https://eng.uber.com/uber-eats-recommending-marketplace/
  2. https://eng.uber.com/uber-eats-query-understanding/
  3. https://eng.uber.com/uber-eats-graph-learning/
  4. https://eng.uber.com/women-in-data-science-moving-the-world-with-data/
  5. https://www.uber.com/us/en/marketplace/
  6. https://eng.uber.com/making-a-real-world-impact-with-data-science/
  7. https://eng.uber.com/michelangelo-machine-learning-platform/

Things to focus on with case studies/design problems:

  • Scalable solution: With over 90 million active users, Uber is a company that gives significant importance to scalable solutions. Whenever answering a case study or design problem, make sure your solution
  • Customer-oriented approach: Uber deals with people directly. The customers are the general public. Hence your solution should give more importance to making lives easy for customers. The design problem should be modified keeping the user experience in mind.
  • Business KPIs: Finally, the end goal for Uber is to generate revenue. Your solutions should focus on user retention, user churn, new users, number of riders, number of orders with Uber eats, new restaurants being added to Uber eats, etc. Ask yourself how do these metrics eventually impact revenue generated?

If you have an interview lined up with Uber, I hope this article helps you.

If this article was helpful to you or you want to learn more about Machine Learning and Data Science, follow Aqeel Anwar, or connect with me on LinkedIn or Twitter.

--

--