2021 PhD Software Engineer Internship
About the Role
The Programming Systems group at Uber is looking for PhD student interns for the summer of 2021. We seek candidates with a strong background in compilers, program analysis, and / or programming languages.
You will work closely with members of the group on building or extending tools that improve Uber's software reliability, performance, and developer efficiency. Most intern projects also have external visibility via open source, blog posts, publications, or talks.
About the Team
The Programming Systems group develops tools and techniques to improve performance, reliability, and developer productivity across a variety of programming languages, including Java (mobile and backend), Swift, and Go. The work includes static and dynamic analysis, compiler optimizations as well as performance evaluation and tooling work at the language runtime and OS system levels.
We mostly work on open source projects - recent examples include Piranha, Optimistic Concurrency in Go, NullAway, ExistentialSpecializer, and Nanoscope. We are also active in the research community and publish and participate in top conferences.
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 deep technical problems and implement those solutions
- Connect with engineers company-wide 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
- Currently enrolled in a PhD program studying compilers, program analysis, and / or programming languages
- Passionate about writing clean, efficient, and well-tested code
- Ability to communicate effectively with both technical and business stakeholders
- Publication(s) in top-tier conferences in the areas of program analysis, and/or compilers
- Build a new static analysis tool to prevent certain classes of bugs
- Implement new compiler optimizations to improve code performance
- Develop novel dynamic analysis techniques to detect bugs and performance problems at runtime
- Build refactoring tools to automatically fix bugs or cleanup code
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.
Uber is proud to be an equal opportunity workplace. We are committed to equal employment opportunity regardless of race, color, ancestry, religion, sex, national origin, sexual orientation, age, citizenship, marital status, disability, gender identity, Veteran Status, or any other characteristic protected by law.