In stream-based programming, data sources are abstracted as a stream of values that can be manipulated via callback functions, and at Uber, our mobile apps leverage the strengths of this programming model. Even though this provides a powerful and expressive paradigm for handling asynchronous data sources in interactive software, high-level stream abstractions can also make it difficult for developers to reason about control and data-flow relationships in their programs.
In this talk, I will present our experiences with mitigating the bugs arising out of stream-based programming. Firstly, I will present the design and implementation of a type-based approach that can statically prove the thread-safety of UI accesses in stream-based software and will report our experience applying the checker to two Uber apps, where it currently runs on every code change and blocks changes that introduce potential threading bugs. Secondly, I will describe our efforts in addressing concerns pertaining to RxJava back-pressure and will share our best practices for negating it.
Bio: Murali Krishna Ramanathan is a member of the Programming Systems group at Uber Technologies, USA. He works on design and implementation of program analysis tools directed towards improving the quality and performance of Uber applications. Previously, he was a member of the core analysis team at Coverity and built program analysis tools that are widely used in the software industry. He is a recipient of the Google faculty research award and ACM SIGSOFT Distinguished paper award (ISSTA 16). He holds a PhD in Computer Science from Purdue University, USA.
Murali Krishna Ramanathan is a member of the Programming Systems group at Uber Technologies, USA. He works on the design and implementation of program analysis tools directed towards improving the quality and performance of Uber applications. Previously, he was a member of the core analysis team at Coverity and built program analysis tools that are widely used in the software industry. He is a recipient of the Google faculty research award (2015) and ACM SIGSOFT Distinguished paper award (ISSTA 2016). He holds a PhD in Computer Science from Purdue University, USA.
Sun 4 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
09:00 - 10:00 | |||
09:00 15mDay opening | Welcome and Opening Remarks REBLS S: Guido Salvaneschi TU Darmstadt, S: Wolfgang De Meuter Vrije Universiteit Brussel, P: Francisco Sant'Anna Rio de Janeiro State University File Attached | ||
09:15 45mTalk | Reacting to stream-based programming bugs REBLS |