About the Role
To succeed in this position, you will have a solid understanding of innovative program analysis techniques and experience developing static analyses or compiler optimizations. You should also be passionate about writing clean, efficient, and well-tested code.
----What the Candidate Will Do ----
- Drive exciting, ambitious, previously unsolved projects from end-to-end
- 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
- - - - Basic Qualifications ----
- Must be Ph.D. in Computer Science, Computer Engineering, or related field
- 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 Java and experience developing Java analysis tools using frameworks like Soot, WALA, Spoon, or ASM.
- 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).
Note that up to 3 years of the total required software engineering experience may have been gained through education and full-time work experience, additional training, coursework, research, or similar (OR some combination of these). The years of specialized experience are not necessarily in addition to the years of Education & full-time work experience indicated.
- - - - Preferred Qualifications ----
- Deep knowledge of JVM, LLVM, GraalVM, or JIT compilation.
- 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
- Experience with machine learning or Generative AI for program analysis is a plus.
- Excellent coding and software design skills
For New York, NY-based roles: The base salary range for this role is USD$167,000 per year - USD$185,500 per year.
For San Francisco, CA-based roles: The base salary range for this role is USD$167,000 per year - USD$185,500 per year.
For Seattle, WA-based roles: The base salary range for this role is USD$167,000 per year - USD$185,500 per year.
For Sunnyvale, CA-based roles: The base salary range for this role is USD$167,000 per year - USD$185,500 per year.