At Uber, software reliability is of critical importance: outages can leave riders stranded, eaters starved and drivers without a way to earn a living. At the same time, Uber needs to be able to move fast in developing new features and products. Our belief is that program analysis can play a key role in reducing the tension between these seemingly-conflicting needs. In this talk, I will describe the philosophy of how analysis tools are deployed at Uber and how code is developed to be analyzable. I will present some initial experience reports from deployed analyses, plans for future analyses, and some open problems that may be interesting to the broader research community.
I am a member of the Programming Systems group at Uber Technologies, USA. I work on designing and implementing program analysis tools directed towards improving the quality and performance of Uber applications. Previously, I was a faculty member at the Indian Institute of Science (IISc), Bangalore. Prior to my academic stint, I worked in the core analysis team at Coverity, San Francisco, USA and developed program analysis tools that are widely used in the software industry.