
Software Engineer II, PhD (Programming Systems Group)
- New York City, NY
- Permanent
- Full-time
- Thrive in ambiguous product requirements
- Iterate fast to explore possible solutions
- Make data-driven decisions with exceptional execution
- Collaborate closely with product managers and data scientists
- Be motivated to own projects and push them forward with independence
- Most importantly, have a passion for making Uber better for our customers
- Publish your work at top computer science conferences
- 3+ years of professional software development experience with prior experience with compiler design/optimization, static or dynamic analysis, abstract syntax trees (ASTs), intermediate representations (IRs), and formal methods.
- Proficiency in programming languages and experience developing static analysis tools using frameworks like LLVM, Soot, WALA, Spoon, or ASM.
- Experience with machine learning or Generative AI for program analysis is needed.
- Knowledge of different compilation steps (and ability to troubleshoot) in languages such as Go, C, C++, or Java
- Strong publication record in relevant conferences (e.g., PLDI, OOPSLA, ICSE, ASE, FSE, ASPLOS).
- Excellent coding skills and software design skills
- Familiarity with software verification tools like Errorprone, Z3, CBMC, or Infer.
- Experience integrating program analysis tools into CI/CD pipelines.
- Ability to communicate effectively with both technical and business partners
- Experience in simplifying/converting business challenges into technical problems
- Research mentality with a bias towards action to structure a project from idea to experimentation to prototype to implementation
- Experience building and iterating on code review (phabricator, GitHub), automation test infrastructure (unit, integration, E2E), and build systems (Bazel / buck)
- Experience working with teams spanning geographic locations and time-zones
- Linux and Kubernetes system knowledge
- Experience presenting at industry-recognized academic conferences