Kevin leads the Kotlin at Google team that helps Googlers use Kotlin in their daily work, including on Android and JVMs.
It’s deceivingly easy to introduce race conditions into coroutines running asynchronously. In this talk we review some techniques that we’ve found effective at Google at detecting and preventing race conditions: static analysis and TSAN. First, a combination of interlocking static analyses allows flagging some potentially racy code at compile time based on heuristics. Second, we can leverage TSAN to detect race conditions when running (multithreaded) tests.