
Marek Dominiak is a CTO of Sparkbyte Solutions, co-owner of Trainitek, and an architect and tech lead at Mintra. He has 19 years of experience, mainly in the Java world. Has spent a lot of time mentoring developers and leading teams, with a big focus on creating solutions that will actually last for many years. That got him into Software Craftsmanship, Domain-Driven Design, and code quality early on.
Over his career, he has completed many small and large projects that run in production, interviewed developers, handled communication with customers, designed architecture for entire systems and delivered them, and introduced many technologies proven in production. He has 15 years of experience working in the Scandinavian market.
Through Trainitek, he has trained over 700 people in modern architecture, Domain-Driven Design, EventStorming, and testing. He has worked with more than 40 companies so far.
30.06.2026
LOCATION: Zürich
KEYWORDS: AI, Lessons learned
| AGENDA: | 18:15-19:30h: Talk incl. Q/A After the talk, you will have the opportunity to exchange ideas and network with the speaker and professional colleagues over beer and rich finger foods. |
SPEAKER: Marek Dominiak COMPANY: trainitek
In theory, migrating a large application - especially an older monolith - should be straightforward. Java's backward compatibility and tools like OpenRewrite promise to ease the process. But is it really that simple?
As the old saying goes, "In theory, theory and practice are the same. In practice, they are not." Anyone who has attempted to upgrade a sizable application knows it is a challenging task - even with AI agents.
In this talk, I’ll share the journey of a real-world application where we upgraded from Java 11 with Spring 4, Hibernate 5, Elasticsearch 5, and hundreds of related libraries to Java 21+, Spring 6+, Hibernate 6+, Elasticsearch 8, and newer versions of many other dependencies.
I’ll discuss the pain points that required out-of-the-box thinking, rewriting outdated solutions, removing unnecessary code and libraries, and more. We’ll look at why, in practice, it is often impossible to isolate specific frameworks or libraries and upgrade them one by one, because many parts depend on each other.
We’ll also look at painful chained dependencies, non-existing or abandoned libraries, libraries with completely changed APIs, and how we approached the migration in steps while still keeping the system stable.
In the final part, I’ll show how agentic AI started to help us move some modernization work forward. I’ll walk through one larger example of rewriting and modernizing a significant feature: what AI actually helped with, where it wasted time, and what kind of testing, review, verification, and security harness was needed before we could trust the result.
Join me to learn practical solutions that can save you time and pain when migrating large Java applications - and to see where agentic AI can realistically help with modernization work today.
LANGUAGE: Talk: en / Slides: en

Marek Dominiak is a CTO of Sparkbyte Solutions, co-owner of Trainitek, and an architect and tech lead at Mintra. He has 19 years of experience, mainly in the Java world. Has spent a lot of time mentoring developers and leading teams, with a big focus on creating solutions that will actually last for many years. That got him into Software Craftsmanship, Domain-Driven Design, and code quality early on.
Over his career, he has completed many small and large projects that run in production, interviewed developers, handled communication with customers, designed architecture for entire systems and delivered them, and introduced many technologies proven in production. He has 15 years of experience working in the Scandinavian market.
Through Trainitek, he has trained over 700 people in modern architecture, Domain-Driven Design, EventStorming, and testing. He has worked with more than 40 companies so far.
JUG Switzerland aims at promoting the application of Java technology in Switzerland.
JUG Switzerland facilitates the sharing of experience and information among its members. This is accomplished through workshops, seminars and conferences. JUG Switzerland supports and encourages the cooperation between commercial organizations and research institutions.
JUG Switzerland is funded through membership fees.