Today I gave a talk at KotlinConf 2026 in Munich about “Opinionated Ktor Services”. In this talk, I shared my experience and opinions on how to build robust, maintainable, and scalable services using Ktor and the Kotlin ecosystem.
This blog post is an improved version of the transcription of the presentation I gave at KotlinConf 2023. It discusses the 10-year history of Arrow, all the way from the first commit to the current state of the library. It also discusses the future of Functional Programming in Kotlin, and the challenges OSS projects face.
KotlinX’s Flow data type is extremely powerful, and offers an API that is quite familiar for functional programmers. This talk will showcase how we can leverage KotlinX Flow to describe powerful programs, and build pipelines to transform and manipulate data in an efficient streaming way.
In the modern world we often need to make strong guarantees about how our applications terminate; Structured Concurrency gives us a powerful tool to reason about concurrency, parallel processes and how they relate to each other.
Last week a long awaited feature was released as a preview in Kotlin 1.6.20-M1. In this blogpost we’re going to explore what Context Receivers are, and some benefits and patterns they’ll enable. To try it out in your IDE, follow this guide
Over the last several years I’ve seen many discussions on Kotlin’s features. Nullability is always a very high ranked one. I like it, but it’s definitely not my favorite feature.
Coroutines is one of the most liked features in Kotlin. Most people are familiar with the KotlinX Coroutines implementation, and many are also familiar with suspendCoroutine from the Kotlin Standard Library and then have also come across Continuation.