Uber logo
Uber
Write a Review|3|
★
★
★
☆
☆

Uber hiring Staff Software Engineer – Android Build Infrastructure, San Francisco, California

Staff Software Engineer – Android Build Infrastructure

Uber

San Francisco, California
Posted 1 weeks ago

Qualifications

Education

Bachelor's degree in Computer Science or a related field, or equivalent practical experience.

Experience Requirements

Required

8+ years of full-time engineering experience.

8 years of experience

Benefits & Perks

Benefits Package

  • participate in Uber's bonus program
  • may be offered an equity award
  • eligible to participate in a 401(k) plan
  • eligible for various benefits

Required Skills

Technical Skills

systematic problem-solvingknowledge of algorithmsdata structurescomplexity analysisstrong understanding of Android developmentdeep hands-on experience with Bazelremote build cachingremote executionAndroid build internalsCI systems at scalebuild performance analysisleading large-scale build migrationstooling development in Kotlin/Javaapplying LLMs/AI agents

Full Job Description

Staff Android Engineer

Engages with stakeholders across teams to lead the design, development, and evolution of the build systems and CI infrastructure that every Android engineer at Uber depends on.

Every change to Uber's Android apps — Rider, Driver, Uber Eats, and more — flows through the build. In this role, you will own the Android build end to end: the Bazel build graph and rules, remote caching, and the CI pipelines that verify every change before it lands. You will set the technical direction for making Android builds faster, more reliable, and more cost-efficient at monorepo scale, and lead cross-team initiatives to achieve these goals.

Core Build is Uber's centralized build platform team. We own the common build infrastructure — Bazel, Gazelle, build rules, client-side remote build caching and execution, and shared build/test CI pipelines — across Uber's Java, Go, Android, iOS, and Web monorepos.

Our vision is simple: make builds fast with less friction. Because the stack is shared, an improvement we make once benefits every engineer at Uber.

We work across three pillars:

  • Make builds faster everywhere with fewer resources — in CI, remote development environments, and on laptops — through caching, remote execution, sharding, and build-graph optimization.
  • A build failure should never leave an engineer stranded. Every failure should communicate what failed, how to fix it, and who can help.
  • Keep the platform on the latest Bazel, maximize CI fleet utilization with smart test selection and build-graph pruning, and apply GenAI/ML to automate diagnosis and optimization.

Our next major initiative is to stop compiling the same code thousands of times: make mobile builds remote-first, so a local build becomes a download rather than a compile, and run only the tests a change can actually affect.

As the Staff Android Engineer on the team, you will be the technical owner for the Android side of this roadmap.

Minimum Qualifications:

  • Bachelor's degree in Computer Science or a related field, or equivalent practical experience.
  • 8+ years of full-time engineering experience.
  • Systematic problem-solving approach and knowledge of algorithms, data structures, and complexity analysis.
  • Strong understanding of Android development.

Preferred Technical Skills:

  • Deep, hands-on experience with Bazel (or Buck) for Android builds: Starlark rules, rules_android / rules_kotlin, build-graph and dependency management.
  • Remote build caching and remote execution (Remote Execution API; e.g., Buildbarn, BuildBuddy, EngFlow).
  • Android build internals: Gradle, D8/R8, resource processing, and Kotlin compiler / annotation-processing performance.
  • CI systems at scale (e.g., Buildkite): sharding, test orchestration, and flaky-test management.
  • Build performance analysis and observability (Bazel profiles, Build Event Protocol, metrics, and regression dashboards).
  • Leading large-scale build migrations or upgrades (e.g., Buck/Gradle to Bazel, Bazel major versions, bzlmod).
  • Tooling development in Kotlin/Java.
  • Applying LLMs/AI agents to developer tooling (e.g., automated build-failure diagnosis).
  • Cross-platform experience (Android and iOS).

For all US locations, you will be eligible to participate in Uber's bonus program, and may be offered an equity award & other types of comp. All full-time employees are eligible to participate in a 401(k) plan. You will also be eligible for various benefits.

Uber is proud to be an Equal Opportunity 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.

How to Apply

Estimated Salary

$138
/ hour

Uber pays $138 for Software Engineer in San Francisco, California, with most salaries ranging from $104 to $183. Pay can vary based on role, experience, and local cost of living.

Median
$138
Low
$104
High
$183

Share This Job

Figures represent approximate ranges and may vary based on experience, location, and other factors. For the most accurate information, please consult the employer directly. Contact us to suggest updates to this information.