Broadly speaking, Uber’s computational infrastructure consists of thousands of back-end applications (aka services) supporting multiple large mobile front-end applications. These applications are often interconnected by using the same core libraries, sharing build and continuous integration infrastructures, and being stored in shared code repositories. With hundreds of developers working on such a large cumulative codebase, often concurrently, we must build carefully engineered solutions to mitigate potential scalability and application “health” (performance, reliability, etc.) issues. In this talk, I will describe some of the large-scale application development challenges we face at Uber and present various techniques anchored in programming languages and systems research that we developed to address them.
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.