Software Engineer - Machine Learning Platform at Uber
Uber is on the lookout for top-notch software engineers to join our Machine Learning Platform team. This role involves building and managing robust distributed systems, and solving infrastructure challenges to empower Uber's product engineering and data science teams with the latest technologies in large scale Artificial Intelligence.
The Machine Learning Platform team works on software and services that democratize and empower teams across Uber to use the technology. You will be part of a team of strong software and systems engineers executing in an exciting, dynamic environment. The Machine Learning Platform team is part of Michelangelo. For more information on the Michelangelo team as a whole, please visit our recent blog posts:
- Meet Michelangelo: Uber's Machine Learning Platform: http://eng.uber.com/michelangelo/
- Productionizing Distributed XGBoost to Train Deep Tree Models with Large Data Sets at Uber: https://eng.uber.com/productionizing-distributed-xgboost/
What You'll Do
- Design and deliver software and tools as part of our state-of-the-art Machine Learning platform
- Systems architecture design, including management of upstream and downstream dependencies
- Provide technical leadership, influence and partner with fellow engineers to architect, design and build infrastructure that can stand the test of scale and availability, while reducing operational overhead
- Drive efficiencies in systems and processes through automation: capacity planning, configuration management, performance tuning, monitoring and root cause analysis
- Participate in periodic on-call rotations and be available for critical issues
- Collaborate with platform, product and security engineering teams, and enable successful use of infrastructure and foundational services
- BS or MS in Computer Science or a related technical field, or equivalent experience
- Sound understanding of computer architecture and CS fundamentals
- Proficient in one of the following programming languages: Java, Go, Python
- Good working knowledge of networking, Linux, Docker, databases, Hadoop, Hive, and/or Spark
- 3+ years of experience of systems software engineering
- Good understanding or experience with Protobuff and experience with Kubernetes
- Experience building and managing distributed systems and high-throughput services
- Systematic problem solving approach and knowledge of algorithms, data structures and complexity analysis
- Grit, drive and a strong feeling of ownership coupled with collaboration and leadership
- Power-user Linux knowledge and willingness to explore Linux internals
- Designing and developing backend services at scale
- Good understanding of databases
At Uber, we ignite opportunity by setting the world in motion. We take on big problems to help drivers, riders, delivery partners, and eaters get moving in more than 10,000 cities around the world.
We welcome people from all backgrounds who seek the opportunity to help build a future where everyone and everything can move independently. If you have the curiosity, passion, and collaborative spirit, work with us, and let's move the world forward, together.
Uber is proud to be an Equal Opportunity/Affirmative Action employer. All qualified applicants will receive consideration for employment without regard to sex, gender identity, sexual orientation, race, color, religion, national origin, disability, protected Veteran status, age, or any other characteristic protected by law. We also consider qualified applicants regardless of criminal histories, consistent with legal requirements. If you have a disability or special need that requires accommodation, please let us know by completing this form.