
Talking Kotlin How Major Metros Run on KMP
Mar 5, 2026
Paweł Kwieciński, engineering lead at Masabi who migrated a decade-old Java codebase to Kotlin Multiplatform. He describes how KMP powers ticket validation across mobile, embedded validators, and backends. They cover incremental migration strategies, translating Java to Kotlin (with AI help), testing and KMP dependency choices, plus plans to replace UI duplicates with Compose Multiplatform.
AI Snips
Chapters
Transcript
Episode notes
Why Masabi Chose Kotlin To Modernize Validation
- Masabi unified an ancient Java 1.7 validation codebase by moving core business logic toward Kotlin to modernize backend, mobile, and embedded targets.
- The SDK originally shared Java view models across Android and iOS via J2ObjC, making a Kotlin move primarily language and platform modernization rather than UI redesign.
Modularize First Then Migrate Incrementally
- Do modularize a large monorepo before language migration so you can migrate incrementally and improve Gradle build speed.
- Paweł split a big ball of legacy modules into focused subsystems to migrate pieces without blocking ongoing feature work.
Validate Translation By Running Old Tests First
- Run existing Java tests against newly converted Kotlin production code before migrating tests to validate behavior.
- Paweł kept Java tests unchanged to ensure translated code preserved semantics and only migrated tests after confirming green results.
