Software Engineer II

Uber Uber · Consumer · Sunnyvale, CA · Engineering

Software Engineer II role at Uber AI focused on building and maintaining the Machine Learning Platform, which provides foundational components to empower product teams. Responsibilities include designing and developing software and tools for the ML platform, leading system architecture, driving operational efficiency through automation, and participating in on-call rotations. Requires experience in systems software engineering, proficiency in programming languages like Java, Go, Python, or C++, and knowledge of distributed processing technologies.

What you'd actually do

  1. Design and develop software and tools (pipeline build infrastructure) that power a state-of-the-art machine learning platform
  2. Lead system architecture design efforts, including the integration and management of upstream and downstream dependencies
  3. Drive operational efficiency through automation in areas such as capacity planning, configuration management, performance optimization, monitoring, and root cause analysis
  4. Participate in on-call rotations and provide timely support for critical production issues

Skills

Required

  • systems software engineering
  • computer architecture
  • core computer science principles
  • Java
  • Go
  • Python
  • C/C++
  • networking
  • Linux
  • Docker
  • databases
  • distributed processing technologies

Nice to have

  • designing, building, and operating distributed systems
  • high-throughput services
  • algorithms
  • data structures
  • computational complexity
  • machine learning frameworks in production environments