Talking Kotlin
Talking Kotlin
Talking Kotlin
How Major Metros Run on KMP
1 hour 39 minutes Posted Mar 5, 2026 at 8:28 am.
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:
Introduction
What is Masabi?
How does Kotlin fit into this?
System architecture overview
Embedded SDK and mobile apps
Ticket inspectors and validators
Offline operation
The KMP decision
Evaluating alternatives
Planning the migration
First lines of Kotlin
Translating Java to Kotlin
AI-assisted code translation
Early AI era challenges
Testing challenges
KMP dependencies
Domain-specific dependencies
Java ME and C interop
Backend-client sharing
Current status
Future plans: CMP
0:00
1:39:25
Download MP3
Show notes
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