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.
Ask episode
AI Snips
Chapters
Transcript
Episode notes
INSIGHT

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.
ADVICE

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.
ADVICE

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.
Get the Snipd Podcast app to discover more snips from this episode
Get the app