Amsterdam JUG Meetup at Mollie
Details
Join in with the latest Amsterdam JUG Meetup at Mollie, Keizersgracht 126, in central Amsterdam.
Agenda:
17:30: Doors open (and food)
18:00 - 18:45 - Talk 1: "Your Spring Boot Production is Bleeding. Let's Fix That." -- Mikhail Polivakha
18:45 - 19:30 - Talk 2: "Building Scalable, Low-Latency Fraud Detection AI in Java" -- Zoran Sevarac
19:30 - 20:15 - Talk 3: "Breaking the Monolith: Learnings from a Year of Improvements" -- Murat Özkan
20:15 - 21:00 - Talk 4: "HTTP: How Teenagers Talk to Their Parents" -- Hanno Embregts
Abstracts:
Talk 1: "Your Spring Boot Production is Bleeding. Let's Fix That." -- Mikhail Polivakha
The Java community shares a stack: Spring, Hibernate, Spring Data, Jackson. And with it a set of best practices we hear on repeat:
- Disable Open Session in View in production
- Avoid N+1, EAGER fetching, Cascade.REMOVE on collections
- Adopt Project Leyden and Lilliput and so on.
We know the rules by heart. But who checks that every service in the fleet actually follows them? In this talk, I will introduce Axelix, an OSS toolkit that closes that gap for Spring Boot ecosystems.
A lightweight starter plus a build-system plugin discovers each service's misconfigurations, persistence anti-patterns, and JVM improvement opportunities, then streams them to the Axelix Master - a single monitoring view, fleet-wide and per service.
We will go from a bare app to actionable insight live and see how Axelix exposes the opportunities to fix the findings to AI Agents via a built-in MCP server.
Talk 2: "Building Scalable, Low-Latency Fraud Detection AI in Java" -- Zoran Sevarac
For modern payment platforms, fraud detection is not only a machine learning problem — it is a business-critical capability. As transaction volumes grow, payment providers need to detect risk effectively while maintaining fast payment processing, controlling infrastructure costs, and scaling without adding unnecessary operational complexity.
In this session, we’ll show how an end-to-end fraud detection pipeline can be built entirely in Java — from transaction ingestion and feature processing to machine learning inference and fraud scoring.
Using payment fraud detection as a practical use case, we’ll examine the engineering decisions that directly affect business outcomes: how to increase transaction-processing capacity, maintain predictable low latency, reduce infrastructure overhead, simplify integration, and scale fraud detection cost-effectively as payment volumes grow.
Talk 3: "Breaking the Monolith: Learnings from a Year of Improvements" -- Murat Özkan
After a year of effort reducing the complexity of a 15-year-old monolithic codebase at Miro, we are back to share our learnings, both technical and
organizational. Organizational challenges often get overlooked, but they are critical for success at scale.
On the organizational side, we will discuss some "controversial" topics, such as the value of modularization, building and keeping sponsorship, prioritizing by impact, and the role of standards and observability. Without those, this project wouldn't have got past a personal hobby.
On the technical side, we will talk about some patterns that caused tight coupling in the codebase over the years, and how we detect and remove them without disrupting day-to-day development. That includes the role of agents in the trenches.
This talk is for any developer, team lead, or architect trying to improve a codebase that is too big to fix alone.
Talk 4: "HTTP: How Teenagers Talk to Their Parents" -- Hanno Embregts
As a parent, I’ve often found that getting a straight answer from a teenager can feel like an exercise in debugging. This realisation led me to discover the surprisingly close parallels between navigating those conversations and understanding HTTP status codes.
This talk won’t be about parenting (though there will be anecdotes!), but rather about decoding the language that modern systems use to communicate – success, failure, and everything in between.
We’ll explore common HTTP status codes, their implications for developers, testers, architects, and anyone who works with data, and discover how these codes can help us troubleshoot problems, build more resilient applications, and perhaps even understand the often-mysterious responses we receive from the teenagers in our lives.
