Schedule

Your success is ours! This is our business model!

Small Sessions

Our conference includes small sessions of 30 minutes each (20 minutes Talk + 5 minutes Q&A), delivered by speakers from all over the world, a panel of experts, and various online competitions. The following timetable is based on GMT. We recommend using the time.is website in order to find the accurate time on your end for each one of the talks, the competitions, and the panel. 

Hour

Speaker

Talk

07:00 GMT

Welcome Talk

Welcome Talk
The conference will start with a short welcome talk. During this talk we will go over the schedule and provide more information about the various activities. 

07:05 GMT

Li Haoyi Li Haoyi

Simpler Java Build Tools with Object Oriented Programming
The Java language is known to be performant, easy to use, and with great IDE support, but Java build tools like Maven or Gradle do not always live up to that reputation. This talk will explore why build tooling is fundamentally such a difficult domain to work in, and how common concepts from object-oriented programming have the potential to simplify the build tool experience. We will end with a demonstration of an experimental new Java build tool “Mill” that makes use of these ideas, proving out the idea that Java build tooling has the potential to be much faster, safer, and easier than it is today.

07:35 GMT

Adrian Kodja Profile Image Adrian Kodja

Building Maintainable Systems: Implementing Hexagonal Architecture with Spring Boot
Learn how to transform your Spring Boot applications using Hexagonal Architecture (Ports and Adapters) to create maintainable, testable, and technology-independent systems. This hands-on session demonstrates practical implementation techniques that separate business logic from external concerns.

08:05 GMT

Buhake Sidni Buhake Sindi

Bring AI and build AI agents into your Jakarta EE Apps with LangChain4J-CDIA
When considering the adoption of AI LLMs in the codebase, Python and Typescript solutions are provided, mostly by LLM providers themselves. Java always seems to be the late adopter. This becomes more prevalent when adopting AI in enterprise applications. Lately, Java developers have become comfortable in building and deploying AI applications with the help of LangChain4J, and with the release of LangChain4J-CDI, the plugin of LangChain4J is seamless. In this talk, we’ll look at how to build an AI agent the enterprise Java way using LangChain4J-CDI. This session introduces the new LangChain4J-CDI repository within the LangChain4J GitHub organisation. LangChain4J-CDI combine the power of Jakarta EE with the reach of LangChain4J. All the idioms you know and love from Jakarta now work with all the AI exposed by LangChain4j: injection, validation, persistence, REST, and more. LangChain4J-CDI has other features in its arsenal. Customisable LangChain4J component configuration using Microprofile Config, Resiliency, Metrics, and observability using Microprofile Fault Tolerance and Microprofile Telemetry, respectively.

08:35 GMT

XtremeJ Hackathon

The XtremeJ Hackathon

An intense, fast-paced competition where participants race to solve a real-world programming challenge. Any tool, any library—even AI—is allowed. The first to build a working solution, submit the code, and deliver the correct result claims victory. A thrilling test of speed, creativity, and coding mastery.

09:00 GMT

First Break

First Break

09:30 GMT

Svenn Woltmann Svenn Woltmann

Stream Gatherers – Write Your Own Stream Operations!
The Java Stream API was introduced with Java 8 in March 2014, providing us with an indispensable tool for data processing. However, the limited set of intermediate operations – filter, map, flatMap, mapMulti, distinct, sorted, peak, limit, skip, takeWhile, and dropWhile – means that more complex data transformations cannot be expressed directly through the Stream API. Operations like Window and Fold, among many others, are missing if we look at the community’s feature requests. Instead of integrating all these operations into the Stream interface, the JDK team developed a new API that, on the one hand, is used within the JDK itself to provide highly requested intermediate operations and, on the other hand, allows developers to implement their own operations. This new API is called “Stream Gatherers” and was first released as a preview feature (JEP 461) in Java 22 in March 2024, exactly ten years after the introduction of the Stream API. In Java 23, the new API was sent into a second preview round without changes (JEP 473). In this talk, you will learn in theory and practice (including live coding) what Stream Gatherers are and how they work, which Gatherers are already available in the JDK and how to use them effectively, how to implement your own Gatherers, and where the limits of the new API lie.

10:00 GMT

Rene Wilby Rene Wilby

Bridging the Gap: Seamless and Type-Safe Communication between Spring Boot and React
When developing modern single-page applications (SPA), communication between the frontend and backend poses various challenges for full-stack developers. In this talk, solutions for common problems will be presented using Spring Boot and React as examples: How can type-safe communication between backend and frontend be implemented? How can backend and frontend code be developed as efficiently as possible and kept synchronized so that entities and endpoints in the backend permanently match types and functions in the frontend? How can endpoints be created in the backend that can be used as seamlessly as possible in components in the frontend? The approaches shown range from purely manual implementation and code generation to the use of full-stack frameworks such as Hilla. All approaches are presented in a very practical way with the help of code examples and are finally compared and evaluated using a maturity model.

10:30 GMT

Ivan Yonkov Ivan Yonkov

Design Patterns are Easy inside an IoC Container
It’s more than two decades since the wide adoption of IoC based frameworks and J2EE standards had begun. And more interestingly – 31 years since the GoF Design Patterns was released. But somehow these two concepts do not seem to intersect in most of the production projects. A common usage of an inverted control is to leave to framework (e.g., CDI, Spring, …) to call a method of yours upon an event (let’s say HTTP handler) with a couple of framework utilities (e.g., EntityManager, Repositories, …) and then the codebase flattens into a bunch of classes calling each other executing complex conditionals and loops until receiving the desired business result. In other words, most of the Object Oriented Design is sacrificed. In this session we will see some practical examples to incorporate object oriented design, and in particular, some of the popular design patterns into any IoC based framework (using Spring as a reference example). Even better, we will see how such framework actually helps and advocates such techniques, which otherwise would be harder to implement from scratch.

11:00 GMT

XtremeJ Breakout Room

The XtremeJ Breakout Room 
The Breakout Room game takes place online. The participants in this game will need to find their way out by overcoming Java-based challenges. The first one to break out of the room is the winner. 

11:30 GMT

Second Break

Second Break

12:00 GMT

Haim Michael Haim Michael

Goodbye Boilerplate: The Visitor Pattern Reimagined in Modern Java
The Visitor design pattern has long been a staple for handling operations on complex object hierarchies—but it often comes at the cost of verbose, repetitive boilerplate code. In this session, Haim Michael demonstrates how modern Java reshapes this classic pattern by combining pattern matching, sealed classes, and record classes. You’ll see how these powerful features streamline the Visitor’s implementation, eliminating much of the ceremony and making the code more concise, expressive, and maintainable. We’ll walk through practical examples that highlight how sealed classes enforce controlled hierarchies, how records simplify data modeling, and how pattern matching makes branching logic clearer and safer. Whether you’re an experienced developer seeking to modernize legacy approaches or simply curious about how Java’s evolution empowers cleaner design, this talk will equip you with practical insights to write code that is both elegant and future-ready. Join us to discover how the Visitor pattern can finally shed its boilerplate and embrace Java’s modern features.

12:30 GMT

Andres Sacco Andres Sacco

Where is the Logic of My Application?
During this talk, you will see the relevance of creating a document that explains the architecture that all the company’s applications need to follow, considering the different layers and how to interact between them. Most developers use different alternatives to validate the project’s structure, like peer reviewers, but not all of these strategies work. You will see a short scene where you have an application where you will implement a set of tests using Archunit that validates the entire structure of the application and how you can extract these rules or validations into an external library to prevent duplicate code.

13:00 GMT

Kapil Kumar Reddy Poreddy Kapil Kumar Reddy Poreddy

From Checkout at Scale to Continuous Refactoring: Lessons in Building Resilient Java Platforms
High-traffic systems like retail checkout platforms process millions of Java transactions every hour, and the stakes rise dramatically during peak seasons such as Black Friday. Achieving scale is one milestone—sustaining resilience amid constant change is the real challenge. With evolving microservices, short-lived feature flags, rapid CI/CD pipelines, and AI-driven developer tools like GitHub Copilot, engineering teams must continuously refine both code and practices. This session distills battle-tested lessons from operating one of the world’s largest Java checkout ecosystems. You’ll hear how to  migrate from Apache Camel to Spring WebFlux for reactive performance, how to build Readiness and Resiliency Playbooks covering pod configs, HTTP tuning, and probes, how to use Time-to-Live (TTL) for feature flags to curb technical debt, and how to drive continuous refactoring with metrics (cyclomatic complexity, fan-in/out) and Copilot-assisted documentation. Attendees will leave with actionable strategies to future-proof Java systems: improving reliability, reducing costs, and embedding a culture of engineering excellence. Whether you are leading teams or contributing as a developer, this talk equips you to push Java platforms to new levels of resilience, scalability, and productivity.

13:30 GMT

XtremeJ Competitive Programming

The XtremeJ Competitive Programming Contest
The competitive programming competition is a Kahoot-based contest with algorithmic challenges that test coding skills, logic, and speed in a fun, competitive format. Make sure you already have the Kahoot app installed on your mobile telephone.  

14:00 GMT

Third Break

Third Break

14:30 GMT

Ram LakmashRam Lakshmanan

How to Troubleshoot 9 Types of OutOfMemoryError
Even though ‘java.lang.OutOfMemoryError’ appears as one single error at the surface level, underlyingly, there are nine types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches, and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.

15:00 GMT

Thomas Krieger Thomas Krieger

Deterministic Unit Tests for Multi-Threaded Java
Multi-threaded Java is not deterministic. That makes testing multi-threaded Java so difficult. We will see how we can use VMLens to iterate over overall thread interleavings. And by iterating over all thread interleavings, write deterministic unit tests!

15:30 GMT

XtremeJ Championship

XtremeJ Championship
We are going to have a Kahoot-based quiz competition. The competition will take place online and it will include quiz questions. The points are given in each quiz question in accordance with the correctness and the speed of the answer. Make sure you already have the Kahoot app installed on your mobile. .

16:00 GMT

Xperts Panel

XtremeJ Xperts Panel: The AI Revolution in Coding – Tools, Trends, and Tomorrow

Join leading experts for a thought-provoking discussion on how AI is reshaping software development. From agentic IDEs to spec-driven methodologies, the panel explores tools, trends, and the evolving role of developers in the age of intelligent coding. Audience interaction is encouraged.

16:25 GMT

Closure Talk

Closure Talk
This talk concludes the conference. During this 5-minute talk, we will also announce the winners in the various competitions XtremeJ included. 

Your Success is Ours!

We will do our best to serve your needs! This is our business model!​

Update cookies preferences