As everyone knows, long-running operations in Android apps should never be executed on the main thread. With the goal of protecting developers from making mistakes, the Android ecosystem relies heavily on asynchronous APIs that can be found all over the framework and also in many third-party libraries. Although this might do the trick for simple apps and workflows, this becomes a problem as complexity grows in the codebase. In this talk, we'll explore how to leverage coroutines to convert asynchronous APIs into synchronous ones for the sake of expressiveness, readability and developer sanity.