Skip to main content
Uber CareersUber Careers

2020 PhD Software Engineer Internship - Distributed Systems

Engineering, University
in Palo Alto, California

About the Role

The developer platforms team at Uber is looking for PhD student interns for the summer of 2020. We seek candidates with a strong background in distributed systems, software engineering, and / or computer architecture. You will work closely with members of the group on building tools at a large scale that improves Uber's software performance, and developer productivity. Most intern projects also involve externalizing the work via publications at top tier conferences, open source, blog posts, or talks.

What You'll Do

  • Work with your mentor closely to scope a project, define the problem, and develop and prototype the solution
  • Develop creative and novel solutions to technical problems and implement those solutions
  • Communicate with engineers outside our team to understand the use cases and feasibility of your work, and collaborate on productizing your work
  • Work as appropriate on open sourcing and publishing your work

Sample Projects

  • Build distributed systems to automate rollout of a change to production in a safe manner in a large scale microservices framework.
  • Build distributed systems for safe rollout of machine learning models. Machine learning models perform partial roll outs from time to time, just to ensure accuracy. We at Uber are trying to ensure high accuracy of ML models prior to deployment.
  • Develop novel dynamic analysis techniques to detect service interoperability issues and performance problems at runtime.

What You'll Need

  • Ph.D. student (ideally graduating no later than Summer 2022) in software systems, distributed systems, and / or operating systems.
  • Strong software engineering skills on compiled languages like C, C++, Java. Golang expertise is a plus.
  • Passionate about writing clean, efficient, and well-tested code
  • Ability to communicate effectively with both technical and business stakeholders

About the team

The developer platforms at Uber develops distributed systems tools and techniques to automate different business critical needs at Uber scale. These systems are in turn utilized for solving key research questions such as platform performance, software testing automation, machine learning model roll outs etc. We mostly work on advanced engineering problems- recent examples include Submitqueue (, NullAway (, RxThreadEffectChecker (, and Nanoscope ( We are also active in the research community and aim to publish and participate in top tier systems conferences.

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 600 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.