2019 PhD Software Engineer Internship - Programming Systems
Engineering, University in San Francisco, CA
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.
About the Role
The Programming Systems group at Uber is looking for PhD student interns for the summer of 2019. 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 productivity. Most intern projects also involve externalizing the work via open source, blog posts, publications, 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
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
What You’ll Need
PhD student (ideally graduating no later than Summer 2020) in 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
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 the NullAway (https://github.com/uber/NullAway), RxThreadEffectChecker (https://github.com/uber-research/RxThreadEffectChecker), and Nanoscope (https://github.com/uber/nanoscope/wiki/Trace-Extensions). We are also active in the research community and aim to publish and participate in top conferences.
At Uber we don’t just accept difference—we celebrate it, we support it, and we thrive on it for the benefit of our employees, our products and our community. 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 or Veteran status.