Software Engineer II, PhD (Programming Systems Group)

1 Days Old

Uber Program Analysis Expert Uber is seeking an exceptional and experienced program analysis expert to join the Programming Systems Group within the Developer Platform organization. The ideal candidate will possess in-depth knowledge and hands-on experience in static program analysis, with a proven track record of designing, developing, and deploying automatic bug detection tools, including linters. Key qualifications include demonstrated expertise in leveraging advanced techniques, such as program analysis and large language models, to build innovative developer tools. A critical aspect of this role involves integrating these tools seamlessly into the software development workflow, with a particular focus on enhancing the code review cycle. The Programming Systems Group at Uber aims to accelerate performance, reliability, and developer productivity across various computational domains. We focus on research in programming languages spanning Go, Java, Swift, Kotlin, and TypeScript, to name a few. The research includes the right mix of innovation, advanced development, and critical extensions to core infrastructure to address novel problems in computer science and adjoining domains. The team's recent work includes static analysis tools such as NullAway, NilAway, Last Diff Analyzer, and Piranha; dynamic analysis tools such as CRISP, datarace detection, and LeakProf; optimization tools such as swift protocol specialization, code-size optimization, and profile-guided optimization in Go; and Generative-AI tools for fixing concurrency bugs and resource leaks in Java. We make our tools open source and publish our research as academic papers at premier conferences and blog posts. 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 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 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 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 Preferred Qualifications Deep knowledge of runtime environment such as 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 For all US locations, you will be eligible to participate in Uber's bonus program, and may be offered an equity award & other types of comp. You will also be eligible for various benefits. More details can be found at the following link. Uber is proud to be an Equal Opportunity/Affirmative Action employer. All qualified applicants will receive consideration for employment without regard to sex, gender identity, sexual orientation, race, color, religion, national origin, disability, protected Veteran status, age, or any other characteristic protected by law. We also consider qualified applicants regardless of criminal histories, consistent with legal requirements.
Location:
San Francisco, CA, United States
Category:
Computer And Mathematical Occupations