Java enthusiast and Special agent for Team Rockstars IT
I am a highly experienced software engineer who has seen it all, from Midrange Systems to Micro Services.
Through all of this, I was guided by my passion for software engineering and software architecture.
For more than 15 years I have been working on the JVM and the Java ecosystem and have seen all the frameworks and libraries from Apache to ZK.
I hold Oracle Certified Java Programmer (OCP) and Sun Certified Business Component Developer (SCBCD/OCPBCD).
For a long now I am an avid fan of alternative JVM languages like Groovy, Scala, Clojure, and my personal favorite Kotlin.
At Team Rockstars IT I am a Special Agent and I frequently speak at international conferences.
I am writing a book about Jakarta EE 10, which is due to be published in Q3 of 2023.
Area of Expertise
Introduction and pitfalls of Java's new concurrency model
Java 20 will preview one of the most anticipated features, virtual threads, and structured concurrency. It rethinks the way multithreading works in Java. It was born out of the idea that reactive Java is too complicated and blocking threads has to be cheap. Resulting in the new virtual threads that we run thousands of!
The aim of virtual threads and structured concurrency is to have high-throughput lightweight threads and new programming models on the Java platform.
In this talk, I will demonstrate virtual threads and how to create and manage them using structured concurrency. Furthermore, I'll provide some practical advice to avoid pitfalls when you start using virtual threads in your application.
Using native image for your Java development
Native images have become the most recent hype in Java land. But what exactly are they, how do you create them, and are they something for you? These are some of the questions I will try to answer in this talk. And doing so hands-on. I will tell you about GraalVM, which kickstarted this whole movement, and about the exciting prospect of GraalVM flowing into the OpenJDK (Project Galahad). And what is the role of Project Leyden in all of this? Upon leaving, you will have a clear understanding of the technology, its goals, and how to apply it to your daily work.
Modern Java: This is not your father's Java anymore
In this talk, I will take you through all the awesome new stuff you can find in Java..I’ll show you actual usages of these new features so that you can start using them in your project too. Come and see real-world usage for constructs like records, switch functions, sealed classes, and pattern matching to name a few.This is even more important if you consider that the upcoming releases of extremely popular and widely used frameworks such as Spring (v6) and Spring-Boot (v3) will use JDK17 as the minimum baseline for development. Don't get left behind and let me show you how to use all the new language features from JDK11 up to JDK19. Of course, virtual threads will also be discussed. As a bonus, we will also take a look at the hottest features in JDK20, which is released shortly after this conference
Going native with Spring Boot
Most modern server-side frameworks like Quarkus, Micronaut, and Spring offer some kind of support for native images.
Native images are Java applications compiled into binary code.
They offer skinnier binaries, quicker startup times, and a smaller memory footprint at the expense of binary platform compatibility.
The recently released Spring Boot 3 version massively improves support for converting your Spring boot application into native images.
In this workshop, we will convert a regular application written in the massively popular Spring Boot framework into a native image.
It will give you a good introduction to applying this strategy, ready to be used in your daily development.
Data-oriented programming in Java
With the changes made to the Java language in recent releases, it has moved into a new realm: Data-oriented programming.
In this talk, I will explain what data-oriented programming is and explain the principles it is based upon.
When it comes to microservices, object-oriented programming is no longer the only paradigm in Java development.
I will also show how recent language additions such as records, sealed classes, pattern matching, and switch functions support the concept of data-oriented programming.
This will be done by converting a simple object-oriented application into a data-oriented version.
In his June 2022 paper in InfoQ Java language architect Brian Goetz introduced the concept of data-oriented programming in Java (https://www.infoq.com/articles/data-oriented-programming-java/)
While this may offer significant advantages, especially in the realm of microservices, much is still unknown.
I will explain what the concepts are and how the Java language can be used.