What are the responsibilities and job description for the Senior Software Engineer - Matching Platform position at Uber?
Uber is looking for a Senior Software Engineer to join our Matching Platform team. This team sits at the core of Uber's real-time marketplace, ensuring that riders and drivers are matched efficiently, fairly, and at scale.
Matching is one of Uber's most complex and impactful engineering problems, requiring expertise in high-scale distributed systems, real-time decision-making, and machine learning infrastructure. As a Senior Engineer, you'll play a key role in evolving our matching architecture, improving system efficiency, and enabling Uber's next-generation ML-powered matching capabilities. This is an opportunity to work on one of Uber's most business-critical domains with massive global impact.
Some Of The Problems You'll Be Working On Include
Matching is one of Uber's most complex and impactful engineering problems, requiring expertise in high-scale distributed systems, real-time decision-making, and machine learning infrastructure. As a Senior Engineer, you'll play a key role in evolving our matching architecture, improving system efficiency, and enabling Uber's next-generation ML-powered matching capabilities. This is an opportunity to work on one of Uber's most business-critical domains with massive global impact.
Some Of The Problems You'll Be Working On Include
- Building a highly scalable matching platform - handling millions of ride requests per second with ultra-low latency.
- Designing extensible architectures - creating a modular and flexible platform that allows new product innovations without complex rewrites.
- Evolving the ML platform for matching - enabling real-time inference, model deployment, and experimentation at scale.
- Design, develop, and deploy systems/platform/algorithms to solve complex business problems and improve product performance
- Collaborate with applied/data scientists, software engineers, and product managers to understand requirements, define project goals, and deliver high-quality solutions
- Deliver and review technical design, code and documentation
- Drive ongoing efficiency and reliability improvements through design and automation: availability, performance, scaling, monitoring and capacity.
- Tackle sophisticated technical challenges involving multiple technology stacks
- Mentor and support your interns/fellow team members
- Collaborate with cross-functional teams to drive best practices in data management, data quality, and service deployment
- Stay informed about industry trends, emerging technologies, and advancements in software engineering
- A Bachelor's degree in Computer Science, Computer Engineering, Electrical Engineering, or a related technical field
- 4 years of experience in professional software development experience, developing and deploying systems in production environments
- Experience in developer tooling or developer productivity spaces
- Knowledge of different compilation steps (and ability to fix) in languages such as Go, C, C , or Java.
- Experience using metrics to measure and improve developer experience.
- Masters or Ph.D. degree in Computer Science, Computer Engineering, Electrical Engineering, or a related technical field
- 6 years of experience in in professional software development experience, developing and deploying systems in production environments
- Experience building and iterating on code review (Phabricator, GitHub), automation test infrastructure (unit, integration, E2E), and build systems (Bazel / buck)
- Strong knowledge of backend development, distributed systems
- Strong motivation to grow and continuously develop new skills
- Excellent communication skills and the ability to collaborate effectively with cross-functional teams
- Strong analytical and problem-solving skills are necessary to tackle complex challenges
Salary : $198,000 - $220,000