You are viewing a preview of this job. Log in or register to view more details about this job.

2023 PhD Software Engineer Internship - Programming Systems Group

Job Description


Uber Engineering is growing quickly as we look to take on some exciting opportunities at scale and around the world. As we grow our team and code base, there is a growing need for automatic analysis tools to keep our code quality and performance high while ensuring our engineers can continue to adapt quickly. To support this need, the Programming Systems Group is looking for hardworking PhD interns to develop new optimizations, static and dynamic analysis tools, and programming models, and apply them to Uber's code base.
 
The team is seeking to build tools to improve performance and reliability across a variety of languages, including Go, Java (mobile and backend), Swift, Kotlin, and TypeScript. The work includes a mix of both building or extending core infrastructure and developing new optimizations / analyses targeted at key issues. Recent work by the team includes NullAway & Piranha static analysis tools. The team has upstreamed changes to the Swift compiler to improve specialization of protocol-based code including contributions to LLVM for optimizing mobile app binary-size. In general, we like to make our tools open source and write about our work in blog posts and academic papers. We also participate actively in the research community, including attending conferences, organizing workshops, and serving on program committees.
 
To succeed in this position, you will have a solid understanding of innovative program analysis techniques and experience in developing static analyses or compiler optimizations. You should also be passionate about writing clean, efficient, and well-tested code.


What You'll Do


  • Drive exciting, ambitious, previously unsolved projects from end to end.
  • Thrive in ambiguous product requirements.
  • Collaborate with product managers and data scientists closely.
  • Make data driven decisions, with exceptional execution.
  • Be motivated to own projects and push them forward with independence.
  • Most importantly, have a passion to make Uber better for our customers.
 

Basic Qualifications


  • Ongoing PhD in Computer Science, Computer Engineering, or related field.
  • Prior experience with compiler optimization, static analysis, or dynamic analysis.
  • Solid understanding of modern program analysis techniques.
  • Excellent coding skills and software design skills.
  • Published papers in program analysis or code optimization.


Preferred Qualifications


  • Ability to communicate effectively with both technical and business partners.
  • Experience in simplifying/converting business problems into technical problems.
  • Research mentality with a bias towards action to structure a project from idea to experimentation to prototype to implementation.
  • Experience presenting at industry-recognized academic conferences.