Over ons
This is the Java User Group for everyone interested in Java, JVM, Web Development, Free and Open Source Software who are located in Amsterdam or Netherlands.
The "official language" is English, so that non-Dutch speakers can also participate easily.
Looking forward to meeting you all and exchange of knowledge and ideas.
- Code of Conduct: http://amsterdamjug.com/codeconduct.html
- WebSite: http://www.amsterdamjug.com/
- Youtube channel: https://www.youtube.com/channel/UCv-CG_Mwqr...
- Linkedin: https://www.linkedin.com/company/amsterdam-java-user-group
Aankomende evenementen
3

Amsterdam JUG Meetup at Doctolib
Doctolib Siilo Office, Keizersgracht 585, Amsterdam, NLJoin in with the latest Amsterdam JUG Meetup at Doctolib in central Amsterdam.
Agenda
18:00 - Doors Open
18:30 - 19:15 - I Lost a Day to @Retryable — When Spring AOP's Rules Quietly Don't Apply—Katherine (Kath) Alfaro Ramirez
19:15 - 20:00 - Instrument Once, Observe Everywhere: OpenTelemetry and the Power of Open Standards—Aakansha Priya
20:00 - 20:45 - AI’s Impact on Engineering Teams—Paolo Brunasti
20:45 - Networking drinksAbstracts
I Lost a Day to @Retryable — When Spring AOP's Rules Quietly Don't Apply—Katherine (Kath) Alfaro Ramirez
You've heard the rule: in Spring, methods annotated with @Transactional or @Async only work when called from outside the class. Call them via this and you bypass the proxy. Standard Spring 101.
But what if your codebase uses AspectJ compile-time weaving? Then @Transactional, @Async, and @Cacheable self-calls do work. The aspect is woven straight into the bytecode at build time; there is no runtime proxy to bypass. After a few months in that environment, you stop worrying about self-calls altogether. Then you reach for @Retryable to harden a real production race against an OptimisticLockingFailureException... and it silently does nothing. No retries. No exceptions. No warning. Your tests pass; production still fails the same way.
This talk is the story of why. We'll look at how Spring AOP actually works under the hood, the difference between proxy-based AOP and AspectJ compile-time weaving, and the one annotation — @Retryable — that cannot be configured to use AspectJ mode (an open feature request since 2017).
We'll walk through the production fix, and you'll leave with a mental model of which annotations work in which contexts — and how to spot the trap before it costs you a day.
Instrument Once, Observe Everywhere: OpenTelemetry and the Power of Open Standards—Aakansha Priya
Modern systems are distributed, polyglot, and constantly changing and the tools we use to understand them shouldn't lock us in. Enter OpenTelemetry: the open, vendor-neutral standard for collecting traces, metrics, and logs across any language, framework, or backend.
In this talk, we'll go from zero to hero. We'll start with the why: how observability got fragmented by proprietary agents, and how open standards are putting developers back in control.
Then we'll unpack how the core building blocks of OpenTelemetry, how the SDK and Collector fit together, and the patterns that keep your telemetry portable across any backend you choose, today or five years from now.
AI’s Impact on Engineering Teams—Paolo Brunasti
AI is reshaping how engineering teams design, build, and deliver software—but does it replace engineers, or amplify them?
In this talk, we'll explore AI's growing influence on JVM teams, system design, and business outcomes, drawing on hands-on experience with Java-based architectures.
Expect practical insights on integrating AI into engineering workflows without compromising code quality, architectural integrity, or long-term strategy.
You'll leave with a clearer sense of how the craft is evolving and concrete ideas to apply in your own work.
Bios
Katherine (Kath) Alfaro Ramirez is a Senior Software Engineer at Doctolib with 12+ years building robust, scalable applications in Java, Kotlin, and Spring Boot. Experienced in cloud environments and microservices architecture, with a track record of integrating third-party systems and collaborating across departments. Passionate about mentorship, knowledge sharing, and delivering secure, efficient solutions.
Aakansha Priya is a Solution Architect at Dash0 and a CNCF Ambassador. She loves championing her customers and serving as a bridge between them and engineering, ensuring technology delivers real value. She has spoken at conferences on DevOps and the human side of tech, and is passionate about helping teams unlock the value of observability with OpenTelemetry. Beyond work, she enjoys painting, singing, reading, and spontaneous travel, and you’ll often find her at meetups and conferences.
Paolo Brunasti is an experienced engineering leader with a strong background in Java-based architectures and system design. He now focuses on AI, sharing practical insights on integrating AI without compromising quality or strategy.
58 deelnemers
Amsterdam JUG Meetup at Just Eat Takeaway.com
JustEatTakeaway, Piet Heinkade 61, 1019 GM, Amsterdam, NLJoin in with the latest Amsterdam JUG Meetup with the GIGABITES Community at Just Eat Takeaway.com (JET), at Piet Heinkade 61, 1019 GM, Amsterdam.
Note: Our theme for this meetup is Apache Flink. We have two great talks with excellent speakers and we have a third slot, a bit shorter, for anyone who wants to fill it. Do you have experiences with Apache Flink you'd like to share? Write to amsterdamjug@googlegroups.com and you'll get a short slot of 30 minutes, or less, depending on how many sign up!
Agenda
18:00 - Doors Open (And Food!), thanks JET!
18:30 - 19:15 Talk 1: The JET Journey with Apache Flink - Behrooz Mirzaie (Tech Lead at JET)
19:15 - 19:30 Short Break
19:30 - 20:15 Talk 2: From Tables to Streams: Apache Flink for SQL Developers - Viktor Gamov (Principal Developer Advocate at Confluent)
20:15 - 20:30 Short Break
20:30 - 21:00 Placeholder For Your Talk! (See Below)
21:00 The EnedAbstracts
Talk 1: The JET Journey with Apache Flink - Behrooz Mirzaie
Our journey with Apache Flink at JET begins with the recognition that while Flink is powerful and that our primary job is to make that power approachable for everyone.
This realization led us to consider "What If? Abstracting complexities" as part of our diagnosis.
In this sesion, we will discuss how, ultimately, the core lesson we've learned is to hide the complexity, though not the capability, of the underlying system!
Talk 2: From Tables to Streams: Apache Flink for SQL Developers - Viktor Gamov (Confluent)
What if your SQL queries could process data as it happens instead of after it's stored? Apache Flink speaks SQL fluently, but it's not a database – think of it as a conductor orchestrating endless streams of data rather than a librarian managing stored records.
This session bridges the gap between traditional SQL and stream processing.
We'll explore:
- The Mental Model Shift – From "query the database" to "continuously process the stream" using intuitive analogies
- Flink SQL in Action: How familiar operations like SELECT, JOIN, and GROUP BY work on infinite data streams, plus temporal joins, time windows, and watermarks
- Table API: Programmatic control with declarative simplicity, bridging SQL and complete programming flexibility
- Flink AI: Real-time feature engineering and model inference on streaming data using SQL-like patterns
- Real-World Patterns: Fraud detection during transactions, live analytics dashboards, and event-driven architectures
You'll leave understanding not just how to use Flink SQL, but when and why it transforms traditional database skills into real-time data superpowers.
Perfect for: SQL developers and data engineers ready to make their queries travel through time.
Talk 3: Placeholder For Your Talk!
Our theme for this meetup is, clearly, Apache Flink. We have two great talks with excellent speakers and here we have a third slot, a bit shorter, for anyone who wants to fill it.
Do you have experiences with Apache Flink you'd like to share? Write to amsterdamjug@googlegroups.com and you'll get a short slot of 30 minutes, or less, depending on how many sign up!
63 deelnemers
Amsterdam JUG Meetup at Sociale Verzekeringsbank (SVB)
Sociale Verzekeringsbank, Van Heuven Goedhartlaan 1, Amstelveen, NLJoin in with the latest Amsterdam JUG Meetup at Sociale Verzekeringsbank (SVB), Van Heuven Goedhartlaan 1, 1181 KJ Amstelveen, Nederland.
Important notes:
- Bring your passport, or ID card, for identification, otherwise you will not be let in.
- When you register here on the Meetup page, please make sure to include your first and lastname. (If you have not done so, please drop a mail to amsterdamjug@googlegroups.com with your first and lastname.)
- There is free parking, if you send your license plate number to amsterdamjug@googlegroups.com.
- Vegetarian options will be available.
In this meetup, in addition to food, drinks, and networking, you will experience the following program and talks:
18:00 - 18:30: Doors Open and Food
18:30 - 19:00: Talk 1: Building Intelligent Java Apps: Agent Patterns, MCP, and the Future of AI Native Design - Daniel Oh (IBM)
19:00 - 20:00: Talk 2: The Mainframe, Java, and the Database - Jeroen Dijkmeijer (SVB) and Danny Calame (SVB)
20:00 - 20:30: Talk 3: Crafting the Ultimate Docker Image for Spring Applications - Pasha Finkelsteyn (BellSoft)
20:30 - 21:00: Talk 4: MCP Apps with Spring AI - Alexey Lihovodov (Indurex)
21:00: ExitAbstracts
Building Intelligent Java Apps: Agent Patterns, MCP, and the Future of AI Native Design - Daniel Oh (IBM)
As AI rapidly evolves from model experimentation to production-grade applications, Java developers are increasingly faced with a new paradigm: designing intelligent systems that can reason, interact, and adapt.
This talk explores the emerging Java AI application development journey through the lens of agent-based architecture, with a focus on how the Model Context Protocol (MCP) and Agent2Agent (A2A) communication patterns are transforming the way we build intelligent, context-aware services.
We’ll walk through the foundational shifts in building AI-native Java applications—moving beyond single-shot prompt-response interactions to multi-agent coordination, persistent memory, and tool-augmented reasoning. We’ll also address the critical architectural trade-offs: performance versus flexibility, open source versus vendor-managed inference, local versus remote model deployment, and how to maintain security and observability in agent-based systems.
The Mainframe, Java, and the Database - Jeroen Dijkmeijer (SVB) and Danny Calame (SVB)
Details coming soon.
Crafting the Ultimate Docker Image for Spring Applications - Pasha Finkelsteyn (BellSoft)
Docker is the cornerstone of today's development! Let's overview quickly how we use it in JVM development and then transition to practical examples.
We will start with a simple Docker image containing a popular "one fat JAR" and look into its downsides (deployment speed, traffic volume). To address them, we will discuss the strategy of splitting the JAR into multiple layers and using multistage Dockerfiles, gradually improving our image.
Join me to learn how to build the ultimate Docker image for Spring applications.
MCP Apps with Spring AI - Alexey Lihovodov (Indurex)
MCP is already the de facto standard for connecting LLMs to tools and data, and earlier this year MCP Apps shipped as an official extension. Tools can now return interactive UI components that the host renders
directly in the conversation, and a single MCP server can light these up across multiple hosts without per-client
code.This talk unpacks how MCP Apps fit into the wider MCP picture, and walks through building one with Spring AI. We'll also cover the rough edges, since first-class MCP Apps helpers aren't in the framework yet.
Bios
Daniel Oh is a Java Champion and Senior Principal Developer Advocate at IBM, where he leads efforts to advance cloud-native innovation through open-source technologies. Renowned for his ability to bridge technical and collaborative gaps, he empowers developers and organizations to build transformative solutions—from AI-driven applications and serverless architectures to resilient microservices. As a CNCF Ambassador and TAG DevEx co-chair, Daniel actively shapes the cloud-native ecosystem, fostering partnerships between enterprise developers, AI engineers, and platform engineering teams to accelerate hybrid cloud adoption.
Jeroen Dijkmeijer (SVB) and Danny Calame (SVB) are senior developers and DBAs at SVB.
Pasha Finkelsteyn has years of experience in software engineering and the team's leading roles combined with his passion for Java made Pasha know all the hidden details in this IT niche. As a Developer Advocate for Bellsoft, he educates the public on the latest software tools built by BellSoft and helps to create and test instruments for developers. He writes in Kotlin, speaks at conferences, composes new articles, and maintains his pet projects.
Alexey Lihovodov is an engineering leader and software engineer with deep experience in backend, platforms and cybersecurity at scale. Over his career, he's worked with a wide range of technologies and across every layer of the
stack, from low-level infrastructure up through data, frontend, and SRE. He's passionate about building great
engineering cultures, and, as for many these days, tinkering with AI has become his current focus.54 deelnemers
Verleden evenementen
109
