Apply now!

    What’s cooking in the Kotlin kitchen at Ximedes

    • 15 October 2025

    How Kotlin helped build software that processes hundreds of thousands of transactions per second, without giving up elegance

    As Kotlin Dev Days 2025 approaches, proudly sponsored by CodeGuild, we’re giving the stage to the people behind the scenes.

    Development managers, CTOs, and lead engineers who use Kotlin in practice, sharing what it has brought to their teams.
    Real professionals, talking about their craft.

    Today we’re taking a look inside the kitchen at Ximedes, where Joris Portegies Zwart (CEO) explains how Kotlin made their backend architectures simpler, faster, and easier to maintain

    Why Kotlin?

    “Kotlin combines the maturity of the JVM ecosystem with a modern language design, without the baggage that Java has built up over the years.”
    Joris Portegies Zwart, CEO at Ximedes

    Ximedes has been developing business-critical software for the payment industry and public transport since 2003. Since 2018, they have been using Kotlin, and today the language is used in more than half of their projects.

    “For us, it wasn’t a hype-driven choice. Kotlin feels pragmatic, elegant, and reliable.
    We use it because it helps us build better software.”

    Kotlin on the backend

    While Kotlin is still often associated with Android development, at Ximedes its true strength lies on the backend.

    “Null-safety, data classes, and lambdas make our code concise and highly readable.
    For complex systems where performance and maintainability both matter, that’s worth gold.”

    TapConnect: every millisecond counts

    One of the projects where Kotlin proves its value is TapConnect, the ticketing back office for the Dutch public transport system.

    “Through TapConnect, barcode tickets are registered, managed, and validated at check-in and inspection. Every millisecond counts. Even a small delay literally slows down travelers at the gates.”

    To prevent that, Ximedes chose a WebSocket architecture.
    Instead of establishing a new TLS connection with every scan, validators and gates keep a persistent connection to the back office. As a result, every barcode is verified within fractions of a second — reliable, scalable, and elegant.

    Asynchronous without chaos

    “A system that has to handle hundreds of thousands of concurrent connections can’t rely on a classic thread-per-connection model. That’s why we chose an asynchronous architecture with Ktor and Kotlin coroutines.”

    Coroutines are Kotlin’s native mechanism for asynchronous execution: lightweight, non-blocking, and easy to read.

    “The result is code that stays elegant while handling tens of thousands of simultaneous requests with a limited number of threads.
    Asynchronous without chaos: that’s the power of Kotlin.”

    Kotlin as a backbone

    “Kotlin has become a fundamental technology for us.
    It offers the expressiveness of modern languages with the simplicity and interoperability that fit enterprise-grade JVM environments.”

    At Ximedes, Kotlin proves that elegance, performance, and reliability can coexist perfectly. A language that supports the craft of software development instead of getting in the way.

    About this series

    With What’s cooking in the Kotlin kitchen we give a voice to the JVM community.

    In the run-up to Kotlin Dev Days we talk to CTOs, development managers, and lead engineers who share their success stories with Kotlin.

    They tell their stories. We listen.
    Because craftsmanship deserves a stage.

    In the coming weeks we’ll share more stories from behind the scenes: straight from the kitchens of our clients and partners.

    Want to join Kotlin Dev Days 2025?
    Follow our LinkedIn page for ticket raffles, community stories, and new editions of What’s cooking in the Kotlin kitchen.


    Visit our Kotlin Hub page now for more info!