Skip to main content

Programming Systems

At Uber’s Programming Systems Team we apply ideas and techniques from programming languages and systems research to increase performance and reliability of our applications. In particular we work on compiler optimizations, static and dynamic analysis, as well as on performance evaluation and tuning.

Another core aspect of the Programming Systems Team’s mission is the development of tools that help both client-side and server-side developers as well as the platform team engineers to improve their work quality and efficiency. Examples of our work in this area include tools for bug finding, testing, debugging, and refactoring. The majority of the tools we develop are open source.

Raj Barik

Programming Systems Research Scientist

Milind Chabbi

Senior Programming Research Scientist II

Lazaro Clapp

Senior Software Engineer

Murali Krishna Ramanathan

Programming Systems Research Scientist

Jin lin

Senior Software Engineer II

Raghavan Raman

Senior Software Engineer II

Adam Welc

Senior Software Engineer II

  • NullAway

    NullAway is a static checker for Java that prevents null pointer exceptions. Given source code with @Nullable annotations it performs a series of type-based local checks to ensure that any pointer that gets dereferenced in annotated code cannot be null.

    Read more
  • Piranha

    Feature flags are commonly used to enable gradual rollout or experiment with new features. In some cases, even after the purpose of the flag is accomplished, the code pertaining to the now stale flag is not removed. Piranha is a tool to automatically refactor code related to stale flags.

    Read more
  • Nanoscope+

    Nanoscope is Uber’s open source tool for Android that provides precise method traces with low overhead and works on unmodified applications. Nanoscope+ additionally aims at presenting programmers with additional relevant information on program execution.

    Read more
1/3

Please visit Uber's publications page where you can find all published research including that of the Programming Systems Team