About the Role
At Uber, Python is used for our Machine Learning and Data Storage infrastructure. This role involves designing, developing and scaling a robust platform and tools to solve Uber's unique build, code, and dependency management challenges in our Python code base.
You will help delight our engineering teams, and enable the whole engineering organization to iterate rapidly. This includes (but is not limited to):
- Developer Tools
- Build Systems
- Dependency and Artifact Management systems
- Next-gen development environment for engineers
If you enjoy enabling other engineers to be productive, discussing anything from developer tools to kernels, and you measure the success of your projects in "nines", we would like to talk to you.
Want more jobs like this?
Get jobs in Amsterdam, Netherlands delivered to your inbox every week.
About the Team
The Uber Developer Platform team's mission is to enable Uber backend developers to build high quality software consistently & without frustration.
Through the platforms and tools we own, we want Uber backend developers to focus on the product experience, without having to worry about 'how' things work under the covers.
Our involvement starts in the development lifecycle and includes:
- Ensuring developers are able to checkout, build, land and debug their code as fast as possible.
- This includes optimizing the IDE experience developers have on local and remote environments
- Build, enhance, support and maintain frameworks and tools for standard use cases
- Providing consistent abstractions and concepts for backend developers working in supported language platforms
What the Candidate Will Do
- Partner with fellow engineers to innovate, architect, develop and scale Uber's distributed code hosting platform
- Provide initiative and technical leadership to build reliable, high-quality solutions that scale with Uber's engineering processes.
- Deliver and review technical design, code and documentation.
- Drive ongoing efficiency and reliability improvements through design and automation: availability, performance, scaling, monitoring and capacity.
- Manage upstream and downstream dependencies, collaborate with other engineering teams, capture requirements and enable successful adoption of development tools and best practices.
- Solve sophisticated technical challenges involving multiple technology stacks
- Mentor and support your fellow teammates.
Basic Qualifications
- BS, MS or PhD degree in computer science, or 5+ years in similar technical field of study or equivalent practical experience.
- Deep Python Experience
- Good SRE skills or passion to learn (monitoring, alerting, writing runbooks), mindset should be around getting 99.99% of critical availability/reliability metrics
- Knowledge of different compilation steps (and ability to troubleshoot) in languages such as C, C++, Fortran, D, or Rust
Preferred Qualifications
- Experience working on Machine Learning infrastructure and tooling
- Experience using and extending Bazel
- Experience with package and dependency management systems
- Experience with developing and maintaining C libraries, including cross-compilation
- Linux operating system knowledge
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.
Offices continue to be central to collaboration and Uber's cultural identity. Unless formally approved to work fully remotely, Uber expects employees to spend at least half of their work time in their assigned office. For certain roles, such as those based at green-light hubs, employees are expected to be in-office for 100% of their time. Please speak with your recruiter to better understand in-office expectations for this role.
*Accommodations may be available based on religious and/or medical conditions, or as required by applicable law. To request an accommodation, please reach out to accommodations@uber.com.