Program Analysis at Uber Scale
Uber, operating in over 10,000 cities with a staggering 122 million monthly active users and facilitating 21 million trips per day, relies on a robust software infrastructure. This infrastructure encompasses 15 mobile apps and over 5,000 microservices, collectively consisting of more than 100 million lines of code written in seven different programming languages. Given this immense scale, ensuring the highest levels of code quality becomes paramount, as a significant number of production incidents are often triggered by code and configuration changes. Program analysis tools have emerged as crucial components in guaranteeing software reliability, optimizing performance, and maintaining exceptional code quality. In this talk, we will delve into several static and dynamic analysis tools that we have developed and deployed at Uber scale, including NullAway https://github.com/uber/nullaway, Piranha https://github.com/uber/piranha, GoPGO https://github.com/golang/proposal/blob/master/design/55022-pgo-implementation.md, ExistentialSpecializer https://dl.acm.org/doi/10.1145/3360590, and CRISP https://www.uber.com/blog/crisp-critical-path-analysis-for-microservice-architectures/. We will share past findings and shed light on our future directions, particularly in employing GenAI for advanced program analysis.