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
Murali Krishna Ramanathan
Programming Systems Research Scientist
Jin lin
Senior Software Engineer II
Raghavan Raman
Senior Software Engineer II
Team projects
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.
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.
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.
Team publications
Please visit Uber's publications page where you can find all published research including that of the Programming Systems Team