At Uber we operate at a scale that rivals some of the largest engineering organizations in the industry. In particular, we concurrently develop multiple mobile applications cumulatively spanning millions code lines, with hundreds of engineers often pushing thousands of changes to our main applications repository (aka monorepo) each day. Under these circumstances, it is absolutely crucial to minimize manual effort required to build, refactor, and optimize our applications. In this talk you will learn how we automate various aspects of application development using both novel techniques and tools developed at Uber and by adapting existing solutions to operate at Uber’s scale. First I will describe the SubmitQueue, a fully automated component of Uber’s application build pipeline that supports thousands of daily commits while maintaining an “always green” master branch of the monorepo that always successfully compiles and passes all the tests. Then I will present Piranha, an automated source code cleanup tool removing dead code guarded by stale feature flags. Finally, I will share lessons learned from automating deployment of already existing application optimizations, using as an example what we believe is the first non-Facebook production deployment of Facebook’s ReDex bytecode optimizer.
Adam Welc currently works at Uber Technologies. Previously, he worked at Huawei, focusing on optimizing Java for execution in the cloud. Adam has also worked as a researcher at Intel, Adobe, and Oracle, developing new language implementations as well as novel approaches for concurrent programming. His research interests are in the area of programming languages implementation, design, and tooling, with specific interests in runtime systems, interpreters and compilers, as well as performance analysis and optimization. Adam holds a PhD in Computer Science from Purdue University.