Anton Arhipov
Mateusz Rzeszutek
Dmytro Vyazelenko
Patrik Duditš
The best time to talk with speakers and attendees
Heinz Kabutz
Bazlur Rahman
Syed M Shaaf
Mads Opheim
Tomasz Sikora
The best time to talk with speakers and attendees
Jaroslav Tulach
Márton Kodok
Andrii Rodionov
Alexander Chatzizacharias
Jacek Marmuszewski
Marit van Dijk
Charles Nutter
Rafał Maciak
The best time to talk with speakers and attendees
Aviva Peisach
Martin Stefanko
Olga Gupalo
Pavel Lahoda
The best time to talk with speakers and attendees
Piotr Przybył
Vadzim Prudnikau
Mete Atamel
Arkadiusz Sokołowski
The best time to talk with speakers and attendees
Artur Skowronski
Michał Gawarzyński
Piotr Łaskawiec
Szymon Sadowski
The best time to talk with speakers and attendees
Paweł Stobiecki
Bazlur Rahman
Ryan Healey
Marcin Zajączkowski
MashRoom, Plac Wolnica 10
The best time to take coffee or juice
The best time to talk with speakers and attendees
To Be Announced
Join other attendees and share ideas, talk about the recent challenges, or find solution for a problem. During this session you can connect with other like-minded people in a space designated for certain languages, technologies, and interests.
1. Suggest a topic
Look for large white sheets of paper, and tell everyone what is on your mind! You can also tweet using #topicforgeecon hashtag. Vote for topics (mark it with line/x/heart) and like tweets to show others you’re interested.
2. Choose a room and have fun
We will group similar topics and assign a room. Topics will be pinned before room entrance (list of topics and rooms will be also posted using attendees slack channel - slack.geecon.cz), so you will be able to join others also interested in eg. Kotlin, JVM tuning, Machine learning or testability.
MashRoom, Plac Wolnica 10
L1_1
L1_2
L1_3
L2_1
L2_2
L2_3
L3_1
L3_2
L3_3
Historically, debuggers are used to help locate and fix bugs. Nowadays, the debugger in IntelliJ IDEA can help you do much more than that. Let's see how the debugger helps make the development process more productive. I demo various features for debugging Java applications, including not-so-standard ones, like: * Lambda breakpoints
* Stream chain tracing
* Dropping the frame
* Emulated method breakpoint
* Evaluate and log
* Non-suspending breakpoints
* Custom data renderers and more
100% live coding session
Anton Arhipov
Anton is a Developer Advocate in the Kotlin team at JetBrains. With a professional background in server-side development, Anton has been building tools for developers for more than ten years. Recognised as a Java Champion since 2014, he often speaks at software conferences and contributes to the Kotlin YouTube channel.
Do you love to maintain code that you didn’t wrote? Probably not… As systems grow and evolve, the codebase inevitably accumulates clutter, including unused or “dead” code. Often the developers who wrote that code are not even in the company anymore. So how do you know if the code is still used? Dead code can be confusing and it can be the source for vulnerabilities in your code base. So it is not only “legacy” code we have to deal with but also “dead” code and even so called “zombie” code. This session will give you an overview over the common struggle with this types of code and it will try to give you an idea about the differences between those types of code and about tools that will help you to get rid of it.
Gerrit Grunwald
Gerrit Grunwald is a software engineer that loves coding for around 40 years already. He is a true believer in open source and has participated in popular projects like JFXtras.org as well as his own projects (TilesFX, Medusa, Enzo, SteelSeries Swing, SteelSeries Canvas, JDKMon). Gerrit blogs regularly at http://harmonic-code.org, he is an active member of the Java community, where he founded and leads the Java User Group Münster (Germany), he is a JavaOne rockstar and a Java Champion. He is a speaker at conferences and user groups internationally and writes for several magazines.
'Culture eats strategy for breakfast'. That widely quoted statement, attributed to Peter Drucker, never really spoke to me and I found it pretty bland - until the day I was asked how we were actually able to pull it off. Half a year earlier we cancelled the subscription to our 24/7 support team because they didn't have any work with our services. Now, as I was explaining to the former lead of that support team how we work, I realized that for the most part our smooth sailing could be attributed to our team culture - and it suddenly clicked. Now Drucker's sentence made sense. The last couple of years as a software engineer I spent building SaaS products for end customers. I want to share my observations from working in highly effective software teams with you. Spoiler: this is not a talk about Scrum. Target audience: all people who are interested in how to collaborate more effectively, particularly in software teams.
Achim Wiedemann
I am a software engineer since over 15 years. Most of my career I spent in the Java ecosystem. I have worked in various industries across Germany and Canada. I am currently working for Bosch eBike Systems where we build a cloud platform for zero-emission mobility. Beside techie stuff I enjoy nature, traveling, music and hanging out with friends.
The use of AI in critical, sophisticated scenarios is desirable, but we all know it’s essentially impossible. Why? The non-deterministic nature of LLMs makes them prone to hallucinations and unreliable outputs. So, what can we do when our LLM responds with nonsense? Let us introduce you to the LLM guardrails. In this talk, we’ll dive into the Quarkus LangChain4j integration that provides you with the ability to verify and/or modify both requests and responses that are being exchanged with your model. Through practical examples, we’ll explore the options available for validating user-provided inputs, rewriting or retrying outputs, and even reprompting the model if needed. The guardrails not only enhance the reliability of AI-driven applications but also allow us to build more trust in our AI systems, one response at a time. Come to learn how we can ensure our LLMs stay on track, even in the most challenging scenarios.
Martin Stefanko
Principal software engineer at Red Hat, BrnoJUG leader, author Quarkus in Action, MicroProfile committer, working on Red Hat middleware technologies like Quarkus, SmallRye, Wildfly, JBoss middleware (RESTEasy, Weld, ...), programming and microservices enthusiast.
How to: use globbing for pattern matching, run a Java app without compiling with libraries, print an emoji, run an HTTP dev server, easy date and time, perform SIMD operations, access LLMs, run cron-like jobs, access the system clipboard, print colorful logs, implement smarter enums, 'piping' Java applications. implement a file watch, main() in interfaces, easy file parsing (...) and ~100 other popular Java snippets from http://youtube.com/@bienadam/shorts. No builds, no Maven, no dependencies, just plain java, in rare cases javac and Visual Studio code.
Adam Bien
Developer (Architect), Consultant, Trainer, Podcaster (https://airhacks.fm), AWS Hero and Java (Champion) enthusiast Adam Bien (https://adambien.blog) has been using Java since JDK 1.0 and JavaScript since LiveScript and still enjoys writing code. Adam regularly organises Java / Web / Cloud / Architectures online live workshops https://airhacks.live and a monthly Q&A live streaming show: https://airhacks.tv.
Functional programming is here to stay. While it hasn't taken over the world, many of today’s popular programming languages have at least borrowed some of its concepts. But if someone asks you, 'What is functional programming?'—would you be able to answer? Specifically, when can we call a language 'functional'? Or, what exactly is 'functional style'? In this talk, we’ll explore the features that may define a language as functional or enable functional programming style. On the other hand, we’ll examine whether certain features disqualify a language. Finally, we'll try to answer if Java might be considered a functional programming language. By the end, our goal will be to discuss functional programming more objectively and with greater confidence.
Adam Warski
I am one of the co-founders of SoftwareMill, where I primarily code using Java, Scala, and other interesting technologies. I am actively involved in open-source projects, such as Ox, Tapir, sttp, Quicklens, ElasticMQ, and others. I have also been a speaker at major conferences, including JavaOne, Devoxx, GeeCON and ScalaDays. In addition to writing closed- and open-source software, I spend my free time exploring various (functional) programming-related subjects. Any ideas or insights I gain usually end up with a blog (https://warski.org/articles).
Java Streams, introduced in JDK 8, have become a cornerstone of modern Java programming. This session explores the key enhancements and optimizations made to the Stream API in subsequent JDK releases. Join this session to learn about new APIs, performance improvements, or how Streams integrate with reactive programming through the Flow API. This talk is perfect for developers looking to deepen their understanding of Streams and apply the latest features to write more efficient, modern Java code.
Mihaela Gheorghe-Roman
Mihaela is a Software Architect at Systematic, Romania. Ph.D in artificial neural network algorithms, Assistant Professor at the University of Cybernetics and Informatics in Bucharest, she is a dedicated lead developer and architect who enjoys sharing her knowledge. In her professional career, spanning over 13+ years, she worked for telecom and defence domains with a focus on Java, Spring Boot, C, C#, Scala and Angular. Apart from her passion for programming, she loves parrots, she is enthusiastic about traveling the world and doing a lot of sports, from running at marathons, martial arts and to different aerobic trainings.
Writing correct, thread-safe code is notoriously challenging. Unlike single-threaded code, concurrency bugs often remain hidden, waiting for the perfect storm of conditions to emerge. Even the standard Vector class, long trusted for its thread safety, harbored a race condition for 5 years, only to introduce a potential deadlock that persisted for the next 9 years. The classes in java.util.concurrent are used in all major Java projects, either directly or indirectly. In this session, we will take a close look at some of the techniques used to create them. We will explore topics like lock striping in LongAdder, lock splitting in LinkedBlockingQueue, weakly consistent iteration in ArrayBlockingQueue, and check-then-act in CopyOnWriteArrayList.
Heinz Kabutz
Dr. Heinz Kabutz is a globally recognized Java Champion and the creator of the acclaimed Java Specialists' Newsletter, which has been read by thousands of advanced Java programmers worldwide. With a PhD in Computer Science and decades of hands-on experience, Heinz is renowned for his deep technical insights, particularly in the areas of Java concurrency, performance optimization, and advanced programming techniques. As a sought-after speaker, trainer, and consultant, he has delivered engaging talks and workshops at premier Java conferences and for leading companies around the globe. Heinz's practical, no-nonsense approach to Java programming has made him a trusted authority in the industry. (Wow, thanks ChatGPT!) https://www.javaspecialists.eu
As developers, we spend a lot of time learning to write code, while spending little to no time learning to read code. Meanwhile, we often spend more time reading code than actually writing it. Shouldn’t we be spending at least the same amount of time and effort improving this skill? Deliberate practice can help us get better at reading code. Learning how to better read and understand code, can in turn teach us what makes code readable. This might even help us to write code that is easier to read. In this talk we will discuss the benefits of deliberately practicing reading code in a code reading club or session without an IDE, as well as common strategies to navigate a new codebase and familiarise ourselves with the code using the IDE.
Marit van Dijk
Marit van Dijk is a software developer with over 20 years of diverse experience across various roles and companies. As a Java Champion and Developer Advocate at JetBrains, she is passionate about building awesome software in collaboration with amazing people, and making developers’ lives better. Marit is committed to continuous learning and actively shares her expertise in programming, software development, testing, and test automation. Marit regularly presents at international conferences, participates in webinars, and appears on podcasts. Additionally, she writes blog posts and tutorials, creates videos, and is a contributor to the book “97 Things Every Java Programmer Should Know” (O’Reilly Media).
Scaling microservices presents significant challenges—increased costs, complex upgrades, and inter-service communication overhead. At Wix, we faced these issues as our microservices grew to thousands. Enter Single-Runtime: a solution blending the flexibility of serverless with the cost efficiency of monolithic deployments. By leveraging Kubernetes daemonsets for host deployment and lightweight pods for business logic, we transformed our infrastructure to support multi-tenancy for the first time. Join us to explore our journey in tackling resource usage and infrastructure complexity. Attendees will gain actionable insights on reducing production costs, streamlining infrastructure management, and fostering innovation in a polyglot environment. Discover how to build a robust, cost-effective development ecosystem from our practical experiences.
Natan Silnitsky
Natan Silnitsky is a backend-infra tech lead at Wix. He designs and develops innovative solutions for Wix's platformization and development needs, significantly accelerating the creation and deployment of microservices and serverless functions. Before that he was tech lead for a team building event-driven libraries and tools on Kafka. A co-maintainer of Greyhound, an open-source Kafka client, and a Scala enthusiast. Natan is a renowned speaker, blogger, and advocate for clean, functional code, efficient development, and exceptional software design.
We tend to overcomplicate things especially when we learn them. Your friend comes back from a conference with shiny new ideas and the next day you wake up with event driven architecture for communication, event sourcing for persistence, domain driven concepts scattered randomly on your sources and a distributed monolith in a monorepo. And none of this helps, quite the contrary. Since this is usually where I help companies, I’d like to show you a few recurring patterns of overcomplification and how to avoid them. I’m going to talk about:
Jakub Nabrdalik
22 years designing & building systems, 10 years microservices, 6 years Event Driven systems, 12 years teaching and presenting. Over 300 workshops around the world. Cybersecurity, Banking, Finance, Telco, eCommerce, CMS, ERP and e-mobility and other domains.
As applications increasingly rely on Kubernetes for deployment, ensuring seamless integration and end-to-end testing during pull requests is crucial. This talk dives into the practical steps of building a robust CI/CD pipeline that mirrors production environments, enabling reliable and efficient testing within your Kubernetes ecosystem. We’ll explore how to:
Nicolas Fränkel
Developer Advocate with 15+ years experience consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). Usually working on Java/Java EE and Spring technologies, but with focused interests like Rich Internet Applications, Testing, CI/CD and DevOps. Also double as a trainer and triples as a book author.
Threading in Java has a long and exciting history. To start from the beginning, let's look into the green threads and the subsequent transition to native threads. What were the shortcomings of native threads that needed to be overcome in Java web server runtimes? What was the history of Project Loom's endeavour to introduce continuations to Java? To add some excitement, we will compare reactive approaches with modern Virtual Threads and assess the support for Virtual Threads in modern microservice runtimes with Virtual Thread based Helidon 4.
Daniel Kec
After years of exploring all sides of Java in various companies landed in a great team that develops Helidon.
How does behavioral psychology connect to coding? This talk explores how understanding and managing your mental energy can transform the way you work. Using accessible research, including Daniel Kahneman’s concepts of “fast” and “slow” thinking, we’ll dive into how different types of thinking impact decision-making and productivity. We’ll also discuss how to conserve mental fuel, so you have the focus and clarity needed for critical tasks—even at the end of a demanding day. In addition to understanding how our minds work, we’ll talk about practical techniques for managing time and allocating mental resources effectively. This includes strategies to reduce context switching, avoid wasting mental energy on low-priority tasks, and stay focused on what really matters. By using your mental energy wisely, you’ll be able to maintain productivity and avoid burnout. If you’re interested in learning how to apply behavioral psychology to your workflow, improve time management, and make smarter decisions with less effort, this talk is for you.
Baruch Sadogursky
Baruch Sadogursky did Java before it had generics, DevOps before there was Docker, and DevRel before it had a name. He started DevRel at JFrog when it was ten people and took it all the way to a successful $6B IPO by helping engineers solve problems. Now Baruch keeps helping engineers solve problems but also helps companies help engineers solve problems. He is a co-author of the 'Liquid Software' and 'DevOps Tools for Java Developers' books, Java Champion and CNCF Ambassador alumni, serves on multiple conference program committees, and regularly speaks at numerous most prestigious industry conferences, including Kubecon, JavaOne (RIP), Devoxx, QCon, DevRelCon, DevOpsDays (all over), DevOops (not a typo) and others.
I am programming (for) the JVM for a long time. I have seen a lot of conferences and tons of Java programmers and I can guess what they are interested in and what they need. However during the last few years I have started to meet different group of programmers. Functional ones. Functional programmers are different. They think differently. They do things differently. Most of them finds Java ridiculous. Are they right or do they just preach water and drink wine? I have had a lot of opportunities to watch them and think about such a question. I believe I do understand them now. At the end 'who wants to hang out with wolves, has to howl with them'... During my talk I am ready to shine a light on this functional world and reveal all the secrets it tries to hide in front of JVM developers!
Jaroslav Tulach
Jaroslav is the founder and initial architect of NetBeans, which is not just a well-known IDE, but also the first modular desktop application framework written in Java. Jaroslav devoted the last ten years to the design of interoperability between Java, JavaScript and other dynamic languages. Jaroslav is currently helping the dual syntax (visual & textual) Enso.org language to run faster and better reuse GraalVM polyglot capabilities.
Do you want to know your options for running Java on Google Cloud? We will explore various options for running workloads written using the latest Java and Jakarta EE versions on serverless offerings like CloudRun and Knative. Furthermore, we will look at optimizing your runtime performance using various frameworks and Native Image compilation.
Rustam Mehmandarov
Passionate computer scientist. Java Champion, Google Developers Expert for Cloud, and Docker Captain. Public speaker. Community builder. Mentor.
When billing costs in the cloud are based on resource usage, the general advice is simple: use less. In this session, we’ll explore how to build size-compact, cloud-native Java applications that are optimized for deployment in resource-constrained environments. We’ll focus on packaging a Spring Boot web server into slim, distroless, and scratch containers—each providing just enough operating system to run the application. Along the way, we’ll discuss the trade-offs of these approaches, and demonstrate how smaller containers not only reduce resource usage but also are faster to transfer and deploy, which is critical in autoscaling scenarios. The session will dive into GraalVM Native Image configuration options that enables static linking and stripping out unused code, and additionally experiment with Jlink to create a custom Java runtime. Additionally, we’ll explore the advantages of switching from standard JVM-based Paketo Buildpacks to those that support ahead-of-time compilation. Finally, we’ll demonstrate how to automate the entire process—building, optimizing, and containerizing—using CI/CD pipelines.
Olga Gupalo
Member of the GraalVM and Graal.Cloud teams. Maintainer of the GraalVM website and documentation, with a focus on content management, accessibility, community outreach, and the creation of learning materials. Committed to share awareness about Native Image and other innovative Graal technologies among Java developers. GitHub profile: https://github.com/olyagpl
Designing for low latency is hard. We need principles to help us navigate the performance landscape. I'll present here a ranked set of guidelines to lead you through the maze of trade-offs that you will meet in designing a low latency application: 1. No Garbage – none, really?
2. Natural Batching and why you need it.
3. Threads are evil.
4. No exceptions!
5. The Single Writer Principle.
6. Sharing isn’t caring.
7. Good programmers copy, great programmers … don't.
We'll look at the implementation of these principles in the Aeron messaging system and the measured benefit of using them. Applying these principles to the design of any application – low latency or otherwise – will result in a less complex, more efficient, more maintainable system.
Dmytro Vyazelenko
Independent consultant working on Aeron at Adaptive. Disorganizer of the JCrete and JAlba unconferences.
This is an AI free talk. I wanted to tell you a story (hope you will find it quite funny) of a banking project which I was developing for several years. From idea, early prototype through rise of the first implementation, pains of maintenance (spring and hibernate included!), general rewrite (no-code? almost no code?) ending with long and prosper life on a modern tech stack (any ideas of a modern tech stack for manager? :-D). This lightning talk contains several general conclusions about product/tech which everyone should keep in their hearts during everyday work.
Adam Dudczak
Engineer and builder at heart, always eager to make his hands dirty to solve real users problems and help the community. Experienced people and product leader with several years of experience in developing AI/ML-based solutions. I am professinaly involved with Java and related technologies since 2004. Interested in endurance sports, science fiction and local history. Top speaker at Geecon and Allegro Tech meeting.
Now you're presumably thinking, 'What a stupid question?'. Surely, there's no one answer to this. It depends on several factors; what you're doing, where the code is running, and how many you need. However, I had never really thought about it in-depth before until someone asked me: 'What is your favourite number of threads?'. In this short (and hopefully fun) talk, I will take you through nearly all possible answers to this question and why they are both right and wrong on a technical and human level. Finally, I will give what I believe is the ultimate and final answer to the question: 'What is the best number of threads?'. There is no barrier to entry here. If you know what a thread is, then you're qualified enough to come along and have fun.
Ryan Healey
Bioengineer turned programmer with 5 years professional experience at THG and LMAX, Ryan might not have as much experience in the game compared to most but he's keen to learn and eager to share what he's learnt. Strong believer that coding should be fun and hopes that his talks are too.
Are you tired of all the hype around yet another LLM-as-a-Service? That's why I want to talk about something more interesting than just another tool for prompt engineers. While the entire industry is discussing it, my goal is to explain what needs to happen within the virtual machine for the JVM to become a good platform for Machine Learning and AI. We will discuss hardware and the challenges its evolution poses for the JVM, projects like Valhalla and Babylon, as well as standardization efforts like the JSR381 Visual Recognition API. We will also look at initiatives like TornadoVM. This will be an overall birds-eye view to understand how the JVM can meet the demands of contemporary artificial intelligence and machine learning.
Artur Skowronski
Head of Java/Kotlin Engineering at VirtusLab, he has been in the industry for ten years. During this time, he has had the opportunity to work in various roles, such as Software Engineer, Tech Lead, Architect, and even Technical Product Manager. This diverse experience enables him to approach problems from a holistic perspective. He still loves to get his hands dirty - for more than two years, he has been publishing weekly reviews of events in the JVM world - https://jvm-weekly.com
The rise of AI is transforming engineering management, demanding fresh approaches to leadership and collaboration. Many engineering leaders, however, are unprepared for the challenges and opportunities AI presents. This session will explore how to embrace AI-driven tools, foster collaboration between humans and AI, and redefine success metrics for the AI era. Learn what the future of engineering management will look like and how you can shape it to drive innovation and success.
Bartłomiej Pisulak
Director of Cloud Quality Engineering with 12+ years of professional experience. Passionate about building successful organisations. Seasoned IT Trainer and university lecturer, with more than seven years of experience and 400+ people trained. Executive MBA graduate.
It’s easy to generate content with a Large Language Model (LLM), but the output often suffers from hallucinations (fake content), outdated information (not based on the latest data), and reliance on public data only (no private data). Additionally, the output format can be chaotic, often littered with harmful or personally identifiable information (PII), and using a large context window can become expensive—making LLMs less than ideal for real-world applications. In this talk, we’ll begin with a quick overview of the latest advancements in LLMs. We’ll then explore various techniques to overcome common LLM challenges: grounding and Retrieval-Augmented Generation (RAG) to enhance prompts with relevant data; function calling to provide LLMs with more recent information; batching and context caching to control costs; frameworks for evaluating and security testing your LLMs and more! By the end of this session, you’ll have a solid understanding of how LLMs can fail and what you can do to address these issues.
Mete Atamel
I’m a Software Engineer and a Developer Advocate at Google in London. I build tools, demos, tutorials, and give talks to educate and help developers to be successful on Google Cloud.
The system for marketing automation which we build in Allegro currently handles more than 25 000 incoming events. We had to make tough decisions in order to deliver new features and overcome performance bottlenecks. I will tell about our journey on real life cases which overwhelmed us at first. The presentation will cover multiple types of trade-offs from technical to business.
Michał Gawarzyński
I have been working for Allegro for 7 years now. Currently, I am the leader of the team responsible for service mesh. I spent most of my time at Allegro as a software engineer developing solutions for marketing automation. For years, I ran the company's Krakow book club where we discussed topic related to distributed systems, databases and project management.
The JVM has evolved over the past 20 years to support an impressive array of features. At the same time, dynamic languages like Python, JavaScript, and Ruby has grown more popular. This talk will explore the array of JVM features that can be used to build and support dynamic languages on the JVM, from InvokeDynamic to Panama to Loom to Leyden. We will explore the trade-offs involved and talk about what the future holds.
Charles Nutter
Charles has been a Java developer for almost 30 years, and has helped to lead the JRuby Project since 2005. Today he is the leader architect and technologist at Headius Enterprises, providing commercial support options to users of JRuby and other open source projects.
In this session, we will delve into the dynamic relationship between large language models (LLMs) and vector databases. LLMs, like ChatGPT, have the ability to generate human-like text and respond intelligently to questions. But how do these models understand and maintain context? The key lies in vectorization. Text is transformed into high-dimensional mathematical representations—vectors—that capture semantic meaning beyond individual words. These vectors allow LLMs to efficiently store, compare, and retrieve information. By utilizing vector databases, we can perform fast similarity searches, enabling AI systems to find the most relevant information, even when it isn’t an exact match to the input. This capability is crucial for tasks such as contextual search, recommendation systems, and natural language understanding. During the session using Kotlin and LangChain4j, I will demonstrate how to convert text into vectors, store them in a database, and retrieve relevant information in real-time.
Marcin Łapaj
An adult programmer and enthusiast of the craft approach to coding. For 18 years, he’s been writing code of varying quality. He has journeyed from developer to manager and back again. Personally, he’s passionate about cycling and travel.
You will learn how to move beyond simple LLM calls to build intelligent agents with Gemini 2.0. Learn how function calling, structured outputs, and async operations enable complex agent behavior and interactions. Discover how to create purpose-driven AI systems capable of a series of actions. The demo covers how a chat message activates the agentic experience, then agents utilize tools to achieve complex goals, and unlock the potential of multi-agent systems, where they collaborate to solve problems. Join us to discover how Gemini 2.0 empowers you to create multi turn agentic workflows for everyday developers.
Márton Kodok
Márton is a 8x Google Developer Expert (GDE) on Cloud, a 3x Champion in the Cloud Innovators program, senior software architect at REEA.net who led the implementation of complex and distributed web backends serving millions of users for companies like Logomaker, Vodafone, LogoMix, Deluxe, WaterSmart, Ausschreibungsdienste and many more. Mentor and consultant for startups. Active contributor for open-source solutions like Beanstalkd console, and Riak admin interface. Expert in Cloud Technologies, Scalability, HA, Serverless, Cloud Run, Vertex AI, database systems like BigQuery, Redis, MySQL, Elasticsearch. Topics he is interested in: backend web development, cloud computing, community building, monitoring, devops, and continuous improvement of systems. When he is not coding, spends time hiking in the mountains with his family, or gurgling with their cat.
When there’s order in our world, it’s much easier to navigate. As programmers, we rediscover this simple truth with great enthusiasm every few years. In Java 21, we’ve been given a new toy—virtual threads. One of their main selling points is the slogan: 'Create, start, forget'—an enticing promise that encourages us to create as many of these threads as possible. But we all know what happens in kids' rooms after a birthday party or a fresh delivery of toys—chaos. This time, however, the creators of Java have tried to anticipate the mess and provided us with a brand-new API: Structured Concurrency. It’s not a groundbreaking innovation or a reinvention of the wheel, but rather a proven way to 'organize' concurrency in our programs. During this presentation, I’ll introduce you to the concept of Structured Concurrency, explain why it works and why it was created. I’ll also demonstrate this code in action.
Konrad Szałkowski
I’m a silicon-addicted Java developer, always on a mission to save the world from the clutches of legacy code—and occasionally rescue coffee machines in distress. My passion lies in turbocharging application performance and crafting solutions that are not only efficient but also a joy to debug.
OpenRewrite is a well-known automated refactoring platform for Java, Groove, and Kotlin source code. It consists of an auto-refactoring engine, refactoring recipes for common framework migrations, security fixes, and other stylistic tasks. Using OpenRewrite allows you to reduce coding time from hours or days to minutes. But for now, we would like to extend the platform by adding support for non-JVM languages. TypeScript, Python, and C# are currently in our development pipeline. During the talk, we will discuss OpenRewrite's basic concepts of LST, TreeVisiting, Recipes, Type attribution, etc. Then, we will look at how other languages apply these concepts and reuse Java-based LST and the OpenRewrite platform.
Andrii Rodionov
Andrii is an associate professor at the National Technical University of Ukraine, reading a cycle of lectures about distributed systems. He currently works in the Moderne language team. Interested in microservices, distributed algorithms and data structures
Generative AI is taking the world by storm. While some use cases may seem questionable, many systems can genuinely benefit from GenAI. While most attention still focuses on advancing GenAI capabilities, integration with new and existing enterprise-grade systems often gets overlooked. This talk presents a software architect's perspective on incorporating various GenAI models into your applications. We'll examine key quality attributes (such as portability, maintainability, security, and extensibility) while comparing two popular JVM solutions - Spring AI and LangChain4j. All of that will be illustrated with real-life stories and examples.
Piotr Łaskawiec
Pragmatic software architect and common sense evangelist. Deeply believes in holistic approach to software development. Occasional speaker and trainer. JVM enthusiast. Mastering the craft since the times of C64. He thrives on helping others to deliver high-quality solutions.
Mill is an open-source JVM build tool 4-10x faster than Maven and and 2-4x faster than Gradle for common workflows. With automatic caching, extensive parallelism, and easy extensibility, Mill allows you to effectively build large Java projects even as they grow in size, complexity, and number of developers. This talk will explore some of the benefits of the Mill build tool, dive into the technical details of how a modern build tool works, and show how you can try out Mill today on your greenfield or brownfield Java codebases.
Haoyi Li
Li Haoyi graduated from MIT with a degree in Computer Science and Engineering, since then has built core infrastructure for high-growth companies like Dropbox and Databricks, and has been a major contributor to the open source community. His projects have over 10,000 stars on Github, and are downloaded over 20,000,000 times a month. Haoyi has deep experience in the JVM and has professionally built distributed backend systems, programming languages, high-performance web applications, and much more.
AI is revolutionizing the software landscape. However, for many Java developers, integrating these powerful AI tools into existing enterprise applications or a new one can feel daunting. In this hands-on session, we'll demystify the process and show you how to build LLM-powered features directly into your Java codebase. Using JakartaEE and the LangChain4j library, we'll dive deep into Retrieval Augmented Generation (RAG), a cutting-edge technique that combines the vast knowledge of LLMs with the precision of your own data. We'll explore how to create both few-shot and zero-shot RAG models, and then add practical features like summarization and similarity search, backed by an Embedding database. Through a live coding demo, we’ll walk you through constructing an AI-powered online store backend and provide practical insights into the architecture and code. Whether you're familiar with AI or just getting started, this session will give you the confidence and skills to harness the potential of LLMs in your Java projects.
Bazlur Rahman
A N M Bazlur Rahman is a Software Engineer with over a decade of specialized experience in Java and related technologies. His expertise has been formally recognized through the prestigious title of Java Champion. Beyond his professional commitments, Mr. Rahman is deeply involved in community outreach and education. He is the founder and current moderator of the Java User Group in Bangladesh, where he has organized educational meetups and conferences since 2013. In the past two years, Mr. Rahman has been an active speaker at various international conferences and Java user groups. His talks have often focused on specialized topics such as concurrency and virtual threads. In addition to his community work, Mr. Rahman also serves as an editor for Java Queue at InfoQ and Foojay.io, both of which are leading platforms for technology content. Notably, he has authored five books on the Java programming language in Bengali, three of which have become best sellers in Bangladesh. He is currently writing a new book with O'Reilly titled 'Modern Concurrency in Java'.
Syed M Shaaf
Shaaf is a Principal Architect at Red Hat. A contributor to Konveyor community a CNCF Sandbox project. Mostly developing code with Java, Node and recently AI/ML. For the last 15 years, he has helped customers create and adopt open source solutions for applications, cloud and managed service, continuous integration environments, and frameworks. Shaaf is a technical editor at InfoQ and spends his time writing about Kubernetes, Security and Java
Java 8 introduced Streams in 2014, revolutionizing data processing. While incremental improvements have followed, Java 24 marks a significant leap forward. This session will explore: Stream Gatherers: A powerful new feature enabling more sophisticated intermediate operations. Custom Intermediate Operations: A comprehensive API empowers developers to create their own unique stream transformations. Hands-on Coding: We'll delve into practical examples, including building custom gatherers and intermediate operations. Key Takeaways:
Ron Veen
Ron Veen is a seasoned software engineer with extensive experience ranging from Microservices to mainframes. His passion for software engineering and architecture has been his guiding force throughout his career. With over 20 years of expertise in the JVM and the Java ecosystem, Ron is an Oracle Certified Java Programmer (OCP) and a certified Sun Business Component Developer (SCBCD/OCPBCD). A dedicated Java enthusiast, Ron also has a keen interest in alternative JVM languages, particularly Kotlin. At Team Rockstars IT, he serves as a Special Agent and lead developer, frequently speaking at international conferences. Ron is the author of books on Java Cloud-native migrations with Jakarta EE and on Virtual Threads, Structured Concurrency, and Scoped Values.
The world is changing, it’s pretty clear by this point. With the advent of generative AI, we are witnessing the boundaries constantly being pushed on what is possible for a machine to understand and do, simply by using words. However, while this revolution is happening, our dear old friend SQL has officially celebrated its 50th birthday, proving itself once more as a survivor in the world of data. So what is it going to be? Who will control the future of data? Words or SQL? Let’s take a journey into the past, present and future of querying data. We will talk about how SQL became so popular and how it survived for so long . We will talk about the LLM revolution, the challenges of leveraging AI to transition from SQL to NLQ and the technologies that might get us closer there such as RAG, Semantic Layers and Knowledge Graphs. Lastly we will peek into the crystal ball and try to figure out what the future might bring and how it might change the way we see modern data platforms.
Josef Goldstein
The data and culture guy. Currently leading the Big Data Platform R&D at Wix. Josef has over 15 years of experience building data intensive SaaS applications and growing the awesome teams that make them. He believes that the secret sauce for creating sustainable complex systems is good design practices, effective communication between people, and automating everything. In his day to day he works tirelessly on building the culture necessary to support these values and propagate them to others, one pep-talk at a time.
Failure is an inevitable part of innovation, but it’s also the most underappreciated teacher in the tech industry. In this candid and storytelling-driven session, I’ll walk you through 12 of my most memorable professional missteps as a solutions architect, Java community leader, and IT strategist. From underestimating legacy systems to mismanaging cloud migrations and from overengineering solutions to misaligning stakeholder expectations, I’ll unpack how each “failure” taught me critical lessons about resilience, adaptability, and the art of problem-solving. This session isn’t just about what went wrong but what we can learn. Expect to laugh, reflect, and leave with actionable insights into how you can navigate complexity, embrace imperfection, and grow from challenges in your career. Whether you’re an architect, developer, or leader, this talk will empower you to see failures as stepping stones to tremendous success. After all, the only true failure is the one we don’t learn from.
Mohamed Taman
Adopts Java SE.next(), JakartaEE.next(), a JCP member, was a JCP Executive Committee member, JSR 354, 363 & 377 Expert Group member, EGJUG leader, Oracle Egypt Architects Club board member, speaks Java, loves Mobile, Big Data, Cloud, Blockchain, and DevOps. An international speaker, book and video author of “JavaFX essentials,” “Getting Started with Clean Code, Java SE 9”, and “Hands-On Java 10 Programming with JShell”, And I won Duke’s Choice 2015, 2014, and 2013 awards, and JCP Outstanding Adopt-a-Jar Participant 2013 awards.
I've spent countless hours the last 15 years on politics. My claim is that it has made me a better programmer. Let me tell you how. Some of the topics I'll go through:
Mads Opheim
Developer who wants to make people awesome in a safe environment. Strives for technical excellence while solving the right problems, and likes domain-driven design, modern agile, the JVM and to write code. Employed by Computas, currently working with the Norwegian Welfare Administration (NAV).
Using vector embeddings for Retrieval-Augmented Generation (RAG) is frequently demonstrated these days. However, embeddings have a broader range of applications, including the ability to group similar items together. Log files, with their wealth of information, are an ideal candidate for this approach. By clustering log entries, we can uncover common issues as well as rare conditions within complex systems. This talk will begin with traditional techniques using term vectors and then delve into how modern vector embedding models can enhance log file analysis. We will explore how to build such a processing pipeline, which is often a fun way to start understanding the problems of the system you're dealing with.
Patrik Duditš
Patrik spent most of his career developing web applications on top of Java EE. The passion for this tech stack lead him to work full-time on cloud runtimes and MicroProfile and Jakarta EE specifications at Payara. His most favorite problems to tackle are distributed systems, monitoring, race conditions but single stack frontend development as well.
Ever wondered what would happen if you used IntelliJ IDEA as a game engine? Probably not, but Alexander did, and it turns out, it’s absurd and a lot of fun! Join Alexander for a lighthearted yet insightful dive into the absurdness of using one of the most sophisticated IDEs to create games within your codebase because... well, why not? In this talk, Alexander will walk you through his adventure of using the IntelliJ plugin platform to implement game logic, render graphics, and more. He’ll share the head-scratching moments, the 'aha!' breakthroughs, and the plain stupidity of making this idea work. You'll see IntelliJ handling sprites, game physics, and maybe even a rogue mutable variable trying to destroy your cursor! This session is for anyone who believes that the best projects are born from a spark of curiosity and a sense of fun. Discover how pushing the boundaries of your tools can lead to unexpected innovations and a lot of laughs along the way. After all, the most important work we do is often the work we find the most fun. Come ready to chuckle, learn, and maybe even be inspired to try your own offbeat experiments!
Alexander Chatzizacharias
Alexander, a 34-year-old Software Engineer at JDriven, holds dual Dutch and Greek nationality. He earned his master’s degree in Game Studies from the University of Amsterdam, where he discovered his passion for gamification and software engineering. Alexander aims to bridge the gap between game development and software engineering, believing that both industries have much to learn from each other. He is dedicated to integrating technologies and methodologies from both fields. Additionally, he enjoys experimenting with new technologies and cutting-edge sdk's.
TL;DR: A fresh look at IT security with smartphones, a 'reverse of control' approach, and P2P at center stage. With the number of active smartphones approaching the size of the world population, many companies advocate a 'mobile-first' approach—including in security-related use cases. However, due to factors such as developer inertia and incremental updates to legacy systems, server-centric architectures still dominate technology stack decisions. When it comes to security, mobile devices are often relegated to a mere 'second factor'. Despite significant progress in the field, including the shift towards 'passwordless' security, this domain remains brimming with outdated clichés — from identity providers and firewalls to freely flowing access 'tokens'. As a result, security incidents and their economic implications continue to rise. This talk offers a fresh perspective on security, placing the user and their smartphone at the center. We will explore how modern smartphones—equipped with a variety of sensors and advanced security technologies—can help us weave a security network far more resilient than existing solutions. We’ll start by dissecting current security and identity management technologies, identifying their weaknesses and breaking points. Then, we will distill best practices and highlight common pitfalls to avoid. The core of this talk will focus on how to leverage proven smartphone security techniques—such as asymmetric cryptography, secure enclaves, and biometrics—and combine them with less commonly used elements (e.g., environmental data from sensors and P2P interactions) to form stronger security chains than those typically available today. We will cover practical use cases, including authentication, identity verification, mitigating common attacks, and handling exceptional situations—such as losing your smartphone or another critical component of your security chain. This discussion will dive into technical details, providing practical tips and sample code. This talk does not cover or promote any existing product. The ideas presented can be implemented in any programming language relevant to mobile and server development, including good old Java.
Pavel Lahoda
As a Chief Binary Officer of Actiwerks, I am responsible for all the questions that can be answered by yes or no. Proud author of ObjectForms multiplatform development framework and Netopeer, a communication/security product
Your Continuous Integration pipeline is the bloodstream of your organization. In this talk, we’ll share hands-on tips and tricks to keep your pipeline fast, efficient, and reliable. From using the right CI strategies to parallel processing, running tests selectively, skipping unnecessary steps, and managing dependencies better, we’ll cover plenty of practical advice you can apply immediately. Uncover the secrets to a pipeline that never slows you down!
Szymon Sadowski
I've been a software engineer for over seven years, diving deep into Java, cloud tech and platform engineering. For me, coding's all about keeping it fun, treating it like art (no rushing!), and sharing what I know – because that's how we all get better. I love working on platforms and developer tools. It's a gig full of different challenges, which keeps it exciting!
AI will stay with us, whether we like it or not. The continuous growth of the possibilities of AI systems presents both opportunities and challenges, which requires from us to be more responsible for the world around us. The advent of AI can have a darker side, and it’s not necessary the development of rouge AI that will decide to wipe out humanity, like in the movies. During this talk I would like to give you some (possibly) less common perspectives on AI, and to leave you with some food for thought. This talk will be for everyone - feel free to join. And now ask yourself: can you tell if this abstract has been generated by AI, or not?
Maciej Krzysica
Maciek has 15 years of experience, first as a developer and now as a team leader at j-labs. Still connected to the Java word, he now explores the strange land of team management, people relations and business deciphering. He would like to focus on extracting the most useful and practical parts of the soft skills world and share them with other engineers.
How do you move an organization from a culture of heroic production firefighting to one of consistent, proactive reliability? At Wix, we transformed our approach to resilience and error prevention & handling, shifting from relying on heroic interventions to fostering a 'Zero Error' mindset, where errors are prevented, caught and resolved as early as the development phase and achieved five nines production availability! In this talk, I’ll share how we:
Aviva Peisach
Aviva Peisach leads Wix's Backend Engineering Guild and heads the Wix-Identity company. With over 20 years of experience, she has held leadership roles in R&D across startups and corporations, including VP R&D and Engineering Director positions. Aviva is a champion for diversity and inclusion, having founded Israel's Women-in-Tech Forum and spearheaded numerous diversity and inclusion initiatives. Beyond her professional achievements, she is the proud mother of three, a coding teacher, belly dancer, public speaker and a published author. One of her main passions is production reliability and resilience, sharing knowledge and promoting it across organizations.
When implementing an ETL job, doing data analysis, or simply reading an Excel file, you will quickly discover that standard Java is missing some key components for data processing and visualization, which are present in more complex and heavy tools like Spark or Flink. So can we use big data techniques without the big data infrastructure? This talk will demonstrate how a lightweight DataFrame from the open-source DFLib library (https://dflib.org) solves this problem for any Java app and a large number of use cases. It will also highlight a couple of other techniques that may feel 'exotic' to Java developers, but nonetheless are very useful, namely Jupyter Notebook and Java charting based on Apache ECharts, essentially assembling a full data engineering toolkit for the 'normal' programmers.
Andrus Adamchik
Andrus is a passionate open-source developer and a member of the Apache Software Foundation. He started programming in Java back in 1998, and founded a number of open-source projects: Apache Cayenne - a developer-friendly ORM, Bootique.io - a lightweight Java app platform, Agrest.io - a framework for dynamic REST services, and DFLib - DataFrame for Java. In his day job, Andrus is an IT entrepreneur, running a software company called ObjectStyle.
Are you satisfied with the domain model in your project? Do you find it sometimes overcomplicated? Is making changes to it a challenging task? Does a part of your business logic exist in REST controllers and large service classes? Moreover, are there any important business use cases lacking proper test coverage? If you want to understand how to implement domain models effectively, please attend my talk. I will share ideas from many years of personal experience specifically related to developing domain models and dealing with various business scenarios in real code. Many of the strategies I will demonstrate during the presentation were acquired through learning from painful mistakes. To bring these concepts to life, I'll walk you through code examples highlighting the common traps to avoid and the best practices to adopt. I look forward to seeing you at my talk!
Vadzim Prudnikau
Hands-on Architect, IT Trainer, and Conference Speaker with 20 years of experience who believes that technical skills, self-education, being a good team player, and knowledge sharing are the keys to success. Trained over 450 people in Architecture, EventStorming, and TDD, completed more than 10 projects that are in production, led more than 5 development teams, mentored over 20 developers, interviewed over 100 developers for more than 20 positions, and created a Java department. An expert in Java and has also experience with Kotlin, Groovy, and other programming languages.
You were tasked with building a real-time platform, but traditional tools couldn’t handle the massive data streams, leading to lagging performance and frustrated users. Deadlines were looming, and the team needed a breakthrough. And when you learned about Apache Flink. We’ll explore how the DataStream API allowed efficient real-time data processing and how the Table API and SQL features simplified complex queries with familiar syntax. Testing became more straightforward, and managing the application state was no longer a headache. You’ll learn:
Viktor Gamov
Viktor Gamov is a Developer Advocate at Confluent, a company that makes a cloud streaming platform based on Apache Kafka. Viktor has comprehensive expertise in building enterprise application architectures using open source technologies. He enjoys helping architects and developers design and develop low latency, scalable, and highly available distributed systems. He is a professional conference speaker on distributed systems, streaming data, JVM, DevOps topics, and regular events, including JavaOne, Devoxx, OSCON, QCon, and others. He co-authored O’Reilly’s «Enterprise Web Development.» He blogs at http://gamov.io and co-hosts DevRelRad.io. Follow Viktor on Twitter @gamussa, where he posts there about gym life, food, open-source, and, of course, Kafka and Confluent!
Being an engineering manager is so much more than just leading teams. Navigating AI-driven transformations, shifting generational expectations, and increasing emotional labour in leadership are just a few of the challenges that managers face while trying to maintain the team's motivation, well-being, and performance, juggling business priorities, managing tech debt, application performance, scalability, and reliability, and taking care of a bunch of other things (ofter forgetting to take care of themselves!) In this talk, I'll discuss the challenges of modern engineering management, including the tension between technical expertise and strategic leadership, the risks of burnout and boredom, and the growing demand for empathy-driven leadership. I'll share my learnings and insights into managing 'the engineering leg,' including AI adoption and integration, fostering multi-generational team collaboration, and maintaining personal resilience. Whether stepping into management or refining your leadership style, this session aims to do a 'reality check' of the manager's role and to equip engineering leaders with the tools to adapt, inspire, and lead without losing themselves.
Agnieszka Lasyk
As a senior engineering leader, I bring over a decade of hands-on experience in software development and managing large-scale tech projects. At Schibsted Tech Polska, I focus on building innovative teams, aligning technology with organisational goals, and navigating the complexities of modern engineering management. My PhD research explores how advancements in AI and shifting generational values are redefining leadership roles, particularly for middle and line managers in tech organisations. I’m passionate about understanding how leaders can adapt to these changes and balance technological innovation with sustainability and human-centred values. As a conference speaker and mentor, I connect the dots between technology, leadership, and people. My sessions dive into practical strategies for building high-performing teams, adapting to disruptive technologies, and leading in an era of rapid change and ethical challenges. In my private time, I love being out in nature and taking long walks with my border collies. I also spend quite some time running in the woods and hills.
Stephen Hawking used to say that quiet people have the loudest minds. Do you agree? I do and I do think that your impact is immeasurable. Let's think through it together and reflect on the strategies how to make our introversion shine and boost your career! During this talk, you will learn about:
Tomasz Manugiewicz
General Manager of polish engineering hub of global software company evoke. An engineer at heart. A speaker by passion. An author of “Executive Agile” book. In the IT sector since 2005. At the beginning of his path, when he was a Java Engineer, he helped to create one of the first Polish online banking systems. He also worked for global corporations, including banking and ICT telecom sectors. Tomasz run IT projects also for US AirForce and Microsoft. He is an Agile enthusiast - conducted his first Agile Transformation in 2009 for T-Mobile Austria. Working at the University of Science and Technology, he is a lecturer, running courses on Executive Agile as well as Software Architecture, supporting young engineers on their way to the world of IT. He is also a lecturer in the field of Business Psychology at the Applied Psychology department of Jagiellonian University as well an Advisory Board Member at the faculty of Computer Science /Math.
Working on web projects often means dealing with two separate environments —one for the backend and another for the frontend —each with its own ecosystem. Developers frequently encounter issues when dealing with their counterparts' ecosystems, creating a needless wall between front-end and back-end developers. You have to use unfamiliar tools, follow API changes, create mocks, and have a hard time creating e2e tests. Overall, this makes development unnecessarily frustrating and a time-consuming process. In this session, I'll discuss your approach to these typical problems and show you how Quarkus makes full-stack development easier. Without having to deal with typical npm or front-end setup issues, Quarkus allows you to develop applications with dependable Java back-end services and javascript front ends. You can concentrate on more important things, like building your app! Using a Java backend powered by Quarkus and a JavaScript front end, we will learn how to build a full-stack application.
Loïc Magnette
Loïc Magnette is a seasoned software developer with a strong background in consulting. Currently a senior developer at Oniryx, he specializes in Java and Angular, delivering innovative solutions and sharing his knowledge as a speaker. As a co-organizer of the Belgian Java User Group (BeJUG), he fosters connections within the developer community. Outside of tech, Loïc’s passion for wildlife inspires his work and creativity.
They do abstract thinking, systemic thinking, and modelling. Their work is their passion, so they often do it after hours too. And they drink coffee. A lot of coffee. Is this a board game designer or a software engineer? The similarities are not accidental. In many ways, making board games resembles making software. After all, board games can also have bugs, infinite loops, or hang-ups in the middle of a turn. But there are some differences that set them apart. Let’s compare these approaches and see what we could take from one process to the other. What would I like to share with you? My satisfying adventure of working on both. I had to become a board game designer to understand some concepts I only knew in theory, and to see them make a difference. I’ll talk about rapid prototyping, constant cooperation with users, ruthless simplification and feedback - because feedback is king. I invite you to a different world where we first take a look at “how they do it”, and then port the learnings back to the software world.
Paweł Stobiecki
In the tech world for 10+ years, currently helping big data users cruise the Ocado Technology data lakes. A software engineer with a product mindset, for whom the technology and frameworks are just a way to achieve a goal. After work he helps his wife run a forest-based company, sings dwarven songs at conventions, and - most importantly - makes board games.
Using streams everywhere: is that really a good idea? Certainly, stream code is often much clearer and more concise than iteration over a collection. But sometimes a stream solution requires a complex combination of collectors, reduction over a primitive stream, or nested FlatMap operations, and the verdict isn't so obvious. In this talk, we'll look at some sample use cases, evolve the best solutions we can, in both imperative and functional styles, and then argue over which is better. This session is for everyone who needs to write code in Java for bulk data processing - every Java developer, in fact. You'll leave hopefully entertained, and with a better idea of the use cases where streams excel, and where you're better staying with old-fashioned ways.
Maurice Naftalin
Five decades in IT: developer, designer, architect, manager, teacher, and author. Working with Java since 1.0. Author, Mastering Lambdas, Java Generics and Collections. Disorganises the unconference JAlba. Java Champion. Speaks at conferences a lot.
In this talk, we’ll explore Apache Arrow, an in-memory columnar format designed for OLAP query performance, and Arrow Flight and Flight SQL projects, the protocols that enable building database frontends that communicate using Arrow data. We'll compare it to JDBC, and show an example app that implements the Arrow Flight SQL protocol.
Mateusz Rzeszutek
I'm a staff software engineer on the Clari Data Platform Connect team, working on a set of services that utilize Arrow and SQL to build a facade over Clari's database platform. An emeritus maintainer of the OpenTelemetry Instrumentation for Java project.
Are you curious about lock-free programming but only familiar with using locks in concurrent Java? This talk is for you! We'll make the concepts of lock-free programming approachable, starting with why it matters and the basics of progress guarantees. You’ll learn to differentiate between wait-freedom, lock-freedom, and obstruction-freedom, understanding why these guarantees are crucial. We’ll explore essential lock-free programming idioms, like Compare-And-Swap (CAS) for atomic updates, markable references for efficient state management, and the sentinel node technique for simplifying concurrent data structures. The infamous ABA problem will be demystified—what it is, why it’s problematic, and how to tackle it with techniques like versioning. To see these concepts in action, we’ll implement three lock-free data structures in Java: a stack, a queue, and a linked list. These examples will highlight the practical application of lock-free techniques and the challenges they address. Finally, we’ll discuss performance characteristics, comparing the benefits and limitations of lock-free programming versus traditional locking. You’ll learn when to use lock-free methods for better scalability and when sticking with locks might be more appropriate. Join us to elevate your concurrent programming skills and confidently start experimenting with lock-free programming in your Java projects!
Jarosław Pałka
For more than 20 years in the IT industry, as a database administrator, programmer, architect, manager and 'onsite disaster engineer'. I took part in small,medium and nonsensically large projects carried out according to the rules 'Waterfall', Agile and in the absence of any methodologies, with the same always effect. Which led me to the conclusion that it doesn't matter what you do as long as you do it in the simplest possible way and use the right tools to do the work for you. Recently I spend too much time exploring JVM's best kept secrets, reading about managed runtime, parsers and interpreters. From time to time you can hear my low-quality jokes about architecture at conferences in Poland. I am also author of a blog on http://geekyprimitives.com/ and full time benchmarking infrastructure engineer at Neo4j.
Andrzej Grzesik
ags likes distributed systems in all shapes and form. Coding since the age of 8, loves simplicity and continuous delivery. While he has written in many languages, he favours the JVM. Since 'most software problems are people problems”, he stirs communities, organizes and speaks at conferences. And he is a Java Champion!
Artificial intelligence is bombarding us from every direction in the news and on social media. One of the sensible immediate applications of AI is RAG, at least that's what they say—for instance, Thoughtworks discusses it in their Technology Radars. But what exactly is this RAG, how do you install or implement it, what are its requirements, is it always necessary, and is it generally worth it? Join my talk to find answers to these questions (and a few others), delivered through working code snippets!
Piotr Przybył
Notorious engineer at work and after hours, tracing meanders of the art of software engineering. Remote Software Gardener, mostly working in web-oriented Java gardens. Java Champion. Testcontainers Champion. Programming usually in Java (since 1.3), Scala and Go, but in other languages too. Fan of agility, seen mostly as choosing the right tools and approaches after asking the right questions. Developer, trainer and conference speaker. In his talks, Piotr covers not only hardcore Java but also software architecture, computer security, and soft-skills.
Our young little industry is, at 70 years and an estimated 27 million engineers, no longer young or little. The breakneck pace of hardware and software evolution is unprecedented in human history, and the impact of computing on humanity - transforming industries, communication and social structures, even nationalities - will only be fully understood by historians in the distant future. But what will these historians learn from, if the fruits of our collective labor are discarded and forgotten, old computers rusting in landfills, bits and bites gone to the ether? Thus was born the computer preservation movement. A loose collection of hobbyists, collectors, traders and - more recently - legitimate non-profits and foundations - has set out to preserve and categorize this rich and fascinating history. Being a hobbyist vintage computer collector, this has been a passion as well as mission of mine for some 30 years. Join me as we explore this wonderful mix of history, technical challenge and pure computer geekdom!
Tomer Gabel
A programming junkie and computer history aficionado, Tomer's been an avid software professional for almost two decades, during which he's built any number of (predominantly back-end) systems, cofounded two major Israeli user groups (Java.IL and Underscore), organized an annual Scala conference (Scalapeño) and is a recurring speaker at software conferences. Plying his trade as a gun-for-hire at Substrate, he secretly still hopes to realize his childhood dream of becoming a lion tamer.
One evening in 2018, Dylan Beattie sat down in a bar, opened a laptop, and wrote a joke: a parody specification for Rockstar, a programming language based on the lyrics to 1980s power ballads. The joke was supposed to end there: a single Markdown file that folks would read, maybe laugh a bit, and then get on with their lives… well, that’s not quite how it worked out. The internet’s a big place, and a little corner of it took Rockstar to their hearts: they found it, they loved it - and then they implemented it. Six years on, Rockstar has shown up in the most unlikely places, from Classic Rock magazine, to Advent of Code, to Carnegie Mellon University and MIT - and each time, it attracts a new wave of aspiring Rockstar developers, with questions about how it works, and suggestions about how to make it better. And so, one evening in 2024, Dylan sat down in another bar, opened another laptop, and wrote another joke: “Rockstar 2.0: The Difficult Second Album”. On one level, Rockstar in 2024 is a stupid joke language based on Bon Jovi songs. On another level, it’s packed with things that would have been impossible even just a few years ago: a project that combines .NET, C#, JavaScript, browser APIs, and web assembly, building on decades of research in parser engineering and asynchronous application development. And yes, it’s still based on Bon Jovi songs. This is the story of Rockstar 2.0. You’ll learn about the history of esoteric programming languages, from INTERCAL, to Piet, to the researcher who taught Perl to speak Latin. You’ll learn what’s involved in creating an entirely new programming language. You’ll see a lot of cool tech, you’ll marvel at just how much engineering can go into one joke, and who knows - you might even qualify as a Certified Rockstar 2.0 Developer.
Dylan Beattie
Dylan Beattie is a consultant, software developer and international keynote speaker. Dylan has been building data-driven web applications since the 1990s; he’s managed development teams, designed large-scale distributed systems, taught workshops on Microsoft .NET and HTTP API development, and presented keynote talks at software conferences on four continents. Before founding Ursatile, Dylan was CTO at Skills Matter in London until they closed down in 2019. Prior to that he was webmaster, IT Manager, and eventually systems architect at Spotlight, where his first-hand experience of watching an organisation and its codebase evolve over more than a decade provided him with a unique insight into how everything from web standards and API design to Conway’s Law and recruitment ends up influencing a company’s code and culture. Dylan grew up in southern Africa, moving to the UK with his family when he was nine. He’s a Microsoft MVP and holds a degree in Computer Science from the University of Southampton. He’s the creator of Rockstar, a programming language designed for creating computer programs that are also songs, and he’s performed his software-themed parodies of classic rock songs all over the world with The Linebreakers. He’s into skiing, scuba diving, Lego, cats, travel and photography. You’ll find him online at dylanbeattie.net and on Twitter as @dylanbeattie, and offline at meetups and rock bars all over the world, wearing a big black hat.
In today's fast-paced tech landscape, a top-tier software engineer isn't just about coding prowess. It's about being a strategic problem solver who can navigate complex business challenges with innovative solutions. As a software engineer, he should be able to facilitate technical discussions, choose the correct option, and have the necessary skill set to implement the selected option. This presentation is your roadmap to approaching System Design interviews, blending empirical research with practical insights to make the process intuitive and engaging. It provides several exact examples from real interviews and will equip you with the necessary tools to excel in standard System Design interviews.
Oleksandr Ivanov
Oleksandr Ivanov is a Software Development Manager at Tesco Technology. He leads innovations in Tesco Location Services - it's an API service that holds all key data of Tesco owned physical and virtual locations (Tesco stores and more) across all operating regions. He also contributes to Tesco’s growth as a Software Development Lifecycle recruitment leader. Outside of work, he likes playing guitar and spend time playing boarding games.
Audit logs, payments, or transaction logs, … in the modern world, we are forced to store vast amounts of data for auditing and compliance purposes. When data volume grows, a question arises - should we store it on-premise with some “cheap disk arrays” or pay extra for cloud storage? The answer should be - let’s store it cheaply in the cloud! Let me show you how we managed to store over 500TB of audit data, with a cost under 500$/mo and a fast response time no matter how big the query time range is. This is the story of locating, classifying, and effectively storing 0.5PB of customer data. We’ve managed to utilize Google BigQuery technology in a rather unique setup that allowed us to store the entire dataset for less than 500USD/month and allows the support & compliance team to execute complex queries against the entire dataset with a response time of 11s.
Jacek Marmuszewski
Jacek Marmuszewski - DevSecOps with over ten years of experience building and managing cloud infrastructure. He worked for companies like Sabre and Oracle on mission-critical systems. He also had his share in startups, where as an early joiner, he promoted DevOps culture and advocated cloud-native architecture. Recently he co-founded Let’s Go DevOps company, where he helps others with designing, building, and maintaining cloud-native applications and infrastructure. He’s a big fan of cloud transformation and helps others leverage its full potential by picking the right components for the job.
As organizations grow, managing multiple agile teams becomes increasingly complex. A well-structured matrix model ensures scalability while maintaining autonomy and cross-team collaboration. This talk will explore:
Tomasz Sikora
With extensive experience in software delivery, performance engineering, data warehousing, business intelligence, and machine learning, he excels in agile coaching and R&D. Tomasz Sikora holds a PhD in Computer Science from Birkbeck College, University of London, and a Master's degree from the Silesian University of Technology. His expertise in AI, neural networks, and genetic algorithms, combined with practical industry experience, makes him a respected authority in the tech community.
In enterprise software development, productivity is critical to delivering value faster while maintaining high-quality standards. This presentation will show how Jakarta Data empowers developers to achieve more with less code, making everyday database operations—like repository creation, dynamic queries, and multiple pagination—effortless. With Jakarta Data, you can handle these tasks in just a few lines of code, letting you focus on solving business problems rather than writing a boilerplate. Through practical examples and actionable insights, you’ll see how Jakarta Data streamlines development, reduces technical complexity, and ensures your applications are scalable and maintainable. Whether modernizing a legacy system or building new applications, Jakarta Data offers seamless integration into modern Java frameworks, helping you deliver enterprise-ready applications faster and more efficiently. If you’re ready to simplify your workflow and maximize productivity, this session is your next step forward!
Otavio Santana
Empowering software engineers to deliver highly scalable and efficient software on the cloud with the ultimate sophistication techniques using the best practices on open source; lets them become productive and more influential, moving their technical careers to the next level. Otavio is a passionate Award-winning Software Engineer and Architect focused on cloud and Java technologies. He has deep expertise in polyglot persistence and high-performance applications in finance, social media, and e-commerce. Otavio has contributed to the Java and the Open source ecosystem in several ways, such helped the direction and objectives of the Java platform since Java 8 as a JCP executive member, besides being a committer and leader in several open-source products and specifications. Otavio is recognized for his Open Source contributions and has received many awards, including all JCP Awards categories and the Duke’s Choice Award, to name a few. Otávio is also a distinguished Java Champions and Oracle ACE program member. Otávio loves history, economy, traveling, programming, and real-world languages. He speaks Portuguese, English, Spanish, Italian, and French fluently in dad jokes.
Domain modeling is a key part of building robust software that meets the needs of complex businesses. Kotlin is an excellent choice, providing powerful tools to support effective domain modeling. In this talk, we will explore how Kotlin's features make it ideal for domain modeling, enabling you to craft expressive, resilient, and clean domain code. We will dive into features like sealed classes, inline classes, extension functions, and more to show how they can enrich your models, making them more expressive and less error-prone. During the talk, we will refactor real-life code, transforming typical anemic domain structures into something much more idiomatic and effective. Whether you are new to domain modeling or looking to sharpen your Kotlin skills, join me to see how you can boost your domain design with Kotlin.
Rafał Maciak
Software engineer, passionate, and pragmatist experienced mainly in technologies around JVM. Experienced in developing large-scale, distributed/event-driven systems. Believes in the concepts that stand for three-letter shortcuts, like TDD, DDD, etc. Occasionally, enjoys stepping out of the nerd’s basement and interacting with others. Sometimes you may find him in front of the wall sticking the notes.
Java has long been associated with object-oriented programming (OOP), but in case of a lot of modern data-intensive applications (like web services), data-oriented paradigm can be a better fit. This talk explores the shift from traditional OOP to data-oriented programming (DOP) in Java, focusing on how recent and upcoming features make working with data more expressive, efficient, and declarative. We will discuss records, pattern matching, and other language features supporting this approach. Additionally, we will explore how data-centric persistence libraries like jOOQ enable working with data structures in a way that moves away from traditional ORM/JPA-based approach. By the end of this talk, you will gain practical insights into application of DOP principles to write cleaner, efficient, and more maintainable Java applications.
Arkadiusz Sokołowski
Over 20 years of practical Java & other JVM languages.Lecturing Java at Jagiellonian University. Likes to solve problems, not to code. Currently working as Engineering Manager at InPost.
After a long time with imperative and mainly I/O driven systems the functional programming (FP) style becomes more and more present in my code. I finally realised that even without knowing FP I always searched for simple pure functions. I'd like to share my experiences with you in a tiny sample application. Before diving in I'll define what pure functions are and why we like them so much. We'll refactor the sample application to extract pure functions. During this journey I'll highlight some aspects of what to take special care of in the world of pure functions. I'll show you where you generally find them and increase your awareness of their existence. I hope that you'll look differently at your code after this presentation!
Stefan Fromm
Programming is my life's elixir. I have been developing software for more than 25 years. The JVM became my home 17 years ago. The Java ecosystem excited me more than ever. I tried better and worse solutions. I matured to strive for simple, understandable and predictable code. At Allegro I got the chance to fully dive into functional programming with Scala, my beloved programming language for a few years. After a long time of imperative programming in object-oriented style I feel that I found the right place to be.
Nobody enjoys dependency upgrades - tedious, risky, and often dismissed as unnecessary. But what if automating them could turn a dreaded task into a strategic advantage? In this short presentation, I’ll reveal why regular and automated dependency upgrades are essential for Developers, DevOps engineers, and Security teams alike. We’ll explore five compelling reasons, grounded in real-world benefits from an (interesting) case study, that demonstrate how automation can improve security, productivity, and system reliability.
Marcin Zajączkowski
Experienced software architect dedicated to delivering high-quality solutions. Passionate advocate for Software Craftsmanship, Clean Code, and Test-Driven Development, frequently sharing insights as a conference speaker and trainer. Specialist in deployment automation and Continuous Delivery within a well-structured SDLC. Known for a deliberative approach to problem-solving and troubleshooting. Enthusiast of concurrency, performance optimization, and software fine-tuning. Open source author, contributor, and occasional blogger - https://blog.solidsoft.pl/ .
Great Scott! The robots are coming for your job—and this time, they brought unit tests. Join Doc and Marty from the Software Future (Baruch and Leonid) as they race back in time to help you fight the machines using only your domain expertise, a well-structured prompt, and a pinch of Gherkin. This keynote is your survival guide for the AI age: how to close the intent-to-prompt chasm before it swallows your roadmap, how to weaponize the Intent Integrity Chain to steer AI output safely, and why the Art of the Possible is your most powerful resistance tool. Expect:
Bad puns
Good tests
Wild demos And a new way to look at AI—not as your overlord, but your intern (on a short leash) The machines may be fast. But with structure, constraint, and a little time travel, you’ll still be the one writing the future.
Baruch Sadogursky
Baruch Sadogursky did Java before it had generics, DevOps before there was Docker, and DevRel before it had a name. He started DevRel at JFrog when it was ten people and took it all the way to a successful $6B IPO by helping engineers solve problems. Now Baruch keeps helping engineers solve problems but also helps companies help engineers solve problems. He is a co-author of the 'Liquid Software' and 'DevOps Tools for Java Developers' books, Java Champion and CNCF Ambassador alumni, serves on multiple conference program committees, and regularly speaks at numerous most prestigious industry conferences, including Kubecon, JavaOne (RIP), Devoxx, QCon, DevRelCon, DevOpsDays (all over), DevOops (not a typo) and others.
Leonid Igolnik
Leonid Igolnik is a long-time engineering leader and operator who’s spent his career building and scaling enterprise software systems. He’s currently Executive Vice President of Engineering at Clari, where he leads the teams behind the company’s revenue platform. Before Clari, he ran engineering at companies like SignalFx, Oracle’s Taleo, and CA Technologies — all at massive scale and with teams distributed across the globe. Leonid is also a General Partner at IA Seed Ventures (IASV), where he backs early-stage founders building the next generation of B2B software. He’s especially passionate about developer-first products, observability, and the gritty, behind-the-scenes work of building infrastructure that lasts. Whether he’s talking about org design, on-call culture, or the traps of over-abstracting too early, Leonid brings a no-nonsense, engineer-first perspective grounded in years of real-world experience.
Agent frameworks like LangGraph promise autonomy, but they too often collapse under real-world complexity: brittle flows, opaque debugging, limited generalization. In this session I’ll show why reasoning-centric LLMs—specifically OpenAI’s O3 and the lightweight O4-mini—deliver cleaner code and more reliable outcomes by deciding when and how to invoke tools on the fly. Expect practical patterns you can drop into production today—no convoluted agent graph required.
Tomas Rehak
As the CTO at AGRP.DEV, I spearhead the development of CODEXIS, our flagship legal tech platform. My professional journey has been deeply rooted in Java, emphasizing clean, simple code and efficient, replicable local environments. My motto, 'clean code = simple code,' underlines my focus on code clarity and maintainability. I advocate for development environments that anyone can set up and run locally, streamlining the coding process. My background includes impactful roles at Avast, 4Finance, and ING Insurance, where Java's versatility played a crucial role in delivering innovative solutions. At GeeCON 2025, I look forward to sharing practical insights on continuous delivery drawn from my experiences in the tech industry.
Krzysztof Dębski He tackles everything from frontend to backend, architecture to infrastructure. With real-world experience building and scaling systems—whether it’s a million-user eCommerce platform or a fresh startup—he’s all about practical solutions that actually work.
The concept of Stream Gatherers introduced as a permanent feature in JDK 24 naturally complements what was missing in the Java Stream API and is the biggest revolution in this area since JDK 8. It is therefore worth familiarizing yourself with the possibilities offered by this solution (and there are quite a few of them!) to be able to increase the flexibility and readability of the code related to stream processing of data structures. During the session, we will try to solve several business problems, both using already built-in gatherers, as well as creating our own.
Marcin Chrost
Java Developer and Technical Leader with over 15 years of experience and IT trainer at Bottega IT Minds and JSystems. I have participated in many international projects and now regularly support younger colleagues in their professional development. I like novelties in the IT world, although approach them with common sense and reserve resulting from experience. What I appreciate the most, are well-coordinated and self-organizing teams that can motivate themselves. I also believe that soft skills in the IT world are as important as technical ones and are often underestimated.
In a world driven by data, benchmarks are the key to making decisions - choosing the fastest language, the most efficient framework, or the best-performing library. But can we always trust the numbers? In this talk, we’ll learn what benchmarking means, how it can be done effectively, and the subtle ways results can mislead even the savviest developers. Along the way, I’ll share practical tips to help you dig deeper than the blog posts and tweets. Inspiring you to create your own, hopefully reliable, benchmarks and separate fact from fiction in the benchmarks you see. Whether you're a performance enthusiast or just tired of the benchmark wars, this talk will give you the tools to navigate the truth behind the numbers.
Nick Palmer
Nick is a Lead Developer with a background in financial services. A Java developer for over 15 years now, he has worked with other languages such as Python and Rust, but there's nothing like Java. Previously working at LMAX for 7 years, one of the fastest FX exchanges around, and then one of the leading banks to improve their FX pricing platform performance, he's picked up a few things to do with performance, and JVM performance.
TBD
Bazlur Rahman
A N M Bazlur Rahman is a Software Engineer with over a decade of specialized experience in Java and related technologies. His expertise has been formally recognized through the prestigious title of Java Champion. Beyond his professional commitments, Mr. Rahman is deeply involved in community outreach and education. He is the founder and current moderator of the Java User Group in Bangladesh, where he has organized educational meetups and conferences since 2013. In the past two years, Mr. Rahman has been an active speaker at various international conferences and Java user groups. His talks have often focused on specialized topics such as concurrency and virtual threads. In addition to his community work, Mr. Rahman also serves as an editor for Java Queue at InfoQ and Foojay.io, both of which are leading platforms for technology content. Notably, he has authored five books on the Java programming language in Bengali, three of which have become best sellers in Bangladesh. He is currently writing a new book with O'Reilly titled 'Modern Concurrency in Java'.