Kai Koenig
Kai Koenig

Bio

Kai Koenig
Web and Mobile Software and Solutions Architect and Engineering Lead

Software Architect and Engineering Lead with 20+ years building and scaling web and mobile platforms. I specialise in JVM-based backend systems, mobile development (Android, Flutter), and the architecture that connects them. Most recently, I led the architectural transition of a global online dating platform from legacy monoliths to .NET microservices with React frontends, while continuing to operate the existing JVM-based API platform serving over 1 billion interactions per month. I also introduced an AI-assisted software engineering program, integrating tools like Cursor and AI agents into team workflows. I lead distributed engineering teams, own DevOps pipelines, and bridge the gap between product strategy and technical execution. My work spans hands-on development, system design, and team leadership, often all three simultaneously. I'm equally comfortable debugging a race condition in production, designing a multi-region deployment strategy, or mentoring engineers through a complex refactor. I run my consulting practice through Ventego Creative, which has allowed me to work with organisations ranging from startups to enterprises including Vodafone, Citibank, Siemens, Cupid Media, Raygun, and DistroKid. I also maintain several open-source SDKs (Android, Flutter, Ruby, Python, Node) for Raygun's error tracking platform. Beyond client work, I'm an active conference speaker (Droidcon, Android Makers, CFCamp, and others), a technology writer for European IT publications, and have been co-organising community meetup groups since the start of my career. I hold a Master's degree in Mathematics and Computer Science and am currently pursuing a Master's in Data Science.

2026

Dart on the Command Line: Building and deploying CLI Tools
Cool & Fun Breakout Session

Most developers would use Go, Node.js or just Bash when they need to write a CLI tool. Equally, when developers think of Dart, they usually picture Flutter apps running on phones and tablets.

What if we merged these worlds and tried to build CLI apps with Dart? Could that even be done?

In this session, we'll explore how to use Dart to build maintainable command-line interfaces that feel as polished as tools written in more commonly used CLI tech stacks.

We'll walk through the complete journey of building a CLI application - from initial project setup to distributing compiled binaries across multiple platforms.

The talk will use real examples from public and internal production tools like Raygun CLI and you'll learn useful patterns for argument parsing, modular command architecture, HTTP client management, file interactions and error handling. We know they work because we've been using these tools in the field for multiple years now.

By the end of this talk, you'll have a good foundation for creating your own CLI tools that take advantage of all the features we enjoy in Dart: type safety, good tooling and cross-platform compilation capabilities.

Whether you're automating with CI/CD, building developer tools or creating utilities for your team, you'll discover why Dart might be the great choice for your next command-line project.

Topics covered:

- Project setup and architecture for CLI applications with Dart
- Essential packages and patterns
- Adding production-grade features like help, logging and error handling
- Cross-platform packaging, distribution and deployment for CLI apps
- A real-world implementation: Raygun CLI

2019

Why a Whole Country Skipped a Day: Fun with Timezones and Locales
Cool & Fun Breakout Session

"The correct handling of timezones and locales is one of the most under-appreciated parts of software development. Commonly known as internationalisation (i18n), a lot of people underestimate the impact that getting it wrong can have for your users as well as your systems. Drawn from experiences with working on a global network of backend systems, websites and mobile apps in more than 30 locales for the last 10 years, this talk will start with an introduction to the concepts behind timezones and locales. You're going to learn about the history of time measurement and time synchronisation and how the world eventually ended up with the global system of time zones of today. Today's model is full of interesting and sometimes outright bizarre quirks and you'll look at some of best and worst of them.
Some of the technical topics covered are:
Time on the JVM and Android
What level of support and libraries do we have?
Ways to make your developer life supporting multi-lingual/-locale apps easier.
WHAT? We have to support daylight-savings-time?
Managing user expectations Eventually, we're also revealing why a whole country skipped a day and what they gained from going through this effort. Stay tuned!