At Uber, software reliability is of critical importance: outages canleave riders stranded 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.
Manu Sridharan is a senior software engineer at Uber, working on static analysis and software quality. He received his PhD from the University of California, Berkeley in 2007. He worked as a research staff member at IBM Research from 2008-2013 and as a senior researcher at Samsung Research America from 2013-2016. His research has drawn on, and contributed to, techniques in static analysis, dynamic analysis, and program synthesis, with applications to security, software quality, code refactoring, and software performance. His work has been incorporated into multiple commercial products, including IBM’s commercial security analysis tool and Samsung’s developer toolkit for the Tizen operating system. For further details, see http://manu.sridharan.net.