ML & AI Engineering
1...def main():
2.......message = """
3.......Welcome to ML & AI Engineering at Uber!
4
5.......Your skills have the power to shape the future of Uber.
6.......Now we want to see you in action.
7........
8......To make sure you're (pyth)on it, please read everything.
9......Reach out to your Recruiter if you have any questions.
10......
11...... """
12......print(message)
13
14...if __ name __ == " __ main __":
15......main()
Nuestro proceso de contratación
- Habla con una persona encargada de reclutar o un especialista en búsqueda de talento (virtual | 30 min)
You’ll kick things off by meeting with a member of the Talent Acquisition team to talk about the role and your experience. This is a strategic conversation about how your background and technical skillset align with the position.
How to prepare:
- Craft your elevator pitch: Be ready to answer the classic "Tell me about yourself" question. Provide a clear, concise overview of your career, key technical projects, and top accomplishments.
- Know why Uber: Be prepared to explain why you’re excited about this role at Uber and how it aligns with your goals and values.
- Understand the role and context: Research the role you’re applying for, the market it supports, and the specific Uber business line. Understand how your skills align with the team’s needs.
- Know the technical stuff: Get ready to tackle technical questions on Big-O notation, CS fundamentals, and domain-specific topics.
- Prepare thoughtful questions: Have insightful questions ready to ask at the end of the interview, showing your genuine interest in the role and the company.
During your interview:
- Highlight key technical projects: Share examples of impactful projects you’ve worked on, focusing on technical challenges, your approach, and measurable outcomes.
- Demonstrate your understanding of core concepts: Be ready to talk about key engineering topics like scalability, clean architecture, or dependency injection, depending on the role’s focus.
- Ask clarifying questions: If you’re unsure about a question or expectation, don’t hesitate to ask. We appreciate candidates who seek clarity.
- Business (Technical) Phone Screen to Assess Coding + Design & Architecture Competencies (Online | 60 mins)This pair programming interview focuses on problem-solving using HackerRank, covering both Coding and Design & Architecture (D&A). Our goal is to evaluate your coding ability and better understand the complexity and scope of your prior projects using a D&A lens—not to conduct an exhaustive review of your technical depth or design expertise. This serves as an initial evaluation to determine if you qualify for the business interview rounds at the appropriate level.
Interview Structure:
- ~45 minutes: Coding
- ~15 minutes: Design & Architecture
Coding language to prepare:
- Your choice. Choose your language wisely and ensure you're highly proficient in it.
How to prepare:
- Practice coding: Refresh your coding skills, especially if you’re rusty or unfamiliar with paired coding. Solve a few problems with varying difficulty using platforms like LeetCode. Continuously test your code. Focus on:
- Common data structures and algorithms (e.g., hash tables, trees, stacks).
- Data structures, particularly the ones used most often (e.g., arrays, stacks (or queues), hash tables, trees, graphs, and heaps).
- Runtime analysis (Big-O notation) and optimization techniques.
- Problem-solving approaches: Practice solving scenarios common in large-scale tech companies.
- Refresh yourself on Design & Architecture: Be prepared to discuss a project that highlights the complexity and scope of your role, including architectural components and design decision-making. Be ready to discuss trade-offs: Why was one technology chosen over another? What was the reasoning behind key decisions?
During your interview:
- Provide a solution on HackerRank: Be ready to write and explain your solution in a live coding environment.
- Ask clarifying questions: Analyze the problem and make sure that you fully understand it before jumping in. It’s OK to ask clarifying questions during the interview to make sure you understand the exact problem you are trying to solve. Also, breaking down the problem into smaller pieces can be helpful.
- Account for edge cases: Think through and address edge cases to show thorough problem analysis. One technique to write a better solution is to consider what you would catch if you were code reviewing your code.
- Communicate your thought process: Walk the interviewer through your reasoning as you solve the problem. Before implementing, discuss your proposed solution to ensure alignment.
- Keep things simple: If you find the solution getting excessively complex, step back and ask if there’s a simpler way to solve it. It may also be helpful to write everything out so you can see insights and bugs faster and make fewer mistakes.
- Test and debug: Continuously test your code and handle exceptions to confirm your solution works.
- Write clear, readable code: Use meaningful variable names and keep formatting consistent for easy understanding.
- Engage with follow-up questions: Be prepared to dive deeper into your solution and discuss alternative approaches or improvements.
Other:
- Reflect on impact: Think about the scope and results of your past roles and how they relate to solving problems at Uber.
- Review the job description: Identify relevant experiences from your background and prepare to showcase them during the interview.
- Prepare questions: Consider any role-specific or team-related questions to ask your interviewer.
Practice Questions:
- Interview 1: Software Engineering - Algorithms & Data Structures (Coding 1) (60 mins)
This interview evaluates your problem-solving abilities through coding exercises that demonstrate the appropriate use of algorithms and data structures, as well as idiomatic choices in your programming language. The problems are generic and not tied to a specific technical domain. You are expected to write testable code and clearly identify what you would test.
Coding language to prepare:
- Your choice. Choose your language wisely and ensure you're highly proficient in it.
How to prepare:
- Reflect on impact: Think about the scope and results of your past roles and how they relate to solving problems at Uber.
- Review the job description: Identify relevant experiences from your background and prepare to showcase them during the interview.
- Prepare questions: Consider any role-specific or team-related questions to ask your interviewer.
- Practice coding: Refresh your coding skills, especially if you’re rusty or unfamiliar with paired coding. Solve a few problems with varying difficulty using platforms like LeetCode.
- Strengthen your knowledge of key concepts: Review data structures like vectors, lists, maps/hash tables, trees, linked lists, stacks, queues, heaps, and graphs (e.g., DFS, BFS).
- Study algorithms: Research algorithms such as sorting, breadth-first search, depth-first search, binary search, and tree operations (insertion, deletion, and search).
- Understand Big-O notation: Familiarize yourself with how Big-O is used to calculate time and space complexity.
- Know your data structures: Familiarize yourself with the complexities for inserting, removing, and fetching elements in the data structures.
- Practice problem-solving: Write and debug code regularly to become proficient. Prepare test scenarios, especially for exception cases.
- Master your programming language: Know the syntax, conventions, and idiomatic usage of your chosen language. Focus on building fluency, as proficiency matters more than the specific language you choose.
During the interview:
- Provide a solution on HackerRank: Be ready to write and explain your solution in a live coding environment.
- Account for edge cases: Think through and address edge cases to show thorough problem analysis. One technique to write a better solution is to consider what you would catch if you were reviewing your code.
- Communicate your thought process: Walk the interviewer through your reasoning as you solve the problem. Before implementing, discuss your proposed solution to ensure alignment.
- Write clear, readable code: Use meaningful variable names and keep formatting consistent for easy understanding.
- Keep things simple: If you find the solution getting excessively complex, step back and ask if there’s a simpler way to solve it. It may also be helpful to write everything out so you can see insights and bugs faster and make fewer mistakes.
- Test and debug: Continuously test your code and handle exceptions to confirm your solution works.
- Engage with follow-up questions: Be prepared to dive deeper into your solution and discuss alternative approaches or improvements.
Practice questions:
- Interview 2: Software Engineering - Depth in Specialization (Coding 2 - ML Coding) (60 mins)This interview assesses your technical depth and expertise in your chosen area of specialization. You will write code to solve a problem similar to those you would encounter in the role. There are several types of questions, one of which is a modification to a project we provided, or implementing something from scratch.
Coding language to prepare:
- Any of your choice, but prioritize one that ensures an optimal solution delivered in the most efficient and timely manner.
How to prepare:
- Strengthen your knowledge of ML theory: Review foundational concepts such as overfitting, regularization, and other key algorithm details to solidify your understanding.
- Familiarize yourself with algorithms and problem-solving techniques: Ensure you can apply algorithms effectively and understand key principles for tackling coding challenges.
- Master key concepts: Build proficiency in your chosen programming language, including syntax, conventions, and idiomatic usage. Fluency matters more than the specific language.
- Practice debugging: Develop comfort with identifying and addressing bugs during problem-solving. Interviewers value candidates who can spot and fix errors effectively.
During your interview:
- Clarify the problem: Ask questions to fully understand the problem's requirements before starting to code.
- Communicate effectively: Explain your choices, decisions, and overall thought process as you work through the problem to help the interviewer follow your reasoning.
- Write clear, readable code: Use meaningful variable names, maintain consistent formatting, and focus on producing understandable and well-structured code.
- Test and debug: Continuously test your solution and handle exceptions to confirm it works correctly. Demonstrating strong debugging skills is a plus.
- Stay solution-oriented: Run your solution step-by-step, refining it as needed to meet the problem's requirements efficiently and effectively.
Practice Questions:
- Interview 3: Collaboration & Leadership (60 mins)
This interview evaluates your ability to build and sustain trusting, collaborative, and strategic relationships within and across teams or organizations, while working with integrity.
Coding Language to Prepare:
- N/A
Scope & Impact Expectation:
- Delivers one or more features from inception to production with minimal oversight.
How to prepare:
- Reflect on past projects: Identify key examples you want to share. Use the STAR format (Situation-Task-Action-Results) to structure your answers. Avoid hypothetical situations or lacking depth in your responses.
Be ready to discuss topics like:
- Your ability to work with determination and urgency.
- Collaboration within and across teams.
- Handling conflicts and leading projects end-to-end.
- Stakeholder management (e.g., working with Product, Data, or Design).
- Task prioritization and building trusting relationships.
- Examples of mentoring others and providing or receiving feedback.
- Decisión (virtual)
La persona que te reclute se reunirá con el panel de entrevistas para revisar tu desempeño en relación con las competencias del puesto y nuestros valores. El equipo colaborará en conjunto para llegar a una decisión y la persona que te reclute te contactará para informarte sobre el resultado. ¡Cruza los dedos!
- Habla con una persona encargada de reclutar o un especialista en búsqueda de talento (virtual | 30 min)
You’ll kick things off by meeting with a member of the Talent Acquisition team to talk about the role and your experience. This is a strategic conversation about how your background and technical skillset align with the position.
How to prepare:
- Craft your elevator pitch: Be ready to answer the classic "Tell me about yourself" question. Provide a clear, concise overview of your career, key technical projects, and top accomplishments.
- Know why Uber: Be prepared to explain why you’re excited about this role at Uber and how it aligns with your goals and values.
- Understand the role and context: Research the role you’re applying for, the market it supports, and the specific Uber business line. Understand how your skills align with the team’s needs.
- Know the technical stuff: Get ready to tackle technical questions on Big-O notation, CS fundamentals, and domain-specific topics.
- Prepare thoughtful questions: Have insightful questions ready to ask at the end of the interview, showing your genuine interest in the role and the company.
During your interview:
- Highlight key technical projects: Share examples of impactful projects you’ve worked on, focusing on technical challenges, your approach, and measurable outcomes.
- Demonstrate your understanding of core concepts: Be ready to talk about key engineering topics like scalability, clean architecture, or dependency injection, depending on the role’s focus.
- Ask clarifying questions: If you’re unsure about a question or expectation, don’t hesitate to ask. We appreciate candidates who seek clarity.
- Business (Technical) Phone Screen to Assess Coding + Design & Architecture Competencies (Online | 60 mins)This pair programming interview focuses on problem-solving using HackerRank, covering both Coding and Design & Architecture (D&A). Our goal is to evaluate your coding ability and better understand the complexity and scope of your prior projects using a D&A lens—not to conduct an exhaustive review of your technical depth or design expertise. This serves as an initial evaluation to determine if you qualify for the business interview rounds at the appropriate level.
Interview Structure:
- ~45 minutes: Coding
- ~15 minutes: Design & Architecture
Coding language to prepare:
- Your choice. Choose your language wisely and ensure you're highly proficient in it.
How to prepare:
- Practice coding: Refresh your coding skills, especially if you’re rusty or unfamiliar with paired coding. Solve a few problems with varying difficulty using platforms like LeetCode. Continuously test your code. Focus on:
- Common data structures and algorithms (e.g., hash tables, trees, stacks).
- Data structures, particularly the ones used most often (e.g., arrays, stacks (or queues), hash tables, trees, graphs, and heaps).
- Runtime analysis (Big-O notation) and optimization techniques.
- Problem-solving approaches: Practice solving scenarios common in large-scale tech companies.
- Refresh yourself on Design & Architecture: Be prepared to discuss a project that highlights the complexity and scope of your role, including architectural components and design decision-making. Be ready to discuss trade-offs: Why was one technology chosen over another? What was the reasoning behind key decisions?
During your interview:
- Provide a solution on HackerRank: Be ready to write and explain your solution in a live coding environment.
- Ask clarifying questions: Analyze the problem and make sure that you fully understand it before jumping in. It’s OK to ask clarifying questions during the interview to make sure you understand the exact problem you are trying to solve. Also, breaking down the problem into smaller pieces can be helpful.
- Account for edge cases: Think through and address edge cases to show thorough problem analysis. One technique to write a better solution is to consider what you would catch if you were code reviewing your code.
- Communicate your thought process: Walk the interviewer through your reasoning as you solve the problem. Before implementing, discuss your proposed solution to ensure alignment.
- Keep things simple: If you find the solution getting excessively complex, step back and ask if there’s a simpler way to solve it. It may also be helpful to write everything out so you can see insights and bugs faster and make fewer mistakes.
- Test and debug: Continuously test your code and handle exceptions to confirm your solution works.
- Write clear, readable code: Use meaningful variable names and keep formatting consistent for easy understanding.
- Engage with follow-up questions: Be prepared to dive deeper into your solution and discuss alternative approaches or improvements.
Other:
- Reflect on impact: Think about the scope and results of your past roles and how they relate to solving problems at Uber.
- Review the job description: Identify relevant experiences from your background and prepare to showcase them during the interview.
- Prepare questions: Consider any role-specific or team-related questions to ask your interviewer.
Practice Questions:
- Interview 1: Software Engineering - Algorithms & Data Structures (Coding 1) (60 mins)
This interview evaluates your problem-solving abilities through coding exercises that demonstrate the appropriate use of algorithms and data structures, as well as idiomatic choices in your programming language. The problems are generic and not tied to a specific technical domain. You are expected to write testable code and clearly identify what you would test.
Coding language to prepare:
- Your choice. Choose your language wisely and ensure you're highly proficient in it.
How to prepare:
- Reflect on impact: Think about the scope and results of your past roles and how they relate to solving problems at Uber.
- Review the job description: Identify relevant experiences from your background and prepare to showcase them during the interview.
- Prepare questions: Consider any role-specific or team-related questions to ask your interviewer.
- Practice coding: Refresh your coding skills, especially if you’re rusty or unfamiliar with paired coding. Solve a few problems with varying difficulty using platforms like LeetCode.
- Strengthen your knowledge of key concepts: Review data structures like vectors, lists, maps/hash tables, trees, linked lists, stacks, queues, heaps, and graphs (e.g., DFS, BFS).
- Study algorithms: Research algorithms such as sorting, breadth-first search, depth-first search, binary search, and tree operations (insertion, deletion, and search).
- Understand Big-O notation: Familiarize yourself with how Big-O is used to calculate time and space complexity.
- Know your data structures: Familiarize yourself with the complexities for inserting, removing, and fetching elements in the data structures.
- Practice problem-solving: Write and debug code regularly to become proficient. Prepare test scenarios, especially for exception cases.
- Master your programming language: Know the syntax, conventions, and idiomatic usage of your chosen language. Focus on building fluency, as proficiency matters more than the specific language you choose.
During the interview:
- Provide a solution on HackerRank: Be ready to write and explain your solution in a live coding environment.
- Account for edge cases: Think through and address edge cases to show thorough problem analysis. One technique to write a better solution is to consider what you would catch if you were reviewing your code.
- Communicate your thought process: Walk the interviewer through your reasoning as you solve the problem. Before implementing, discuss your proposed solution to ensure alignment.
- Write clear, readable code: Use meaningful variable names and keep formatting consistent for easy understanding.
- Keep things simple: If you find the solution getting excessively complex, step back and ask if there’s a simpler way to solve it. It may also be helpful to write everything out so you can see insights and bugs faster and make fewer mistakes.
- Test and debug: Continuously test your code and handle exceptions to confirm your solution works.
- Engage with follow-up questions: Be prepared to dive deeper into your solution and discuss alternative approaches or improvements.
Practice questions:
- Interview 2: Software Engineering - Depth in Specialization (Coding 2 - ML Coding) (60 mins)This interview assesses your technical depth and expertise in your chosen area of specialization. You will write code to solve a problem similar to those you would encounter in the role. There are several types of questions, one of which is a modification to a project we provided, or implementing something from scratch.
Coding language to prepare:
- Any of your choice, but prioritize one that ensures an optimal solution delivered in the most efficient and timely manner.
How to prepare:
- Strengthen your knowledge of ML theory: Review foundational concepts such as overfitting, regularization, and other key algorithm details to solidify your understanding.
- Familiarize yourself with algorithms and problem-solving techniques: Ensure you can apply algorithms effectively and understand key principles for tackling coding challenges.
- Master key concepts: Build proficiency in your chosen programming language, including syntax, conventions, and idiomatic usage. Fluency matters more than the specific language.
- Practice debugging: Develop comfort with identifying and addressing bugs during problem-solving. Interviewers value candidates who can spot and fix errors effectively.
During your interview:
- Clarify the problem: Ask questions to fully understand the problem's requirements before starting to code.
- Communicate effectively: Explain your choices, decisions, and overall thought process as you work through the problem to help the interviewer follow your reasoning.
- Write clear, readable code: Use meaningful variable names, maintain consistent formatting, and focus on producing understandable and well-structured code.
- Test and debug: Continuously test your solution and handle exceptions to confirm it works correctly. Demonstrating strong debugging skills is a plus.
- Stay solution-oriented: Run your solution step-by-step, refining it as needed to meet the problem's requirements efficiently and effectively.
Practice Questions:
- Interview 3: Design & Architecture - New Problem (60 mins)
This interview focuses on your ability to design a machine learning solution end to end—from foundational ML concepts to how that solution could be deployed and maintained in production. You’ll work through a problem that may be new to you, but reflects the kind of real-world challenges engineers tackle at Uber. These could include designing systems like a ranking model, recommendation engine, optimization framework, pricing system, or promotions platform. You’re not expected to get everything perfect or know every tool. Instead, we’re looking for clear thinking, solid technical judgment, and the ability to break down complex problems into practical solutions that could scale in a production environment.
Coding language to prepare:
- Any of your choice, but prioritize one that ensures an optimal solution delivered in the most efficient and timely manner.
- Familiarize with your whiteboarding tool: You'll be using Miro or HackerRank for the whiteboarding session, and your recruiter will specify which. Practice creating diagrams to lead the discussion effectively and ensure smooth usage during the interview.
- Review the ML development process: Be ready to talk through steps like data ingestion, feature processing, model training, evaluation, deployment, and monitoring.
- Think about scaling early: Consider how your solution could be extended to handle large amounts of data, real-time updates, or millions of users.
- Prepare for trade-offs: Practice explaining how you'd choose between different approaches (e.g., accuracy vs. latency, batch vs. real-time inference).
- Structure your design: Break things down into logical, modular parts—this helps you explain clearly and adjust as needed.
- Stay grounded in impact: Consider how your design helps solve the problem, supports the product, and fits into a broader system.
- Understand the problem space: Ask clarifying questions to ensure you fully understand the requirements before diving into a solution.
- Communicate your thinking: Talk through your decisions, trade-offs, and assumptions. Your process is just as important as your solution.
- Start simple, then build: Begin with a basic version of your design and build up to a more complete, scalable solution.
- Keep maintainability in mind: Think about how this system would evolve, be monitored, or improved over time—not just how it works on day one.
- Be thoughtful about trade-offs: Show that you can weigh the pros and cons of different options and make decisions based on context.
- Use diagrams to support discussion: Sketching your system architecture helps both you and your interviewer stay aligned.
- Work collaboratively: Treat the session like a technical discussion with a teammate. Be open to feedback and adjust your ideas as the conversation progresses.
- Interview 4: Collaboration & Leadership (60 mins)
This interview evaluates your ability to build and sustain trusting, collaborative, and strategic relationships within and across teams or organizations, while working with integrity.
Coding Language to Prepare:
- N/A
Scope & Impact Expectation:
- Delivers one or more features from inception to production with minimal oversight.
How to prepare:
- Reflect on past projects: Identify key examples you want to share. Use the STAR format (Situation-Task-Action-Results) to structure your answers. Avoid hypothetical situations or lacking depth in your responses.
Be ready to discuss topics like:
- Your ability to work with determination and urgency.
- Collaboration within and across teams.
- Handling conflicts and leading projects end-to-end.
- Stakeholder management (e.g., working with Product, Data, or Design).
- Task prioritization and building trusting relationships.
- Examples of mentoring others and providing or receiving feedback.
- Decisión (virtual)
La persona que te reclute se reunirá con el panel de entrevistas para revisar tu desempeño en relación con las competencias del puesto y nuestros valores. El equipo colaborará en conjunto para llegar a una decisión y la persona que te reclute te contactará para informarte sobre el resultado. ¡Cruza los dedos!
- Habla con una persona encargada de reclutar o un especialista en búsqueda de talento (virtual | 30 min)
You’ll kick things off by meeting with a member of the Talent Acquisition team to talk about the role and your experience. This is a strategic conversation about how your background and technical skillset align with the position.
How to prepare:
- Craft your elevator pitch: Be ready to answer the classic "Tell me about yourself" question. Provide a clear, concise overview of your career, key technical projects, and top accomplishments.
- Know why Uber: Be prepared to explain why you’re excited about this role at Uber and how it aligns with your goals and values.
- Understand the role and context: Research the role you’re applying for, the market it supports, and the specific Uber business line. Understand how your skills align with the team’s needs.
- Know the technical stuff: Get ready to tackle technical questions on Big-O notation, CS fundamentals, and domain-specific topics.
- Prepare thoughtful questions: Have insightful questions ready to ask at the end of the interview, showing your genuine interest in the role and the company.
During your interview:
- Highlight key technical projects: Share examples of impactful projects you’ve worked on, focusing on technical challenges, your approach, and measurable outcomes.
- Demonstrate your understanding of core concepts: Be ready to talk about key engineering topics like scalability, clean architecture, or dependency injection, depending on the role’s focus.
- Ask clarifying questions: If you’re unsure about a question or expectation, don’t hesitate to ask. We appreciate candidates who seek clarity.
- Business (Technical) Phone Screen to Assess Coding + Design & Architecture Competencies (Online | 60 mins)This pair programming interview focuses on problem-solving using HackerRank, covering both Coding and Design & Architecture (D&A). Our goal is to evaluate your coding ability and better understand the complexity and scope of your prior projects using a D&A lens—not to conduct an exhaustive review of your technical depth or design expertise. This serves as an initial evaluation to determine if you qualify for the business interview rounds at the appropriate level.
Interview Structure:
- ~45 minutes: Coding
- ~15 minutes: Design & Architecture
Coding language to prepare:
- Your choice. Choose your language wisely and ensure you're highly proficient in it.
How to prepare:
- Practice coding: Refresh your coding skills, especially if you’re rusty or unfamiliar with paired coding. Solve a few problems with varying difficulty using platforms like LeetCode. Continuously test your code. Focus on:
- Common data structures and algorithms (e.g., hash tables, trees, stacks).
- Data structures, particularly the ones used most often (e.g., arrays, stacks (or queues), hash tables, trees, graphs, and heaps).
- Runtime analysis (Big-O notation) and optimization techniques.
- Problem-solving approaches: Practice solving scenarios common in large-scale tech companies.
- Refresh yourself on Design & Architecture: Be prepared to discuss a project that highlights the complexity and scope of your role, including architectural components and design decision-making. Be ready to discuss trade-offs: Why was one technology chosen over another? What was the reasoning behind key decisions?
During your interview:
- Provide a solution on HackerRank: Be ready to write and explain your solution in a live coding environment.
- Ask clarifying questions: Analyze the problem and make sure that you fully understand it before jumping in. It’s OK to ask clarifying questions during the interview to make sure you understand the exact problem you are trying to solve. Also, breaking down the problem into smaller pieces can be helpful.
- Account for edge cases: Think through and address edge cases to show thorough problem analysis. One technique to write a better solution is to consider what you would catch if you were code reviewing your code.
- Communicate your thought process: Walk the interviewer through your reasoning as you solve the problem. Before implementing, discuss your proposed solution to ensure alignment.
- Keep things simple: If you find the solution getting excessively complex, step back and ask if there’s a simpler way to solve it. It may also be helpful to write everything out so you can see insights and bugs faster and make fewer mistakes.
- Test and debug: Continuously test your code and handle exceptions to confirm your solution works.
- Write clear, readable code: Use meaningful variable names and keep formatting consistent for easy understanding.
- Engage with follow-up questions: Be prepared to dive deeper into your solution and discuss alternative approaches or improvements.
Other:
- Reflect on impact: Think about the scope and results of your past roles and how they relate to solving problems at Uber.
- Review the job description: Identify relevant experiences from your background and prepare to showcase them during the interview.
- Prepare questions: Consider any role-specific or team-related questions to ask your interviewer.
Practice Questions:
- Interview 1: Software Engineering - Algorithms & Data Structures (Coding 1) (60 mins)
This interview evaluates your problem-solving abilities through coding exercises that demonstrate the appropriate use of algorithms and data structures, as well as idiomatic choices in your programming language. The problems are generic and not tied to a specific technical domain. You are expected to write testable code and clearly identify what you would test.
Coding language to prepare:
- Your choice. Choose your language wisely and ensure you're highly proficient in it.
How to prepare:
- Reflect on impact: Think about the scope and results of your past roles and how they relate to solving problems at Uber.
- Review the job description: Identify relevant experiences from your background and prepare to showcase them during the interview.
- Prepare questions: Consider any role-specific or team-related questions to ask your interviewer.
- Practice coding: Refresh your coding skills, especially if you’re rusty or unfamiliar with paired coding. Solve a few problems with varying difficulty using platforms like LeetCode.
- Strengthen your knowledge of key concepts: Review data structures like vectors, lists, maps/hash tables, trees, linked lists, stacks, queues, heaps, and graphs (e.g., DFS, BFS).
- Study algorithms: Research algorithms such as sorting, breadth-first search, depth-first search, binary search, and tree operations (insertion, deletion, and search).
- Understand Big-O notation: Familiarize yourself with how Big-O is used to calculate time and space complexity.
- Know your data structures: Familiarize yourself with the complexities for inserting, removing, and fetching elements in the data structures.
- Practice problem-solving: Write and debug code regularly to become proficient. Prepare test scenarios, especially for exception cases.
- Master your programming language: Know the syntax, conventions, and idiomatic usage of your chosen language. Focus on building fluency, as proficiency matters more than the specific language you choose.
During the interview:
- Provide a solution on HackerRank: Be ready to write and explain your solution in a live coding environment.
- Account for edge cases: Think through and address edge cases to show thorough problem analysis. One technique to write a better solution is to consider what you would catch if you were code reviewing your code.
- Communicate your thought process: Walk the interviewer through your reasoning as you solve the problem. Before implementing, discuss your proposed solution to ensure alignment.
- Write clear, readable code: Use meaningful variable names and keep formatting consistent for easy understanding.
- Keep things simple: If you find the solution getting excessively complex, step back and ask if there’s a simpler way to solve it. It may also be helpful to write everything out so you can see insights and bugs faster and make fewer mistakes.
- Test and debug: Continuously test your code and handle exceptions to confirm your solution works.
- Engage with follow-up questions: Be prepared to dive deeper into your solution and discuss alternative approaches or improvements.
Practice questions:
- Interview 2: Software Engineering - Depth in Specialization (Coding 2 - ML Coding) (60 mins)This interview assesses your technical depth and expertise in your chosen area of specialization. You will write code to solve a problem similar to those you would encounter in the role. There are several types of questions, one of which is a modification to a project we provided, or implementing something from scratch.
Coding language to prepare:
- Any of your choice, but prioritize one that ensures an optimal solution delivered in the most efficient and timely manner.
How to prepare:
- Strengthen your knowledge of ML theory: Review foundational concepts such as overfitting, regularization, and other key algorithm details to solidify your understanding.
- Familiarize yourself with algorithms and problem-solving techniques: Ensure you can apply algorithms effectively and understand key principles for tackling coding challenges.
- Master key concepts: Build proficiency in your chosen programming language, including syntax, conventions, and idiomatic usage. Fluency matters more than the specific language.
- Practice debugging: Develop comfort with identifying and addressing bugs during problem-solving. Interviewers value candidates who can spot and fix errors effectively.
During your interview:
- Clarify the problem: Ask questions to fully understand the problem's requirements before starting to code.
- Communicate effectively: Explain your choices, decisions, and overall thought process as you work through the problem to help the interviewer follow your reasoning.
- Write clear, readable code: Use meaningful variable names, maintain consistent formatting, and focus on producing understandable and well-structured code.
- Test and debug: Continuously test your solution and handle exceptions to confirm it works correctly. Demonstrating strong debugging skills is a plus.
- Stay solution-oriented: Run your solution step-by-step, refining it as needed to meet the problem's requirements efficiently and effectively.
Practice Questions:
- Interview 3: Design & Architecture - New Problem (60 mins)
This interview focuses on how you design a machine learning solution end to end—from core ML concepts to productionization. You’ll be asked to work on a problem that may be new to you, but reflects the types of challenges we solve at Uber. These are often large-scale, high-impact systems like ranking engines, recommendation platforms, optimization frameworks, pricing models, or promotions systems. We’re looking for more than just technical correctness—you’re expected to think like a tech lead: balancing engineering execution with strategic thinking. This means designing systems that are not only functional, but also scalable, maintainable, and product-ready in real-world conditions at Uber’s scale.
Coding language to prepare:
- Any of your choice, but prioritize one that ensures an optimal solution delivered in the most efficient and timely manner.
- Familiarize with your whiteboarding tool: You'll be using Miro or HackerRank for the whiteboarding session, and your recruiter will specify which. Practice creating diagrams to lead the discussion effectively and ensure smooth usage during the interview.
- Review the full ML lifecycle: Be comfortable walking through data collection, feature engineering, model training, evaluation, deployment, and monitoring.
- Think about scale: Consider how your design would handle millions of users, real-time data updates, and global product variability.
- Design for long-term readiness: Identify system bottlenecks, failure points, and ways to ensure maintainability and extensibility over time.
- Practice system breakdowns: Structure your design around modular components (e.g., data ingestion, preprocessing, training, serving, feedback loop).
- Connect design to outcomes: Understand how your choices impact user experience, latency, experimentation, and business goals.
- Understand the problem space: Clarify the functional and non-functional requirements. Ask thoughtful questions to align on goals, constraints, and success metrics before diving into design.
- Communicate your thinking: Share your rationale as you build your solution. Talk through trade-offs, assumptions, and priorities as you outline the system.
- Design for scale: Start with a basic solution, then evolve it to handle Uber-level complexity—millions of users, real-time data, and regional variability.
- Think long-term: Consider maintainability, extensibility, and how the system would evolve post-launch. Don’t just solve for today—design for the next version too.
- Balance trade-offs: Discuss alternatives thoughtfully (e.g., batch vs. real-time, complexity vs. interpretability) and explain your decision-making.
- Use visuals effectively: Guide the discussion with clear, structured diagrams. Your ability to map out system components and data flows helps ground the conversation.
- Engage like a tech lead: Collaborate with your interviewer, respond to feedback, and demonstrate how you approach system-level decisions with product readiness in mind.
- Interview 4: Design & Architecture - Previously Solved Problem + Collaboration & Leadership (75 mins)
This interview assesses a past project you have worked on, what your contributions were, and dives deep into the technical challenges, intricacies, and architecture. Be prepared to discuss a complex project that you have worked on from start to finish.
This interview also evaluates your ability to build and sustain trusting, collaborative, and strategic relationships within and across teams or organizations, while working with integrity.
Design & Architecture - Previously Solved Problem:
Coding language to prepare:
- N/A
How to prepare:
- Have a project ready to discuss: Choose a recent or highly relevant ML project that demonstrates your ability to design a scalable and technically complex architecture. Ensure it showcases your skills and highlights the role you played in the design process.
- Prepare ahead: Prepare your ML architecture design in Miro or HackerRank ahead of time. The interview will use either virtual whiteboard tool and your Recruiter will specify which
- Be ready to:
- Explain the project objectives, challenges, and the overall direction of your solution.
- Identify and justify the technologies used in the project.
- Detail your role in the architecture’s composition and implementation.
- Break down the components of the architecture and explain their specific purposes.
- Reflect on the trade-offs made during the project, such as:
- Why certain technologies were chosen over others.
- The rationale behind key architectural decisions.
- How these trade-offs impacted scalability, performance, and complexity.
During your interview:
- Present the project: Use your pre-prepared diagram to visually explain the architecture. Clearly articulate the project’s goals, challenges, and your approach to solving them.
- Demonstrate technical expertise: Discuss the technologies used, their benefits, and why they were the best fit for the project. Highlight your specific contributions and decisions in the design and implementation phases.
- Discuss trade-offs: Share the alternatives considered and explain the trade-offs made (e.g., performance vs. cost, complexity vs. scalability). Describe how these decisions impacted the overall architecture.
- Explain architecture components: Walk through each component of the architecture and justify its role in the system. Showcase how the components interact to ensure scalability, performance, and reliability.
- Think long-term: You may be asked to speak to organizational impact, long-term vision, and cross-functional leadership.
Collaboration & Leadership:
Coding language to prepare:
- N/A
Scope & impact expectation:
- Delivers multiple projects from inception to production readiness.
How to prepare:
- Reflect on past projects: Identify key examples you want to share. Use the STAR format (Situation-Task-Action-Results) to structure your answers. Avoid hypothetical situations or lacking depth in your responses.
Be ready to discuss topics like:
- Your ability to work with determination and urgency.
- Collaboration within and across teams.
- Handling conflicts and leading projects end-to-end.
- Stakeholder management (e.g., working with Product, Data, or Design).
- Task prioritization and building trusting relationships.
- Examples of mentoring others and providing or receiving feedback.
- Decisión (virtual)
La persona que te reclute se reunirá con el panel de entrevistas para revisar tu desempeño en relación con las competencias del puesto y nuestros valores. El equipo colaborará en conjunto para llegar a una decisión y la persona que te reclute te contactará para informarte sobre el resultado. ¡Cruza los dedos!
- Habla con una persona encargada de reclutar o un especialista en búsqueda de talento (virtual | 30 min)
You’ll kick things off by meeting with a member of the Talent Acquisition team to talk about the role and your experience. This is a strategic conversation about how your background and technical skillset align with the position.
How to prepare:
- Craft your elevator pitch: Be ready to answer the classic "Tell me about yourself" question. Provide a clear, concise overview of your career, key technical projects, and top accomplishments.
- Know why Uber: Be prepared to explain why you’re excited about this role at Uber and how it aligns with your goals and values.
- Understand the role and context: Research the role you’re applying for, the market it supports, and the specific Uber business line. Understand how your skills align with the team’s needs.
- Know the technical stuff: Get ready to tackle technical questions on Big-O notation, CS fundamentals, and domain-specific topics.
- Prepare thoughtful questions: Have insightful questions ready to ask at the end of the interview, showing your genuine interest in the role and the company.
During your interview:
- Highlight key technical projects: Share examples of impactful projects you’ve worked on, focusing on technical challenges, your approach, and measurable outcomes.
- Demonstrate your understanding of core concepts: Be ready to talk about key engineering topics like scalability, clean architecture, or dependency injection, depending on the role’s focus.
- Ask clarifying questions: If you’re unsure about a question or expectation, don’t hesitate to ask. We appreciate candidates who seek clarity.
- Business (Technical) Phone Screen to Assess Coding + Design & Architecture Competencies (Online | 60 mins)This pair programming interview focuses on problem-solving using HackerRank, covering both Coding and Design & Architecture (D&A). Our goal is to evaluate your coding ability and better understand the complexity and scope of your prior projects using a D&A lens—not to conduct an exhaustive review of your technical depth or design expertise. This serves as an initial evaluation to determine if you qualify for the business interview rounds at the appropriate level.
Interview Structure:
- ~45 minutes: Coding
- ~15 minutes: Design & Architecture
Coding language to prepare:
- Your choice. Choose your language wisely and ensure you're highly proficient in it.
How to prepare:
- Practice coding: Refresh your coding skills, especially if you’re rusty or unfamiliar with paired coding. Solve a few problems with varying difficulty using platforms like LeetCode. Continuously test your code. Focus on:
- Common data structures and algorithms (e.g., hash tables, trees, stacks).
- Data structures, particularly the ones used most often (e.g., arrays, stacks (or queues), hash tables, trees, graphs, and heaps).
- Runtime analysis (Big-O notation) and optimization techniques.
- Problem-solving approaches: Practice solving scenarios common in large-scale tech companies.
- Refresh yourself on Design & Architecture: Be prepared to discuss a project that highlights the complexity and scope of your role, including architectural components and design decision-making. Be ready to discuss trade-offs: Why was one technology chosen over another? What was the reasoning behind key decisions?
During your interview:
- Provide a solution on HackerRank: Be ready to write and explain your solution in a live coding environment.
- Ask clarifying questions: Analyze the problem and make sure that you fully understand it before jumping in. It’s OK to ask clarifying questions during the interview to make sure you understand the exact problem you are trying to solve. Also, breaking down the problem into smaller pieces can be helpful.
- Account for edge cases: Think through and address edge cases to show thorough problem analysis. One technique to write a better solution is to consider what you would catch if you were code reviewing your code.
- Communicate your thought process: Walk the interviewer through your reasoning as you solve the problem. Before implementing, discuss your proposed solution to ensure alignment.
- Keep things simple: If you find the solution getting excessively complex, step back and ask if there’s a simpler way to solve it. It may also be helpful to write everything out so you can see insights and bugs faster and make fewer mistakes.
- Test and debug: Continuously test your code and handle exceptions to confirm your solution works.
- Write clear, readable code: Use meaningful variable names and keep formatting consistent for easy understanding.
- Engage with follow-up questions: Be prepared to dive deeper into your solution and discuss alternative approaches or improvements.
Other:
- Reflect on impact: Think about the scope and results of your past roles and how they relate to solving problems at Uber.
- Review the job description: Identify relevant experiences from your background and prepare to showcase them during the interview.
- Prepare questions: Consider any role-specific or team-related questions to ask your interviewer.
Practice Questions:
- Interview 1: Software Engineering - Algorithms & Data Structures (Coding 1) (60 mins)
This interview evaluates your problem-solving abilities through coding exercises that demonstrate the appropriate use of algorithms and data structures, as well as idiomatic choices in your programming language. The problems are generic and not tied to a specific technical domain. You are expected to write testable code and clearly identify what you would test.
Coding language to prepare:
- Your choice. Choose your language wisely and ensure you're highly proficient in it.
How to prepare:
- Reflect on impact: Think about the scope and results of your past roles and how they relate to solving problems at Uber.
- Review the job description: Identify relevant experiences from your background and prepare to showcase them during the interview.
- Prepare questions: Consider any role-specific or team-related questions to ask your interviewer.
- Practice coding: Refresh your coding skills, especially if you’re rusty or unfamiliar with paired coding. Solve a few problems with varying difficulty using platforms like LeetCode.
- Strengthen your knowledge of key concepts: Review data structures like vectors, lists, maps/hash tables, trees, linked lists, stacks, queues, heaps, and graphs (e.g., DFS, BFS).
- Study algorithms: Research algorithms such as sorting, breadth-first search, depth-first search, binary search, and tree operations (insertion, deletion, and search).
- Understand Big-O notation: Familiarize yourself with how Big-O is used to calculate time and space complexity.
- Know your data structures: Familiarize yourself with the complexities for inserting, removing, and fetching elements in the data structures.
- Practice problem-solving: Write and debug code regularly to become proficient. Prepare test scenarios, especially for exception cases.
- Master your programming language: Know the syntax, conventions, and idiomatic usage of your chosen language. Focus on building fluency, as proficiency matters more than the specific language you choose.
During the interview:
- Provide a solution on HackerRank: Be ready to write and explain your solution in a live coding environment.
- Account for edge cases: Think through and address edge cases to show thorough problem analysis. One technique to write a better solution is to consider what you would catch if you were code reviewing your code.
- Communicate your thought process: Walk the interviewer through your reasoning as you solve the problem. Before implementing, discuss your proposed solution to ensure alignment.
- Write clear, readable code: Use meaningful variable names and keep formatting consistent for easy understanding.
- Keep things simple: If you find the solution getting excessively complex, step back and ask if there’s a simpler way to solve it. It may also be helpful to write everything out so you can see insights and bugs faster and make fewer mistakes.
- Test and debug: Continuously test your code and handle exceptions to confirm your solution works.
- Engage with follow-up questions: Be prepared to dive deeper into your solution and discuss alternative approaches or improvements.
Practice questions:
- Interview 2: Software Engineering - Depth in Specialization (Coding 2 - ML Coding) (60 mins)This interview assesses your technical depth and expertise in your chosen area of specialization. You will write code to solve a problem similar to those you would encounter in the role. There are several types of questions, one of which is a modification to a project we provided, or implementing something from scratch.
Coding language to prepare:
- Any of your choice, but prioritize one that ensures an optimal solution delivered in the most efficient and timely manner.
How to prepare:
- Strengthen your knowledge of ML theory: Review foundational concepts such as overfitting, regularization, and other key algorithm details to solidify your understanding.
- Familiarize yourself with algorithms and problem-solving techniques: Ensure you can apply algorithms effectively and understand key principles for tackling coding challenges.
- Master key concepts: Build proficiency in your chosen programming language, including syntax, conventions, and idiomatic usage. Fluency matters more than the specific language.
- Practice debugging: Develop comfort with identifying and addressing bugs during problem-solving. Interviewers value candidates who can spot and fix errors effectively.
During your interview:
- Clarify the problem: Ask questions to fully understand the problem's requirements before starting to code.
- Communicate effectively: Explain your choices, decisions, and overall thought process as you work through the problem to help the interviewer follow your reasoning.
- Write clear, readable code: Use meaningful variable names, maintain consistent formatting, and focus on producing understandable and well-structured code.
- Test and debug: Continuously test your solution and handle exceptions to confirm it works correctly. Demonstrating strong debugging skills is a plus.
- Stay solution-oriented: Run your solution step-by-step, refining it as needed to meet the problem's requirements efficiently and effectively.
Practice Questions:
- Interview 3: Collaboration & Leadership (60 mins)
This interview evaluates your ability to build and sustain trusting, collaborative, and strategic relationships within and across teams or organizations, while working with integrity.
Coding Language to Prepare:
- N/A
How to prepare:
- Reflect on past projects: Identify key examples you want to share. Use the STAR format (Situation-Task-Action-Results) to structure your answers. Avoid hypothetical situations or lacking depth in your responses.
Be ready to discuss topics like:
- Your ability to work with determination and urgency.
- Collaboration within and across teams.
- Handling conflicts and leading projects end-to-end.
- Stakeholder management (e.g., working with Product, Data, or Design).
- Task prioritization and building trusting relationships.
- Examples of mentoring others and providing or receiving feedback.
- Interview 4: Design & Architecture - New Problem (60 mins)
This interview focuses on how you design a machine learning solution end to end—from core ML concepts to productionization. You’ll be asked to work on a problem that may be new to you, but reflects the types of challenges we solve at Uber. These are often large-scale, high-impact systems like ranking engines, recommendation platforms, optimization frameworks, pricing models, or promotions systems. We’re looking for more than just technical correctness—you’re expected to think like a tech lead: balancing engineering execution with strategic thinking. This means designing systems that are not only functional, but also scalable, maintainable, and product-ready in real-world conditions at Uber’s scale.
Coding language to prepare:
- Any of your choice, but prioritize one that ensures an optimal solution delivered in the most efficient and timely manner.
- Familiarize with your whiteboarding tool: You'll be using Miro or HackerRank for the whiteboarding session, and your recruiter will specify which. Practice creating diagrams to lead the discussion effectively and ensure smooth usage during the interview.
- Review the full ML lifecycle: Be comfortable walking through data collection, feature engineering, model training, evaluation, deployment, and monitoring.
- Think about scale: Consider how your design would handle millions of users, real-time data updates, and global product variability.
- Design for long-term readiness: Identify system bottlenecks, failure points, and ways to ensure maintainability and extensibility over time.
- Practice system breakdowns: Structure your design around modular components (e.g., data ingestion, preprocessing, training, serving, feedback loop).
- Connect design to outcomes: Understand how your choices impact user experience, latency, experimentation, and business goals.
- Understand the problem space: Clarify the functional and non-functional requirements. Ask thoughtful questions to align on goals, constraints, and success metrics before diving into design.
- Communicate your thinking: Share your rationale as you build your solution. Talk through trade-offs, assumptions, and priorities as you outline the system.
- Design for scale: Start with a basic solution, then evolve it to handle Uber-level complexity—millions of users, real-time data, and regional variability.
- Think long-term: Consider maintainability, extensibility, and how the system would evolve post-launch. Don’t just solve for today—design for the next version too.
- Balance trade-offs: Discuss alternatives thoughtfully (e.g., batch vs. real-time, complexity vs. interpretability) and explain your decision-making.
- Use visuals effectively: Guide the discussion with clear, structured diagrams. Your ability to map out system components and data flows helps ground the conversation.
- Engage like a tech lead: Collaborate with your interviewer, respond to feedback, and demonstrate how you approach system-level decisions with product readiness in mind.
- Interview 5: Design & Architecture - Previously Solved Problem + Impact - Efficiency & Quality (60 mins)
In this interview, we discuss your past work in your domain, focusing on how you scaled yourself and the organization by improving productivity, enhancing quality, and making others better. You will explain how systems were designed for long-term extensibility, how you led efforts to leverage and improve existing solutions, and the broader impact of your work. In addition, this interview assesses a past project you have worked on, what your contributions were, and dives deep into the technical challenges, intricacies, and architecture. Be prepared to discuss a complex project that you have worked on from start to finish.
Design & Architecture - Previously Solved Problem:
This interview assesses a past project you have worked on, what your contributions were, and dives deep into the technical challenges, intricacies, and architecture. Be prepared to discuss a complex project that you have worked on from start to finish.
Coding language to prepare:
- N/A
How to prepare:
- Have a project ready to discuss: Choose a recent or highly relevant ML project that demonstrates your ability to design a scalable and technically complex architecture. Ensure it showcases your skills and highlights the role you played in the design process.
- Prepare ahead: Prepare your ML architecture design in Miro or HackerRank ahead of time. The interview will use either virtual whiteboard tool and your Recruiter will specify which
- Be ready to:
- Explain the project objectives, challenges, and the overall direction of your solution.
- Identify and justify the technologies used in the project.
- Detail your role in the architecture’s composition and implementation.
- Break down the components of the architecture and explain their specific purposes.
- Reflect on the trade-offs made during the project, such as:
- Why certain technologies were chosen over others.
- The rationale behind key architectural decisions.
- How these trade-offs impacted scalability, performance, and complexity.
During your interview:
- Present the project: Use your pre-prepared diagram to visually explain the architecture. Clearly articulate the project’s goals, challenges, and your approach to solving them.
- Demonstrate technical expertise: Discuss the technologies used, their benefits, and why they were the best fit for the project. Highlight your specific contributions and decisions in the design and implementation phases.
- Discuss trade-offs: Share the alternatives considered and explain the trade-offs made (e.g., performance vs. cost, complexity vs. scalability). Describe how these decisions impacted the overall architecture.
- Explain architecture components: Walk through each component of the architecture and justify its role in the system. Showcase how the components interact to ensure scalability, performance, and reliability.
- Think long-term: You may be asked to speak to organizational impact, long-term vision, and cross-functional leadership.
Problem + Impact - Efficiency & Quality
Coding languages to prepare:
- N/A
How to prepare:
- Reflect on specific examples where you’ve scaled yourself and your organization by:
- Making others better: Examples of mentoring, coaching, or improving team collaboration.
- Improving productivity: Initiatives or strategies that increased efficiency for you or the team.
- Raising quality: Efforts to enhance the quality of work produced by the team or organization.
- Identify instances where you:
- Built or influenced systems designed for long-term extensibility.
- Leveraged and improved existing solutions to create scalable and impactful outcomes.
During your interview:
- Showcase your impact:
- Share concrete examples of how you scaled your contributions and made a measurable difference for the organization.
- Highlight how your efforts improved team performance, collaboration, and output quality.
- Discuss long-term solutions:
- Explain how you built systems for extensibility and ensured solutions were sustainable and adaptable.
- Provide examples of leveraging and enhancing existing systems for greater efficiency and scalability.
- Communicate leadership:
- Highlight your role in leading efforts to raise team standards, enable growth, and create scalable processes.
- Share how you mentored or influenced others to improve their skills and productivity.
- Frame around organizational impact: Tie your examples back to organizational priorities, showing how your actions positively affected your manager’s sub-tree and beyond.
- Decisión (virtual)
La persona que te reclute se reunirá con el panel de entrevistas para revisar tu desempeño en relación con las competencias del puesto y nuestros valores. El equipo colaborará en conjunto para llegar a una decisión y la persona que te reclute te contactará para informarte sobre el resultado. ¡Cruza los dedos!
- Habla con una persona encargada de reclutar o un especialista en búsqueda de talento (virtual | 30 min)
You’ll kick things off by meeting with a member of the Talent Acquisition team to talk about the role and your experience. This is a strategic conversation about how your background and technical skillset align with the position.
How to prepare:
- Craft your elevator pitch: Be ready to answer the classic "Tell me about yourself" question. Provide a clear, concise overview of your career, key technical projects, and top accomplishments.
- Know why Uber: Be prepared to explain why you’re excited about this role at Uber and how it aligns with your goals and values.
- Understand the role and context: Research the role you’re applying for, the market it supports, and the specific Uber business line. Understand how your skills align with the team’s needs.
- Know the technical stuff: Get ready to tackle technical questions on Big-O notation, CS fundamentals, and domain-specific topics.
- Prepare thoughtful questions: Have insightful questions ready to ask at the end of the interview, showing your genuine interest in the role and the company.
During your interview:
- Highlight key technical projects: Share examples of impactful projects you’ve worked on, focusing on technical challenges, your approach, and measurable outcomes.
- Demonstrate your understanding of core concepts: Be ready to talk about key engineering topics like scalability, clean architecture, or dependency injection, depending on the role’s focus.
- Ask clarifying questions: If you’re unsure about a question or expectation, don’t hesitate to ask. We appreciate candidates who seek clarity.
- Business phone screen (Hiring Manager on Scope and Impact) (60 min)
This interview evaluates your leadership, scope of experience, and alignment with Uber's mission. It’s an opportunity to learn about the team and its challenges.
Coding language to prepare:
- N/A
How to prepare:
- Leadership & Impact: Reflect on projects where you led teams or initiatives. Use the STAR format to describe the project scope, challenges, strategies, and outcomes. Highlight resilience, a commitment to making an impact, and instances where you were directly responsible for multiple projects from inception to production readiness.
- Understanding the Role and Team: Prepare specific questions about team goals, technical challenges, and cultural dynamics to show your deep interest in the role.
During your interview:
- Align your experience with Uber’s values:
- One Uber: Share examples where you prioritized company success over individual or team achievements.
- Great Minds Don’t Think Alike: Discuss how diversity shaped your leadership or projects.
- Do the Right Thing: Highlight moments of ethical decision-making.
- Business phone screen (Technical Architecture) (60 mins)
This interview focuses on your technical depth and breadth, especially in design and architecture. You’ll analyze project complexity, trade-offs, and lessons learned.
Coding language to prepare:
- N/A
How to prepare:
- Design & architecture deep dive: Select significant projects to showcase your ability to handle complex challenges. Discuss design decisions, their rationale, and their impact on project success.
During your interview:
- Align your experience with Uber’s Values:
- Build with Heart and Stand for Safety: Illustrate how your technical choices improved user experience and safety.
- Trip Obsessed: Highlight how you simplified complexity to deliver impactful outcomes.
- One Uber: Showcase collaborative efforts leading to project success.
- Emphasize your ability to adapt: Focus on how you use tools and approaches to solve diverse challenges rather than limiting yourself to specific programming languages.
- Problem-Solving Skills: Clearly articulate your thought process when solving problems. Acknowledge mistakes and demonstrate adaptability.
- Interview 1: Software Engineering - Algorithms & Data Structures (Coding 1) (60 mins)
This interview evaluates your problem-solving abilities. Through coding exercises, you'll demonstrate the appropriate use of algorithms and data structures, as well as idiomatic choices in your programming language. The problems are generic and not tied to a specific technical domain. You are expected to write testable code and clearly identify what you would test.
Coding Language to Prepare:
- Your choice. Choose your language wisely and ensure you're highly proficient in it.
How to Prepare:
- Reflect on impact: Think about the scope and results of your past roles and how they relate to solving problems at Uber.
- Review the job description: Identify relevant experiences from your background and prepare to showcase them during the interview.
- Prepare questions: Consider any role-specific or team-related questions to ask your interviewer.
- Practice coding: Refresh your coding skills, especially if you’re rusty or unfamiliar with paired coding. Solve a few problems with varying difficulty using platforms like LeetCode. Focus on:
- Common data structures and algorithms (e.g., hash tables, trees, stacks).
- Runtime analysis (Big-O notation) and optimization techniques.
- Problem-solving approaches for scenarios common in large-scale tech companies.
During the interview:
- Provide a solution on CodeSignal: Be ready to write and explain your solution in a live coding environment.
- Account for edge cases: Think through and address edge cases to show thorough problem analysis. One technique to write a better solution is to consider what you would catch if you were reviewing your code.
- Communicate your thought process: Walk the interviewer through your reasoning as you solve the problem. Before implementing, discuss your proposed solution to ensure alignment.
- Write clear, readable code: Use meaningful variable names and keep formatting consistent for easy understanding.
- Engage with follow-up questions: Be prepared to dive deeper into your solution and discuss alternative approaches or improvements.
- Interview 2: Software Engineering - Depth in Specialization (Coding 2 - ML Coding) (60 mins)This interview assesses your technical depth and expertise in your chosen area of specialization. You will write code to solve a problem similar to those you would encounter in the role. There are several types of questions, one of which is a modification to a project we provided, or implementing something from scratch.
Coding language to prepare:
Any of your choice, but prioritize one that ensures an optimal solution delivered in the most efficient and timely manner.
How to prepare:
- Strengthen your knowledge of ML theory: Review foundational concepts such as overfitting, regularization, and other key algorithm details to solidify your understanding.
- Familiarize yourself with algorithms and problem-solving techniques: Ensure you can apply algorithms effectively and understand key principles for tackling coding challenges.
- Master key concepts: Build proficiency in your chosen programming language, including syntax, conventions, and idiomatic usage. Fluency matters more than the specific language.
- Practice debugging: Develop comfort with identifying and addressing bugs during problem-solving. Interviewers value candidates who can spot and fix errors effectively.
During your interview:
- Clarify the problem: Ask questions to fully understand the problem's requirements before starting to code.
- Communicate effectively: Explain your choices, decisions, and overall thought process as you work through the problem to help the interviewer follow your reasoning.
- Write clear, readable code: Use meaningful variable names, maintain consistent formatting, and focus on producing understandable and well-structured code.
- Test and debug: Continuously test your solution and handle exceptions to confirm it works correctly. Demonstrating strong debugging skills is a plus.
- Stay solution-oriented: Run your solution step-by-step, refining it as needed to meet the problem's requirements efficiently and effectively.
Practice Questions:
- Interview 3: Design & Architecture - Previously Solved Problem (60 min)
This interview assesses a past project you have worked on, what your contributions were, and dives deep into the technical challenges, intricacies, and architecture. Be prepared to discuss a complex project that you have worked on from start to finish.
Coding language to prepare:
- N/A
How to prepare:
- Have a project ready to discuss: Choose a recent or highly relevant ML project that demonstrates your ability to design a scalable and technically complex architecture. Ensure it showcases your skills and highlights the role you played in the design process.
- Prepare ahead: Prepare your architecture design in Miro or HackerRank ahead of time. The interview will use either virtual whiteboard tool and your Recruiter will specify which
- Be ready to:
- Explain the project objectives, challenges, and the overall direction of your solution.
- Identify and justify the technologies used in the project.
- Detail your role in the architecture’s composition and implementation.
- Break down the components of the architecture and explain their specific purposes.
- Reflect on the trade-offs made during the project, such as:
- Why certain technologies were chosen over others.
- The rationale behind key architectural decisions.
- How these trade-offs impacted scalability, performance, and complexity.
During your interview:
- Present the project: Use your pre-prepared diagram to visually explain the architecture. Clearly articulate the project’s goals, challenges, and your approach to solving them.
- Demonstrate technical expertise: Discuss the technologies used, their benefits, and why they were the best fit for the project. Highlight your specific contributions and decisions in the design and implementation phases.
- Discuss trade-offs: Share the alternatives considered and explain the trade-offs made (e.g., performance vs. cost, complexity vs. scalability). Describe how these decisions impacted the overall architecture.
- Explain architecture components: Walk through each component of the architecture and justify its role in the system. Showcase how the components interact to ensure scalability, performance, and reliability.
- Think long-term: You may be asked to speak to organizational impact, long-term vision, and cross-functional leadership.
- Interview 4: Design & Architecture - New Problem (60 min)
This interview focuses on how you design a machine learning solution end to end—from core ML concepts to productionization. You’ll be asked to work on a problem that may be new to you, but reflects the types of challenges we solve at Uber. These are often large-scale, high-impact systems like ranking engines, recommendation platforms, optimization frameworks, pricing models, or promotions systems. We’re looking for more than just technical correctness—you’re expected to think like a tech lead: balancing engineering execution with strategic thinking. This means designing systems that are not only functional, but also scalable, maintainable, and product-ready in real-world conditions at Uber’s scale.
Coding language to prepare:
- Any of your choice, but prioritize one that ensures an optimal solution delivered in the most efficient and timely manner.
- Familiarize with your whiteboarding tool: You'll be using Miro or HackerRank for the whiteboarding session, and your recruiter will specify which. Practice creating diagrams to lead the discussion effectively and ensure smooth usage during the interview.
- Review the full ML lifecycle: Be comfortable walking through data collection, feature engineering, model training, evaluation, deployment, and monitoring.
- Think about scale: Consider how your design would handle millions of users, real-time data updates, and global product variability.
- Design for long-term readiness: Identify system bottlenecks, failure points, and ways to ensure maintainability and extensibility over time.
- Practice system breakdowns: Structure your design around modular components (e.g., data ingestion, preprocessing, training, serving, feedback loop).
- Connect design to outcomes: Understand how your choices impact user experience, latency, experimentation, and business goals.
- Understand the problem space: Clarify the functional and non-functional requirements. Ask thoughtful questions to align on goals, constraints, and success metrics before diving into design.
- Communicate your thinking: Share your rationale as you build your solution. Talk through trade-offs, assumptions, and priorities as you outline the system.
- Design for scale: Start with a basic solution, then evolve it to handle Uber-level complexity—millions of users, real-time data, and regional variability.
- Think long-term: Consider maintainability, extensibility, and how the system would evolve post-launch. Don’t just solve for today—design for the next version too.
- Balance trade-offs: Discuss alternatives thoughtfully (e.g., batch vs. real-time, complexity vs. interpretability) and explain your decision-making.
- Use visuals effectively: Guide the discussion with clear, structured diagrams. Your ability to map out system components and data flows helps ground the conversation.
- Engage like a tech lead: Collaborate with your interviewer, respond to feedback, and demonstrate how you approach system-level decisions with product readiness in mind.
- Interview 5: Collaboration & Leadership (60 min)
This interview evaluates your ability to build and sustain trusting, collaborative, and strategic relationships within and across teams or organizations, while working with integrity.
Coding Language to Prepare:
- N/A
How to prepare:
- Reflect on past projects: Identify key examples you want to share. Use the STAR format (Situation-Task-Action-Results) to structure your answers. Avoid hypothetical situations or lacking depth in your responses.
Be ready to discuss topics like:
- Your ability to work with determination and urgency.
- Collaboration within and across teams.
- Handling conflicts and leading projects end-to-end.
- Stakeholder management (e.g., working with Product, Data, or Design).
- Task prioritization and building trusting relationships.
- Examples of mentoring others and providing or receiving feedback.
- Interview 6: Impact - Efficiency & Quality (60 mins)
In this interview, we assess how you scale yourself and the organization by making others better, enhancing productivity, and raising the quality of what the organization produces. We evaluate how systems are built for long-term extensibility, how you have led efforts to leverage and improve existing solutions, and more.
Coding languages to prepare:
- N/A
Scope & impact expectation:
- Directly responsible for multiple projects from inception to production readiness.
How to prepare:
- Reflect on specific examples where you’ve scaled yourself and your organization (your manager’s sub-tree) by:
- Making others better: Examples of mentoring, coaching, or improving team collaboration.
- Improving productivity: Initiatives or strategies that increased efficiency for you or the team.
- Raising quality: Efforts to enhance the quality of work produced by the team or organization.
- Identify instances where you:
- Built or influenced systems designed for long-term extensibility.
- Leveraged and improved existing solutions to create scalable and impactful outcomes.
During your interview:
- Showcase your impact:
- Share concrete examples of how you scaled your contributions and made a measurable difference for the organization.
- Highlight how your efforts improved team performance, collaboration, and output quality.
- Discuss long-term solutions:
- Explain how you built systems for extensibility and ensured solutions were sustainable and adaptable.
- Provide examples of leveraging and enhancing existing systems for greater efficiency and scalability.
- Communicate leadership:
- Highlight your role in leading efforts to raise team standards, enable growth, and create scalable processes.
- Share how you mentored or influenced others to improve their skills and productivity.
- Frame around organizational impact: Tie your examples back to organizational priorities, showing how your actions positively affected your manager’s sub-tree and beyond.
- Decisión (virtual)
La persona que te reclute se reunirá con el panel de entrevistas para revisar tu desempeño en relación con las competencias del puesto y nuestros valores. El equipo colaborará en conjunto para llegar a una decisión y la persona que te reclute te contactará para informarte sobre el resultado. ¡Cruza los dedos!
Each stage in our hiring process is a decision point. As you progress, the team will assess if it makes sense to move you forward based on the role and your experience. If it’s not the right fit, they’ll let you know ASAP. No matter what, we appreciate your time and effort!
Keeping your journey smooth
We’re trip obsessed and want to make sure your candidate journey is a smooth, 5-star experience. To make sure there’s no bumps in the road, please keep your scheduled interview time. Rescheduling is limited, and alternative slots may not be guaranteed.
Think of your interview like an Uber trip — timing matters. Just like a last-minute cancellation can disrupt a ride, rescheduling impacts multiple schedules. Keeping your original time helps ensure a seamless experience for everyone.
Lo que evaluamos
Competencias relacionadas con el puesto
We use competencies to make evidence-based hiring decisions and assess specific skills and behaviors. We ask job-relevant questions about competencies to understand how you work. Competencies may be used at different stages of your interview process.
Your Recruiter will share the competencies you will be assessed for at the right time for the role you are applying for, with examples below. As levels progress, expectations grow in scope, complexity, and impact, requiring engineers to demonstrate higher proficiency, leadership, and strategic influence. Each advancement builds on prior competencies, fostering deeper technical expertise, collaboration, and alignment with Uber’s cultural values.
- Collaboration & Leadership
- Fosters trusting, collaborative, and strategic relationships across teams and organizations while acting with integrity.
- Demonstrates respect for others, values diverse perspectives, and promotes cooperation at all levels, leading by example.
- As a leader, shows conviction and encourages healthy debates, fully committing to decisions once they are made.
- Exemplifies Uber's cultural values in every interaction and decision.
- Design & Architecture
- Tackles complex business challenges—often without textbook solutions—by crafting simple, elegant designs and architectures.
- Applies software design principles, external best practices, and a deep understanding of existing solution limitations to create architectures that integrate seamlessly with current systems and align with cross-functional needs and goals.
- Anticipates future design requirements and evaluates trade-offs to build scalable, adaptable systems that address both current demands and future opportunities.
- Drives efficiency and agility within Uber’s technology, teams, and processes by leveraging and extending existing systems, services, and solutions whenever possible.
- Software Engineering
- Develops high-quality, reliable, efficient, and testable code while conducting thorough code reviews and creating comprehensive tests and quality documentation.
- Leverages strong knowledge of data structures, algorithms, programming languages, frameworks, and core software engineering principles.
- Demonstrates expertise in the full software development life cycle, including requirements gathering, design, implementation, experimentation, testing, debugging, deployment, and monitoring.
- Identifies, reports, and resolves technical challenges using industry standards and best practices.
Success attributes
At Uber, success attributes reflect the key skills and behaviors that drive impact in our engineering teams at every level. These attributes guide how we assess candidates, focusing on collaboration, problem-solving, adaptability, and resilience. Prepare examples from your experience that demonstrate these qualities and show how you approach challenges and deliver results.
- Adaptability
Demonstrates resilience and flexibility when encountering changes or challenges. Adjusts to shifting priorities, adapts approaches as needed, and remains effective under evolving circumstances. Continuously learns from new experiences and incorporates those insights into future work.
- Bias Towards Action
Demonstrates initiative and a proactive approach to problem-solving and decision-making. Exhibits a bias towards action, prioritizing timely and effective solutions. Continuously seeks ways to improve processes, contribute to team goals, and address challenges without waiting for direction.
- Collaboration
Builds and sustains trusting, collaborative, and strategic relationships within and across teams. Treats others with respect, encourages cooperation, and embraces diverse perspectives. Leads by example, fostering an environment where healthy debate is encouraged, and alignment on decisions is fully embraced once made.
- Entrepreneurial
Exhibits an entrepreneurial mindset, showing creativity, resourcefulness, and ownership in identifying and solving problems. Seeks innovative solutions, takes calculated risks when appropriate, and demonstrates resilience in navigating challenges. Maintains a results-driven focus, aligning work with broader business goals.
- Grit
Demonstrates persistence and resilience in pursuing goals, maintaining a high standard of quality and thoroughness in all work. Shows dedication to completing tasks, even in the face of obstacles, and maintains a strong sense of responsibility for outcomes.
- Interpersonal Influence
Builds trusting, respectful, and collaborative relationships within and across teams. Exhibits strong interpersonal skills, positively influences others, and creates an environment that encourages cooperation, support, and mutual respect. Fosters an inclusive and person-oriented culture through empathy, integrity, and effective communication.
- Inquisitiveness
Exhibits an inquisitive and thoughtful mindset, seeking to understand the "why" behind tasks and exploring new ideas or methods. Asks insightful questions, continuously seeks knowledge, and applies thoughtful analysis to improve work quality and problem-solving capabilities.
Valores de Uber
Nuestros valores guían nuestro comportamiento y decisiones, y los equipos de contratación evalúan a cada aspirante al responder a la pregunta: ¿demuestras los valores de Uber que te permitirán prosperar y tener éxito en nuestro entorno? Asegúrate de comprender nuestros valores y prepárate con ejemplos de cómo los aplicaste en tu experiencia previa al tomar decisiones.
Ejemplos de preguntas sobre valores:
“Cuéntame sobre un proyecto que haya transformado la forma en que tú…”
(Valor: Obsesión por los viajes)
“Describe cómo colaboras con diferentes equipos para…”
(Valor: Un solo Uber)
Sugerencias
Virtual interviews
A few days before download: Zoom and test the link provided in your invite. Contact your Talent Coordinator if you encounter technical issues.
On the day of your interview: Find a quiet, well-lit area with no distractions. Test your camera, microphone, and internet connection. Use headphones for better audio quality.
Right before the interview: Silence your phone, plug in your device, and grab water. Join the call a few minutes early.
Role-specific tips
Be pitch ready: Have your elevator pitch ready to answer the classic: "tell me about yourself". Give an overview of your career and top accomplishments.
Understand the role: Understand the role you're applying for and business line (e.g., Uber Eats, Uber for Business). Be ready to explain why you’re passionate about the role and working at Uber beyond brand recognition.
Prepare examples: Understand the role’s competencies mentioned above and reflect on past projects and experiences that showcase your expertise in these areas. Prepare at least 1–2 examples of past projects for each competency.
Use the STAR Method
Structure your answers using the STAR method—describe the Situation, explain the Task at hand, outline the Actions you took, and highlight the Results achieved.
Think real world
Las personas que te entrevisten evaluarán cómo manejarías situaciones reales que enfrentarías en el trabajo. Organiza tu comunicación y considera los posibles desafíos que podrías enfrentar.
Explain how you arrived at your answer
Your interviewer may challenge your assumptions, so be prepared to back up your answers with relevant examples from prior experiences. Be honest and forthcoming about what you do and do not have experience with.
Challenge, clarify, and collaborate
If at any point in the interview you feel like asking for clarification, or think something doesn’t make sense, feel free to challenge the interviewer.
Also, don’t be afraid to admit to mistakes. What we’re looking for most is someone that can collaborate with other engineers to solve bigger problems.
We are not evaluating your knowledge of specific programming languages, but rather your ability to solve problems with the tools in your toolkit. Use tools that you are most comfortable with.
Prepare questions in advance
Your interviews are your time to get to know Uber, your potential future colleagues, and more about the role you are being considered for. Make sure you have prepared some questions to understand if the role is the right fit for you.
One interview won’t define you—keep going!
If you feel like you are not succeeding in one interview, don’t be afraid to ask questions, pause, and restart.
Go into your next interview with full confidence! We look at all of your skills across the board, not just one interview.
Behavorial
- Have you ever recognized a potential problem and addressed it before it occurred?
- Have you ever had to solve a problem on your own but needed to ask for additional help? How did you go about it?
- Let’s say you disagree with your colleague on how to move forward with a project. How would you go about resolving the disagreement?
- Have you ever owned up to a mistake at work? Can you tell me about it?
Technical
- Mini-max sum: Find the maximum and minimum sums from an array of given numbers.
- Organizing containers of balls: Test knowledge of 2D arrays, sorting, and iteration.
- Build a palindrome: Assess understanding of strings and dynamic programming, emphasizing writing clean, optimized code.
- Subarray division: Use a technique for finding pairs in a sorted array (e.g., the “two pointers” method).
- Grid search: Evaluate knowledge of strings and searching algorithms.
Practice on LeetCode
- Practice across difficulty levels: Work on problems at varying levels of difficulty. Start with easy problems, then tackle similar problems at medium and hard levels to observe the progression in complexity.
- Explore problem types: Cover a variety of problem categories, such as graph traversal, recursion, and dynamic programming, to broaden your skill set.
- Review and reflect: Go back to your solutions and take notes. Focus on understanding the fundamental approach needed to solve each problem.
- Experiment with solutions: Try solving problems in multiple ways to see how different approaches can be applied to the same challenge.
- Consistent practice: Keep practicing until you feel confident in solving problems consistently and efficiently.
Top 10 Algorithms in Interview Questions
This article unpacks the top 10 algorithms that are commonly used in interviews.
Cracking the Coding Interview by Gayle Laakmann McDowell
Coaches you through the complexities of coding interviews with question analysis, problem breakdowns and technique development.
Software Architecture: The Hard Parts
Focuses on modern trade-off analyses for distributed architectures, helping you navigate complex system design decisions.
Designing Data-Intensive Applications
Covers the big ideas behind building reliable, scalable, and maintainable systems, focusing on core principles of data-intensive applications.
Preguntas frecuentes
- How do I know what level I’m interviewing for?
Your Recruiter can help you understand the target level for your interview. Different levels may have distinct interview processes. The Business Phone Screen determines the initial level you’re moving forward with, but the final level is decided after the interview panel's evaluation and debrief. Releveling may still occur at that stage based on performance and feedback.
- How long will each interview last?
Interviews are typically 60 minutes each, but your Recruiter will confirm the exact duration. While the format is generally consistent, there are nuances by domain, and your Recruiter will provide specific details about what to expect.
- ¿Puedo usar IA durante mi entrevista?
Puedes usar la IA para preparar tu entrevista, por ejemplo, para practicar las respuestas, investigar la función o estructurar tus respuestas. Sin embargo, no podrás usar herramientas de IA (por ejemplo, ChatGPT, generadores de respuesta automatizados, herramientas de autocompletado de código) durante la entrevista. Queremos evaluar tus habilidades, capacidad de resolución de problemas y proceso de pensamiento en tiempo real. Si tu entrevista incluye resolución de problemas técnicos o basados en casos, prepárate para explicar y justificar tus respuestas sin la ayuda de la IA.
- When should I expect feedback from my Recruiter after each interview?
Your Recruiter is working diligently to keep things moving. Typically, you can expect your Recruiter to follow up within 2-3 business days after each interview. However, timelines can shift, so if you haven’t heard back, don’t hesitate to reach out!
- ¿Cómo puedo enviar comentarios sobre mi experiencia de reclutamiento?
Después de tus entrevistas, recibirás una encuesta para compartir tus opiniones e ideas sobre la experiencia. Si no tienes noticias nuestras, no dudes en contactar a la persona que te reclutó.
- Why join Uber?
- Impactful Work: Uber has transformed the way the world moves and continues to shape the future of mobility. By joining us, you'll contribute to meaningful projects that make an impact on your team, your domain, and the world. Your work will drive innovation and opportunity on a global scale.
- Uber Scale: With 170+ million monthly users, operations in 10,000+ cities, and 30+ million trips daily, Uber’s scale is unmatched. This global reach ensures your work touches millions of lives and plays a crucial role in a system of unparalleled complexity.
- Growth & Learning Opportunities: Our engineering leaders are committed to fostering a culture of growth and learning. You'll have access to opportunities, challenging projects, and supportive mentorship that will enable you to expand your skills and advance your career.
- Complex Technical Challenges: Uber’s products operate at an extraordinary scale, presenting unique and complex technical challenges. Every day, you’ll tackle tough problems and innovate alongside a team that values collaboration and supports your growth.
- What benefits does Uber offer?
Our benefits support the whole you when you need it most. Here, we provide a range of benefits that are inclusive, sustainable and easily accessible to all employees. From the usual, like health care and parental leave, to those that go above and beyond such as wellness, fertility and monthly Uber credits.
- ¿Dónde suele trabajar el personal?
Most employees spend at three days per week in the office, with Tuesday, Wednesday, and Thursday as anchor days across the company where all non-remote employees work in-person.
Uber Engineering Blog
Read stories and insights about the technology behind Uber Engineering.
Nuestros valores
Nuestros valores no solo son lo que creemos, sino lo que nos impulsa a mover al mundo.
Cuentas con nosotros
Nuestras ventajas te respaldan cuando más lo necesitas, desde bienestar hasta salud reproductiva y créditos Uber mensuales.
Tu identidad es muy importante
Fomentamos una cultura inclusiva donde todas las personas pueden desarrollarse y sentirse valoradas.
Grupos de recursos para personal
Nuestros Grupos de recursos para empleados (Employee Resource Group, ERG) brindan oportunidades de desarrollo comunitario, impacto y liderazgo.
Nuestro lugar de trabajo
La mayoría del personal pasa al menos la mitad de su tiempo en la oficina. Los martes y jueves son días clave en los que todo el personal no remoto trabaja de forma presencial. También pueden hacerlo desde cualquier lugar hasta por cuatro semanas al año.
Movilizamos el mundo
Descubre cómo los paralímpicos, veteranos y personal de todo el mundo logran que Uber avance, tanto en el ámbito laboral como fuera de él.
Acerca de Uber
En cifras
Hemos demostrado el potencial de nuestra plataforma y esto es solo el comienzo.
Lo que nos distingue
A medida que escalamos, nuestra plataforma ha demostrado un gran poder.
Lo que ofrecemos y nuestros negocios
Cambiar la forma en que las personas solicitan viajes y se desplazan de un lugar a otro es solo el comienzo.
Impulsamos la autonomía
Los vehículos autónomos formarán parte de nuestro futuro y estamos preparando a Uber para lo que sigue.
Nuestro camino para lograr emisiones cero
Millones de viajes al día, emisiones cero y un cambio hacia empaques sostenibles. Ese es nuestro objetivo con todas las personas del planeta.
Hacemos que la movilidad sea igual para todas las personas
Nuestros compromisos y acciones para impulsar a las personas y lugares.
¡Buena suerte!
¡Ya tienes todo listo para brillar! Esperamos haber resuelto tus dudas y haberte dado una idea de lo que es ser parte de Uber. ¿Tienes preguntas? Contacta a la persona que te reclutó. ¿Tienes comentarios? ¡Compártelos a través de este breve formulario!
This guide outlines the general ML & AI engineering interview process, however, steps and details within those steps may vary based on the specific role, location, and business needs. For the most accurate details, please reach out to your Recruiter.
Teams
Departments
Offerings
Locations
Asia Pacific
Europe, Middle East & Africa
Latin America
United States & Canada
Inside Uber