Vsevolod Tolstopyatov | KotlinConf 2024, May 22–24, Copenhagen
all speakers

Vsevolod Tolstopyatov

Vsevolod Tolstopyatov

Kotlin Core Ecosystem Lead @ JetBrains

Having fun in Kotlin team, poking APIs, libraries, languages, and tools. Passionate and curious about API design, concurrency, low-level programming, and performance.

Asynchronous Programming With Kotlin Coroutines

In this workshop, you’ll learn everything you need to know about how to be productive with coroutines in Kotlin. We’ll start with the basics of asynchronous programming, its differences from blocking code, and the concepts of suspending functions and coroutines. We’ll explore coroutine contexts, concurrent decomposition of work via deferreds, and structured concurrency with coroutine scopes.

The second part of the workshop will be devoted to Kotlin Flows. We’ll study how Kotlin Flows are designed on a basic level, learn the difference between hot and cold flows, discuss their typical usage patterns, and explore how they incorporate ideas from reactive streams. To deepen our understanding, we’ll also take a peek at some of the implementations behind flows and collectors. Throughout, we’ll see how they help you in writing safe and reliable concurrent systems, and how modern applications can use them to work with asynchronous streams of data, manage system state, and broadcast events.

Through this workshop, you’ll enhance your coroutines-related vocabulary, understand how to spot and avoid common problems, and be able to effectively and confidently use coroutines and flows in your own projects.

Why we can't have nice things

Have you ever wondered what challenges Kotlin standard libraries encounter? How is the new API affected by insect collection in 1800s and trade routes with Australia? What twitter polls have to do with Kotlin compiler not working in Turkey? Or maybe how the missing alarm makes us add a new parameter to a function?

In my talk, I'll answer these questions and briefly cover some unusual problems we tackle on a regular basis in Kotlin Libraries.