A bimonthly podcast that covers the Kotlin programming language by JetBrains, as well as related technologies. Hosted by Hadi Hariri
Similar Podcasts
Thinking Elixir Podcast
The Thinking Elixir podcast is a weekly show where we talk about the Elixir programming language and the community around it. We cover news and interview guests to learn more about projects and developments in the community.
Python Bytes
Python Bytes is a weekly podcast hosted by Michael Kennedy and Brian Okken. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.
Rustacean Station
Come journey with us into the weird, wonderful, and wily world of Rust.
Migrating 25-year-old legacy code to Kotlin
How can Kotlin help teams build safer financial software, migrate legacy systems, and move faster without increasing risk?In this episode of Kotlin Conversations from KotlinConf 2026, we talk with Yuri Geronimus, Senior Staff Engineer and Chief Architect at Verifone, about using Kotlin in the world of payments and financial technology — where software defects, compliance requirements, and certification tests can have serious consequences.
What Nobody Told Us About KMP on iOS
Three Android developers. Zero Swift experience. A two-month deadline.At KotlinConfersations'2026, Suhyeon (Leah) Kim shares how her team used KMP to build and ship a brand-new iOS app despite having no iOS developers on the team.
Six Years, Zero Regrets: Sony’s KMP Success Story
Watch the Talk Here: https://youtu.be/VVf6txPZk3YIn this KotlinConfersations'26 episode, Sony engineer Sergio Carrilho shares how his team used Kotlin Multiplatform to build and evolve the Sony Sound Connect app. He talks about the challenges of Bluetooth development, hardware-software integration, and merging apps built on different tech stacks. Sergio also explains why architecture was the key to creating a seamless experience across Android and iOS.
Jake Wharton | KotlinConfersations'26
In this KotlinConf'26 interview, Huyen sat down with Jake Wharton to talk about the past, present, and future of Kotlin and software development. And, of course, a bit about AI.https://jakewharton.com
Exposed 1.0 and Beyond
The Kotlin ecosystem is full of powerful tools and frameworks — and in this episode of Talking Kotlin, we’re diving deep into Exposed, JetBrains’ Kotlin SQL library, which recently reached its 1.0 release.Sebastian and Márton sit down with Chantal from the Exposed team to explore what Exposed is, where it came from, and how it helps developers work with databases in a Kotlin-first way. From type-safe SQL DSLs and lightweight DAO support to JDBC, R2DBC, Ktor, Spring Boot, migrations, and future KMP plans — this episode covers the past, present, and future of Exposed.You’ll learn:What makes Exposed different from traditional ORMsHow the DSL and DAO APIs work togetherWhy Exposed 1.0 required a major architecture redesignHow R2DBC support enables non-blocking database accessHow Exposed integrates with Ktor and Spring BootWhat’s coming next: migrations, plugins, DAO improvements, and KMP supportThe surprisingly charming origin story behind the Exposed cuttlefish mascotWhether you’re already using Exposed or just looking for a Kotlin-friendly way to work with SQL databases, this episode is packed with practical insights and behind-the-scenes stories from the team building it.Try Exposed Read the docs Join the discussion on Kotlin Slack Report issues or share feedback on YouTrack
How Major Metros Run on KMP
Every time you tap through a subway gate in New York City, you’re using Kotlin Multiplatform! In this episode, we sit down with Paweł Kwieciński from Masabi to explore how they brought a decade-old Java codebase to KMP, powering ticket validation across mobile apps, embedded devices, and backend systems for public transit agencies worldwide.Resources: Masabi J2ObjC (Java to Objective-C translator) Google Workspace Migration to Kotlin Large Scale Changes with AI – Uber | Ty Smith KotlinX DateTime Ktor (Client & Server) Burst library (archived) Java ME (Micro Edition) Mbed TLS SQLDelight Compose Multiplatform JetBrains AI Assistant & JunieHosts: Sebastian Aigner – Website | Bluesky Márton Braun – Website | Bluesky Guest: Paweł KwiecińskiTimeline:(0:00) Introduction(1:12) What is Masabi?(3:03) How does Kotlin fit into this?(6:30) System architecture overview(8:33) Embedded SDK and mobile apps(10:33) Ticket inspectors and validators(13:22) Offline operation(16:29) The KMP decision(24:42) Evaluating alternatives(27:21) Planning the migration(33:28) First lines of Kotlin(43:45) Translating Java to Kotlin(53:22) AI-assisted code translation(56:39) Early AI era challenges(1:05:01) Testing challenges(1:08:22) KMP dependencies(1:11:34) Domain-specific dependencies(1:16:55) Java ME and C interop(1:23:22) Backend-client sharing(1:26:59) Current status(1:31:48) Future plans: CMP(1:36:26) Wrap-up
Kotlin 2.3 Release Special (Audio Exclusive)
Sebastian and Márton host a special, audio-only episode where they discuss everything that’s new and noteworthy in the Kotlin 2.3 release. They touch on new language features like the unused return value checker and explicit backing fields, previously added features that became stable in this release, new APIs for time and UUID handling in the standard library, and improvements across all Kotlin platforms — from Native to Wasm and JS.Resources: What’s new in Kotlin 2.3 KotlinConf Golden Kodee Community AwardsHosts: Sebastian Aigner – Website | Bluesky Márton Braun – Website | Bluesky Timeline:(0:00) Intro(1:13) Nested type aliases (stable)(1:46) Data-flow based exhaustiveness checks (stable)(3:28) Return statements in expression bodies(4:19) Unused return value checker (experimental)(12:57) Explicit backing fields (experimental)(18:51) Context-sensitive resolution (experimental)(20:11) Clock and Instant in the standard library (stable)(21:52) UUID v7 support and better parsing(26:14) Java 25 bytecode(26:36) Faster Native release builds(27:45) Swift Export: enums and varargs(29:08) C and Objective-C library import (beta)(30:49) Apple target support changes(32:15) Fully qualified names in Kotlin/Wasm(34:10) New exception handling for wasmWasi(35:32) Suspend function export to JS(37:51) LongArray export to JS(38:40) Unified companion object access in JS(41:05) @JsStatic inside interfaces(41:43) Default exports in JS(43:45) Compose stacktraces for minified Android apps(45:23) Breaking changes 🐜(46:14) Documentation updates(47:24) KotlinConf, Golden Kodees Awards(48:11) Wrap-up
Building AI Agents With Koog
Sebastian and Márton talk to Vadim Briliantov, the Technical Lead for Koog: an agentic framework built by JetBrains. We learn about what AI agents are, and why building them in Kotlin with Koog is a great choice. We also discuss all the different ways AI agents can connect to other systems and your existing code, and look at advanced features for agents like custom strategies, model switching, and history compression.Resources: JetBrains/koog on GitHub Koog DocumentationHosts: Sebastian Aigner – Website | Bluesky Márton Braun – Website | Bluesky Guest: Vadim Briliantov – LinkedIn | Medium | GitHub | Bluesky | Twitter/X Timeline:(0:00) Intro(1:11) Vadim’s history at JetBrains(4:21) What’s an AI Agent?(5:47) Koog!(7:12) Applications for agents(12:43) Koog’s building blocks(15:05) Strategies, feedback loops(23:55) The Kotlin DSL(26:12) Persistent state(29:48) Subgraphs(32:33) Tools(39:52) MCP support (and A2A)(44:01) Entry point and type safety(49:39) Spring and Ktor support(51:27) LLM Providers(53:30) Model switching(56:02) History and memory(59:22) Enterprise-ready(1:02:12) History compression(1:11:47) Markdown?!(1:14:37) What’s next?(1:18:22) Going open-source(1:20:32) Conclusion
Discussing Kotlin Coroutines with Marcin Moskała
Sebastian and Márton chat with Marcin Moskała about coroutines.Resources: Coroutines Mastery course Coroutines | Kotlin Documentation kotlinx.coroutines Taming Asynchronous Beasts | Marcin Moskała Coroutine Debugging in IntelliJ IDEA | Alexey Merkulov Lifecycles, Coroutines and Scopes | Alejandro Serrano Mena Collect Like a Pro | Manuel Vivo Untangling Coroutine Testing | Márton Braun JetBrains/lincheck – Concurrent testing framework #talking-kotlin on Kotlin SlackHosts: Sebastian Aigner – Website | Bluesky Márton Braun – Website | Bluesky Guest: Marcin Moskała – kt.academy Timeline:(0:00) Introduction(1:18) Branding discussion(3:23) Handling preconceptions(4:54) What are coroutines?(7:17) Lightweight threads?(11:07) Where coroutines live(13:27) Sequence Builder Example(17:37) The design of coroutines(20:52) What Makes Coroutines special vs other languages?(26:56) Coroutines vs Loom(34:55) Easy to start, hard to master(41:07) Common mistakes(49:33) Flows(58:52) Thinking about Flows(1:02:41) Derailing the conversation(1:03:55) Flows for single values(1:12:27) Structured concurrency(1:18:53) The 4 advantages(1:24:40) Seb tries web dev / The web is broken?!(1:31:15) collectAsStateWithLifecycle(1:32:00) Gardening break(1:36:23) Scopes and contexts(1:43:22) Testing coroutines(1:50:29) Lincheck(1:51:32) Turbine(1:55:05) Coroutines Mastery course(2:01:43) Wrap-up
kotlinx.rpc
Sebastian and Alex chat about the kotlinx.rpc project, in a special episode recorded in the Munich JetBrains office. They explore all the different components of the library, how you can use it to define RPC services and clients, integrate with Ktor and existing gRPC definitions, and more. While the library is still experimental, it’s already feature-packed, and it has ambitious plans for the future!kotlinx-rpc on GitHub#kotlinx-rpc on Slackkotlinx.serialization on GitHub gRPC Host: Sebastian AignerWebsiteBlueskyGuest: Alex SysoevLinkedInGitHub
Powering TV Broadcasts Worldwide
Sebastian and Márton are joined by Denis Borisevich from RIEDEL Communications, and learn about how Kotlin is used behind-the-scenes to power media, sports, and entertainment broadcasts watched by millions around the globe. Tune in for an exciting story about how Kotlin, Ktor, and Arrow are being used in production for a use case where robust software is mission-critical.Resources: Riedel Communications TornadoFX Unsigned integer types Arrow Ktor EurovisionHosts: Sebastian Aigner – Website | Bluesky Márton Braun – Website | Bluesky Guest: Denis Borisevich – LinkedIn Timeline:(0:00) Introductions(2:42) Events powered by Riedel(3:50) The Kotlin part(6:44) Routing video signals(9:12) Error handling in milliseconds(10:31) The Kotlin part, continued(13:29) TornadoFX!(19:19) On introducing Compose(23:30) Java to Kotlin migration(26:30) Learning Kotlin after C++(28:44) Unsigned ints in Kotlin(32:09) Arrow!(33:00) Server-side Kotlin(36:25) Functional programming(42:10) Why Kotlin over others?(45:55) Kotlin/Java interop(47:12) A 2-week long test suite(51:35) Confidence in Kotlin(53:05) Future plans(56:00) Wrap-up
Creator of Spring: No desire to write Java at All
Sebastian and Márton chat with Rod Johnson, the creator of the Spring Framework. Rod tells the story of how Spring was born more than two decades ago, and shares his recent journey of coming back to the JVM and discovering all the fun of being a newcomer to Kotlin.Resources: Expert One-on-One J2EE Design and Development: Rod Johnson Oh the Places You'll Go! Shoulders of Giants: Languages Kotlin Learned From | Andrey Breslav Revamping and Extending Kotlin's Type System | Ross Tate Scala in 2018 Keynote | Rod Johnson But Java has pattern matching! | Alejandro Serrano MenaHosts: Sebastian Aigner – Website | Bluesky Márton Braun – Website | Bluesky Guest: Rod Johnson – Twitter | LinkedIn Timeline:(0:00) Intro(0:52) The origins of Spring(6:40) You need a business model(8:21) Consistency is key(9:39) Sustainable open source(14:22) Parallels with JetBrains and Kotlin(15:29) Rod’s journey around the JVM(20:48) Shoulders of giants(22:34) The newcomer experience(24:40) LLMs write great Kotlin(30:34) “You can start without great pain”(33:32) Extension functions(36:15) Too much magic?(37:56) Rod’s feature wishlist(39:37) Versioning and compatibility(41:19) Ecosystems and interop(43:34) Kotlin type system evolution(46:27) Kotlin with Spring(52:24) Learning Spring with Kotlin(54:46) Kotlin in 5 years?(1:00:39) Rod’s current work(1:03:58) Wrap-up
Building KMP Libraries: The RevenueCat Story
Sebastian and Márton discuss building KMP libraries with Jay Shortway, the author of RevenueCat’s Kotlin Multiplatform SDK for in-app purchases.Resources: RevenueCat KMP SDK How we built the RevenueCat SDK for Kotlin Multiplatform Hybrid SDK Architecture at RevenueCat ttypic/swift-klib-plugin on GitHub RevenueCat/purchases-kmp on GitHub Consider moving `Instant` and `Clock` to the standard library · Kotlin/kotlinx-datetime RevenueCat openingsHosts: Sebastian Aigner Website Bluesky Márton Braun Website Bluesky Guest: Joop Korteweg Twitter (0:00) Intro(0:44) What’s RevenueCat(4:00) In-app purchases are hard(7:22) The multiplatform SDK(12:44) The demand for KMP(16:30) Hiring and team structure(18:42) SDKs for any framework(21:27) Building on native SDKs(23:45) Improving iOS linking(24:54) The SDK is on GitHub(26:05) Benefits of building on native(28:18) Designing a common API(33:21) Add-on modules for SDKs(37:30) Instant in the standard library(38:04) Returning results from the API(39:53) API design decisions(44:57) Codegen opportunities(45:48) The best things about KMP(47:07) KMP improvements wishlist(48:28) The KMP journey(49:45) Wrap-up
Becoming a KMP Expert
Sebastian and Pamela discuss what it means to be an expert in Kotlin Multiplatform, with the help of a panel of experts! Learn about why it's interesting to dive deep into a certain technology, recommendations on how to learn advanced topics, and general advice on how to get the most out of using KMP. KMP libraries: Interesting code to explore by Jake Ecosystem wishlist Learning resources HexFormat and Uuid and More KMP experts Kevin Galligan Russell Wolf Jesse Wilson Sebastian Sellmair Salomon Brys Hosts: Sebastian Aigner Pamela Hill Guests: Jake Wharton John O'Reilly Konstantin Tskhovrebov Tadeas Kriz Timestamps:(0:00) Introductions (1:40) Why be a KMP expert? (9:14) First steps to being an expert (16:38) Respecting each platform (24:04) Libraries for KMP (27:45) Advanced learning resources (38:18) Ecosystem wishlist (43:03) Exercising your KMP skills (48:15) Shoutouts to other experts (51:34) Wrap-up
Going from Swift to Kotlin with Skip
In a slightly unconventional episode, Sebastian and Márton talk to the founders of Skip, an iOS-to-Android, Swift-to-Kotlin transpiler solution. Marc and Abe have a background working on both Apple platforms and the JVM, and their latest project is a bridge across these two ecosystems. Skip Skip.tools on GitHub Contributing to SkipUI webinar kdoctor Hosts: Sebastian Aigner Website Bluesky Márton Braun Website Bluesky Guests: Abe White Twitter Mastodon Marc Prud'hommeaux GitHub (0:00) Weather (2:02) Introductions (3:10) Elevator pitch (3:45) The initial idea(6:14) Pivot around the server-side (8:35) Skip(.tools) (8:56) The target audience (9:58) What about Android devs? (12:11) The current state (14:57) Pricing and components (16:43) Contributing to SkipUI (18:55) Reimplementing everything (23:07) The Skip stack (26:17) Wrapping JVM types (28:27) Writing Kotlin in Swift?! (29:56) Tooling support (32:02) There’s a Gradle project! (34:39) iOS API coverage (38:24) Platform differences (40:10) Data storage (44:31) Building on JVM libraries (46:42) JSON problems (48:00) Testing the Skip stack (51:42) SwiftUI to Compose (58:21) IDE experiences (1:03:35) Conclusion