Flag job

Report

Software Engineer II, Python, Developer Platform

Location

Amsterdam, North Holland, Netherlands

JobType

full-time

About the role

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.

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 Need / Bonus Points

---- 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, 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

Skills

Python
backend
Bazel
C++
Fortran
IDE
Linux
machine learning
SRE