Better software, faster.
Meet Our Speakers
Each of our consultants brings years of hands-on Java experience and a passion for sharing knowledge. They're not just experts, they are engaging presenters who connect with audiences and spark meaningful conversations.
Looking for a specific topic or an overview of all talks available? Jump straight to our topic list.
Simone de Gijt

Software developer, coming from a linguistic background. Talks about continuous learning in IT through the lens of neuroscience.
Bert Jan Schrijver

CTO, software architect and trainer (iSAQB accredited) focusing on Java, software architecture, microservices, cloud, Continuous Delivery and DevOps.
Roy van Rijn

Director of OpenValue Rotterdam, Java Champion and founder of RotterdamJUG. Talks about Java, AI, Math and algorithms.
Explore our talks
Our Java specialists deliver relevant, quality talks that resonate with both technical teams and broader audiences. Whether you're organizing a conference, team offsite, or internal knowledge-sharing session, these presentations combine deep technical expertise with real-world insights. Filter by category to find the perfect fit for your event.
Angular for Java developers
Front-end development has evolved massively. New tools, libraries and frameworks are released every day. But how do you keep up with this as a Java developer? Which frameworks should you learn, and where do you get started? Angular is without doubt one of the most popular frameworks for building modern web front-ends. And one of the good things about Angular is: most of its concepts are not that far off from everything we now from the Java world. Take TypeScript for example – you now can write proper typed code in the browser! In the past years, I've spent a fair amount of my time at work developing front-ends with Angular, starting with the early 2.x betas to the current 12.x release. In this session, I'm sharing my experience as a Java developer with developing Angular applications. I'll explain all about tools like npm, rxjs, sass, karma, protractor and compare them to their counterparts in the Java ecosystem. I'll start with an empty IDE and live code my way to a working Angular application connected to a Spring Boot backend, sharing lots of tips, insights and gotcha's. At the end of this session, you'll know enough about Angular to get started yourself right away!...
Do we still need architects?
Years ago, when all software projects were doing big up front design, it made perfect sense to have full time architects work on an architecture a couple of months before development would start. The impact of making a wrong choice could have a disastrous impact on the project's success, after all. But nowadays, most projects are using agile approaches to software development with quick feedback loops where we can recalibrate our architecture every sprint. Therefore, wrong choices have only limited impact and we don't need architects anymore - right? In this talk, we'll look back at what changed in software development in the past 10-15 years: from waterfall, monoliths and your own servers in your own datacenter to agile, microservices, cloud and DevOps. We'll look at the impact these changes had on how we approach software architecture and will ask ourselves: do we still need architects?...
Making significant software architecture decisions
Software architecture represents the significant design decisions that shape a system, where significant is measured by the cost of change. At its core, architectural decision-making is about balancing trade-offs to align technical solutions with broader requirements. I'll share a structured approach to making informed, high-impact architecture decisions. You'll walk away with practical strategies to make better architectural decisions in real-world projects....
Fostering an Evolving Architecture in the Agile World
What is software architecture? Is it the decision to adopt microservices? Is it the document that describes the layers in your Java EE application? No, every line of code you commit is part of your evolving architecture. During this talk I'll explain how we, at the Port of Rotterdam, manage our software architecture in a highly agile environment building a successful harbour management system. We spend the last two years transitioning from a modular monolith to a microservice environment. How did our architecture evolve? What is the role of the architect? Do we even need an architect? We'll dive into problems like cargo cult, survivorship bias, shared responsibility, technical debt and system design. In the talk I'll tell about our experiences and the do's and don'ts we've encountered....
Building a self-driving RC car
This session will share our experiences in converting a small remote controlled car into an autonomous driving vehicle. We'll talk about electronics, sensors, AI, computer vision and of course, the software that ties everything together. We'll introduce you into the world of self driving cars and compare our solution to the stuff that is done in the big leagues by the likes of Tesla's 'autopilot' and Waymo's self driving cars....
From Tic Tac Toe to AlphaGo: Playing Games with AI and Machine Learning
Google's AlphaGo is an extraordinary breakthrough for Artificial Intelligence. The game of 19x19 Go has 1.74×10^172 unique positions and is about a 'googol' times harder to calculate than chess. Experts thought it would take at least another decade before AI would be able to beat the best human players. So how did Google tackle this problem? What algorithms did they use and how do they work?...
wAIred! Learn with(out) AI
But as we embrace these new technologies, we must also ask ourselves: Are we becoming less capable of thinking for ourselves? Do these tools make us smarter, or do they risk dulling our critical thinking skills? This talk will encourage us to think critically about the role of AI in our education. Together, we will discover how to use AI to support our learning journey while still developing our ability to think critically....
The value of learning and sharing
As a developer, two of the best ways for me to progress in my career have been learning from others and sharing with others. In this talk, I'll talk about my journey of learning and sharing. I'll explain how I became active in software communities; first by joining and consuming, later by organizing and presenting. I'll share my journey from an aspiring speaker at in-company events to taking the stages of big international conferences. I'll end with explaining why I believe that deliberate learning and sharing is important and I'll give you a couple of practical tips to get started. After this talk, you'll be ready to boost your career by engaging in learning and sharing too!...
The Joy of Coding Competitions
It's been a while since I've worked on a full time development project. But I love coding.. so how do I stay in touch with my inner developer? By participating in coding competitions! These types of events typically challenge you by solving a difficult problem or delivering a solution in the least amount of time - or even in the least amount of characters of code. In this fast-paced talk, I'll introduce you into the world of coding competitions. I'll talk about challenge types, approaches, strategy, the community aspect and I'll share a couple of examples from competitions and challenges I participated in. Join me and learn about the Joy of Coding Competitions!...
Better software, faster: principles of Continuous Delivery and DevOps
The Wall Street Journal already mentioned it in 2011: "Software is eating the world." Nowadays, every company is an IT company. Product owners and other business representatives seeing their competitors release new features to end users every day are demanding the same from their own software teams. How do you measure up to this heavy pressure as an IT organization? How do you quickly make changes to software systems in fast-paced environments without losing your grip on quality? How do you build and test software in such a way that it's always in a releasable state? This session explains the principles of Continuous Delivery and DevOps. You'll leave with enough insights into how and where to get started yourself....
Co-Creating with UX and software
That's all nice and dandy. But we do need to deal with some concerns like: - Knowledge gap: How can the different disciplines with their specialty understand each other and come to conclusions? - Shared responsibilities: Where do start and where do they end? - Efficiency: What would it do to the efficiency of the team when they get different tasks? In this talk we’ll try to address and hopefully take away those concerns and focus on the benefits it will bring, working in a hybride team....
The DevOps disaster: 15 ways to fail at DevOps
Getting DevOps right isn't easy. It's downright hard. In this talk, I'm not going to explain how to 'do' DevOps in your organisation, since there is not just one 'right' way to do it. What I can show you however, is how NOT to do DevOps. This session shares 15 common misconceptions, call them anti-patterns, of DevOps. I'll talk from my own experiences in getting things wrong, explain why they are wrong and prevent you from making the same mistakes. You'll leave this session with a basic understanding of how (not) to fail at DevOps and hopefully, a smile on your face ;-)...
How good of a developer are you?
Are you a good Java developer? What makes a good developer? And how can we measure this? In this talk we'll describe our long journey to find a better way to test software development skills; a model based on scientific research, to measure actual coding skills, in a realistic environment.
Debugging distributed systems
Nowadays, most software projects are distributed systems: components are located on different networked computers which communicate and coordinate their actions by passing messages. Debugging distributed systems is not easy. When two components don't play nice together, the cause could be virtually anything: software, DNS, routing, firewalls, proxies, load balancers, TLS.. and more! In this talk, I'll share my experience with debugging distributed systems. We'll look at typical issues and share ways to debug those issues and find their root causes. We'll dive into networking, infrastructure, logging/tracing/metrics, testing, remote debugging and more. I'll share lots of examples and war stories along the way. After this talk, you'll have practical knowledge on how and where to get started with debugging distributed systems yourself!...
Pushing Java to the Limits: Processing a Billion Rows in under 2 Seconds
Last January a challenge was posted online by Gunnar Morling: How fast can you parse a file with one billion rows of weather data using Java? Little did I know this deceivingly simple question would lead me down a path that taught me all about: parallelism, memory mapped files, SWAR techniques (SIMD as a register), bit twiddling, branchless code, mechanical sympathy, Graal native compilation and finally... I even turned to the dark side: using sun.misc.Unsafe. Join me in this deep dive where I'll explain all the code changes and tricks that took me from the reference implementation which processes the billion records in less than 4 minutes, to processing everything in under two seconds. Who knew Java could be _this_ fast?...
How to Build a Shazam Clone
Arthur C. Clarke once said: "Any sufficiently advanced technology is indistinguishable from magic" The first time I used Shazam (the music matching app) it felt just like that: pure magic. The app shortly listens with the microphone and tells you which song is playing. As a programmer I generally have a pretty good understanding of what happens behind the scenes, in this case, however, we were absolutely gobsmacked. After a weekend of studying, reading scientific papers and experimenting and coding: we had a working Shazam clone written in Java. During this talk, we'll reveal what we've learned and what algorithms and tricks are being used....
Ode to the Mighty Bit
I've given talks at software conferences about quantum computing and the amazing properties and possibilities of quantum bits (qubits). However: It is now time to give the regular old binary bit the love that it deserves. During this talk we will dive into bits and booleans, the foundation of modern computing and the building block of your entire career. We'll look at truth tables, bit masking, bit twiddling, NAND gates, how to store and manipulate data (like floating point numbers) in binary and finally we'll take a look at the powerful concept of boolean satisfiability & SAT solvers....
Kill the Mutants, Test Your Tests
We all write unit tests and we measure the quality of the tests with line coverage or (even better) branch coverage... But this is wrong, it gives you a false sense of security. I've seen tests that have 100% coverage but not a single assertion! This is where mutation testing helps out. By creating broken 'mutated' instances of your codebase (mutants) this should result in failing unit tests. This way we can verify that slight code changes (like real life bugs) actually break your tests. In this talk I'll explain what mutation testing is and how you can use it. I'll show and compare some Java frameworks (PIT, Jester, Jumble) that enable (automatic) mutation testing in your project, from local build to continuous integration. After this talk you can and will start using mutation testing!...
Brace Yourselves, the REPL is Coming
Most Java developers have overlooked the Java 9 REPL. This new feature will enable you to make scripts and do live coding with Java using the new 'jshell'. In this talk I'll guide you through the process of building jshell and we'll do live coding to learn how it works and behaves. After this quickie you'll not only be able to build but also use jshell, OpenJDK needs more users to find bugs, make tests and improve this new addition to your JDK9/bin directory....
The Cool Wall
Als je ooit Top Gear hebt gezien ben je vast bekend met het fenomeen 'The Cool Wall'. In het TV programma werden auto's besproken en opgehangen op een bord van uncool tot cool en zelfs 'sub zero'. Dit gaat altijd gepaard met veel humor, maar onderliggend toch serieuze punten. Dit concept willen wij tijdens een unconference naar de Java wereld brengen op J-Fall. Jullie, het publiek, helpen mee en samen bouwen we een eigen Java Cool Wall. Als de sessie afgelopen is heb je waarschijnlijk veel gelachen, een hoop nieuwe technieken en frameworks leren kennen en hebben we gezamenlijk een J-Fall technologie-radar gemaakt!...
How good of a developer are you?
How good of a developer are you? Are you a good Java developer? What makes a good developer? And how can we measure this? If you ask Oracle they'll say OCP (Oracle Certified Programmer), which means that you know when the compiler makes those red squiggly lines in your IDE disappear. If you ask FAANG companies it means you can balance a binary tree on a whiteboard. All of these methods involve some knowledge and memory, but have very little to do with actual day-to-day programming, technical skill, problem solving and creativity. And.. don't you think it's annoying you have to take all these technical tests even though you've been coding for many years? In this talk we'll describe our long journey to find a better way to test software development skills; a model based on scientific research, to measure actual coding skills, in a realistic environment. Demo & code included. We're currently working with the (international) Foojay.io community to use these measures and set up a more realistic certification process....
Pipeline as code: building Continuous Delivery pipelines with Jenkins 2
Building Continuous Delivery pipelines with Jenkins 2.
Plugin and Play
How to verify your Kotlin project in a Kotlin way? I am talking about test coverage and about style linter. Wouldn’t it be great if we can really use Kotlin in the full spectrum and use tools that support those features? Of course, we would also like to check our code with a linter. In Java we have multiple ways to do that, but with the specific Kotlin format, we are in need of a new linter and formatter. Ktlint (spoken as kitty-lint, for the cat-lovers among us) is the perfect plugin to fit your needs. Most of us will know or even use test coverage engines like Jacoco or IntelliJ. An advantage of this is that it’s well known and considerably solid. The disadvantage is that it doesn’t support all Kotlin features, like a Kotlin directory structure. Because of that you have to choose to OR don’t use the Kotlin directory structure, OR pick a new test coverage engine. This is where Kover comes in. In this talk I will go over both plugins to see what the advantages are, how to configure them, and to determine which child-diseases are still there....
Wired! How your brain learns new programming languages
In this talk we’ll look at learning a new language from a Linguistic and Neurological perspective, while at the same time looking at how we can apply this in the IT setting we work in. At the end of this talk you will know how your brain stores new information and how that information can be retrieved and used. Next to that you will be given some practical tips and tricks on how to improve your own learning curve and how to help others support others who are in the process of learning. As a previous speech-and-language therapist I would like to give you a better understanding of how we learn languages and how this knowledge can help us in the never-ending changing world of software development!...
Hack Your Brain: Smarter Learning for Devs
We’ll also cover how to structure your coding sessions using the primary–recency effect. Along the way, you’ll get actionable tips for boosting focus and leveraging downtime. Whether you’re learning a new Java framework or mastering advanced concepts, you’ll walk away with science-backed tips to learn smarter, code better, and stay ahead.
30 Minutes of Failure
This talk will be filled with failure. Innocent failures, funny failures, small failures, but also failures that took out an entire online banking system for hours. Failures made with a single click and elaborate failures that took months of preparation. There is nothing better than gloating about mistakes and learning from them. Failure often comes at a high cost but during this talk you'll learn from our failures... for free. We have messed up, caused outages and deleted client data so you don't have to. "Learn from the mistakes of others. You can't live long enough to make them all yourself." - Eleanor Roosevelt...
Mastering the Linux command line
Short version: I'll show you everything you need to know about the Linux command line as a developer. Long(er) version: As a developer, you often have to deal with Linux servers. Troubleshooting, digging through logs, editing configuration files, you name it. If you're used to working with Windows or OSX GUI's, the Linux terminal might appear fairly basic and difficult to use. But, with some basic background knowledge and a small set of terminal commands in your toolbox, it can actually be extremely powerful and loads of fun! In this session, I'll explain the concepts behind the Linux command line and I'll demo loads of useful stuff. You'll learn how to quickly navigate, find files, examine and search through logs, how to investigate a system under load, a bit of shell scripting, ssh tunneling and more! This talk takes places entirely in the command line. No slides, no IDE, just a plain terminal window. After this session, you'll be on your way to master the Linux command line yourself!...
Microservices in action at the Dutch National Police
Microservices? At the Police? Definitely! At the Cloud, Big Data and Internet division of the Dutch National Police, 4 DevOps teams use the latest open source technology to build high tech, cloud native web applications in a private cloud. In this session, I'll share our experiences and real-world use cases for microservices.
Continuous performance: load testing for developers with Gatling
Performance testing is traditionally a task for specialists that takes place at the very end of the software delivery life cycle. But how does this fit in with a DevOps way of working, where continuous feedback is one of the key points? It doesn't. In a world where scalability and performance are just as important as delivering new features, you need to embed performance testing in your daily development workflow: it needs to become a natural part of development. And this is where Gatling comes in…...
Untangling the Mysteries of Qubits
How do quantum computers work? What is a qubit? What the hell happened to Schrödinger's cats? During this talk we'll together unravel the mysteries of entangled qubits. We'll explain the basics of quantum computing in simple and fun ways, including visual demonstrations with polarizing filters and a skippyball (known as Mr Qubit). We'll even build an actual working quantum computer.... tribute, a simulator, in Java! And I'll explain how larger quantum algorithms work by explaining the quantum benefits in Shor's Prime Factoring algorithm. But beware, this talk isn't for the faint hearted. We'll keep away from all the unnecessary complicated math, but if Math.random() is unlucky we might kill some more cats....
Community Keynote: Quantum Computing – Mind-bogglingly Weird!
Once you get down to a subatomic level, the world around us starts to become very weird indeed. Particles behave like waves and they are seemingly able to time-travel using entanglement. During this keynote we'll explore the wonderful world of quantum mechanics. We'll talk about how these effects can be used in quantum computers, leveraging the power of uncertainty and randomness....
Going serverless with Quarkus, GraalVM native images and AWS Lambda
Short version: In this talk, I'll show how I migrated the backend for the NLJUG conference app (used for J-Fall, J-Spring and more events) from Spring running on Linux virtual machines to Quarkus running as GraalVM native image on AWS lambda. Long(er) version: In this talk, I'll show how I migrated the backend for the NLJUG conference app from a traditional approach with Java and Spring running on Linux VM's to a fully serverless architecture with Quarkus, GraalVM native images, AWS lambda, API gateway and DynamoDB. I'll talk about (and demo) the Quarkus development experience, migrating code to Quarkus, creating native images and the caveats involved, testing, deploying to AWS with the SAM CLI, monitoring, costs and more....
From Spring Boot to Quarkus
When you're building (micro)services, you have lots of framework options. Spring Boot is no doubt a popular choice. But there's more! Take Quarkus, a framework that's considered the rising star for Kubernetes-native Java. Let's compare the two by looking at a couple of common use cases in Spring Boot and live coding their Quarkus counterpart.
Decoding the air around you with Java and $7 hardware
Software-defined radio (SDR) is a radio communication system where parts of the components are implemented in software. In this session I will explain the basic concepts of software-defined radio and show how to use a 7 dollar USB stick to receive and decode AIS messages from ships and ADS-B messages from airplanes.
Understanding Log4Shell: vulnerability, attacks and mitigations
Log4Shell (CVE-2021-44228) is a zero-day vulnerability in Log4j, a popular Java logging framework. Watch this video for answers! Java champions Roy van Rijn and Bert Jan Schrijver dive into the vulnerability together by explaining its origin, looking at the inner workings and showing a live demo.
Software architecture in a DevOps world
Most modern software teams strive for Continuous Delivery of business impact with a DevOps mindset: you build it, you run it. With short iterations and continuous feedback loops, teams deploy new software to production daily. But how about the role of a software architect in such a fast-paced world? With daily deployments, is there even time for software architecture? As an architect, how do you prevent being a delaying factor to the pace and success of a team? And how do you keep up? In this session, I'll share my experiences as a software architect in the DevOps world. I'll talk about "just enough" architecture and moving from up front design to evolving architecture. After this session, you'll have practical insights and tips in how to work as an architect with a DevOps team....
Generic or Specific? Making sensible software design decisions
In software design and software architecture, we often face the question: should we build this generic or specific? Usually, this is not an easy question to answer. The answer depends on a lot of different factors, including future factors you may not be aware of - yet. In this talk, I'll share my experiences and thought process as a developer and software architect with choosing between generic and specific solutions. I'll talk about generic vs specific design & architecture, both on a project level and organization level. We'll look at sharing code/components between teams, inner source culture, monorepo's, microservices, lifecycle management of generic components and strategic design as a tool to help decide. After this talk, you'll have practical insights that can help you to choose between generic and specific solutions yourself....
Getting started with speaking
Have you wondered what it takes to be a successful speaker? Where to start, which topic to pick, and how to deliver? You'll find answers to these questions in this session, delivered by two experienced speakers. Come learn why speaking is both fun and important. We'll give you tips on getting started, writing proposals, preparing for the talks, and to deliver a great presentation. We'll share our experiences, what has worked, what has not, and provide some key take-aways. After this session, you'll be ready to start on your own journey to speak at technical events....
Building microservices with Vert.x
Vert.x is a toolkit for building reactive applications on the JVM. It's event driven, non blocking and polyglot, which makes it an excellent platform for building microservices. In this talk, I'll share experiences and real-world use cases from a Dutch company that started building reactive web applications with Vert.x about 3 years ago. You'll learn the concepts behind Vert.x, why we chose Vert.x, how we're using it and the challenges we faced....