Speaker

Hanno Embregts

Hanno Embregts

Java Developer by day, musician by night. A bit of both at conferences.

Leusden, The Netherlands

Hanno Embregts is a Java Developer with a passion for learning, teaching and making music.

In his day-to-day job as an IT Consultant at Info Support, Hanno prefers work that is fast-paced and versatile. This is why he juggles Java development, software architecture, public speaking, leading Info Support’s Java Community and teaching courses at Info Support’s Knowledge Centre.

Hanno is both a Java Champion and an Oracle ACE Associate. He is also one of the editors of the Dutch Java Magazine. Outside of work Hanno likes making music with his friends. He plays the flute, the guitar and he likes to sing.

Software conferences are Hanno’s favourite thing in the world, because they allow him to do the three things he loves most at the same time: learning new things, teaching others about stuff he discovered and yes: even making music from time to time!

Awards

Area of Expertise

  • Information & Communications Technology

Topics

  • Core Java / Java SE
  • Enterprise Java / Jakarta EE
  • Spring Boot
  • quarkus
  • DDD
  • Version control
  • Music

Will Git Be Around Forever? A List of Possible Successors

Ten years ago, only Linux kernel committers and other early adopters used Git. Almost everyone else used Subversion. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now? And what features would YOU want from your version control software in 2033? No history rewrites? Faster? No merge conflicts ever?

In this talk I'll discuss a few post-Git products, including Fossil, Pijul and Sapling, and their support for the features we so dearly desire. I'll also try to predict which one will be 'the top dog' in 2033.

So attend this session if you're excited about the future of version control and if you want to have a shot at beating even (!) the early adopters. Now if it turns out I was right, remember that you heard it here first. 😀

When Music and Software Come Together

"Can you perform under pressure?" the interviewer asked. I had to resist the urge to sing "PRESSURE! PUSHING DOWN ON ME!" at the top of my lungs. Instead I absent-mindedly said "Sure" and provided a few dull examples to back the claim up.


Still, when you love doing what you do, you'll be happier and your performance will benefit. Being both a developer and a musician, I am happiest when I see music and software come together. When I do a 'git push', I hum "push it to the limit". And when I hear a pop song, I believe the lyrics are actually about software development.


This talk takes you on a journey throughout a typical software development process, showing you where music and software cross paths. And because I'll perform the songs myself, the talk doubles as a mini-concert - featuring songs by Coldplay, Oasis, Imagine Dragons and many more.

What "Stairway to Heaven" Can Teach Us About Software Development

One of the most iconic rock songs ever written starts with the line "There's a lady who's sure all that glitters is gold..." and chances are you know the rest of the lyrics by heart. Though one could argue that this ability is rather useless. It's not like it makes you a better software developer, right? Right?!

Allow me to change your mind! I know that the lyrics to "Stairway to Heaven" have sparked countless online debates over its meaning, but being a developer and a musician I think it is actually about software development. In fact, I even believe it contains a few good lessons on it and if that is the case, knowing the lyrics by heart can really benefit you.

So during this talk I will perform snippets of the song, explain why I think it is about software development and how your next software project can be better because of it. I'll make sure to cover the identity of 'the lady', interpretation of requirements, reverting architectural decisions and the cost of overly ambitious guitar solos.

Six things we learned implementing Rockstar on Quarkus 🎸

Let’s run Rockstar programs on Quarkus! What could possibly go wrong?

Rockstar is an example of an “esoteric language,” designed to be interesting rather than intuitive, efficient or especially functional. Rockstar’s interesting feature is that its programs use the lyrical conventions of eighties rock ballads. Rockstar has been implemented in many languages, but not as a JVM language. This was clearly (clearly!) a gap that needed fixing, so Holly and Hanno have stepped in to make sure us JVM folks aren’t missing out. As a bonus, because “Bon Jova” is a JVM language, it can take advantage of Quarkus-y goodness. Along the way, a lot was learned about eighties music, classloaders, parsing, bytecode manipulation, and the important relationship between language style, syntax, and semantics. 

There will be live coding, live singing and live guitar!

public static void main 🎶

Why just type the words “public static void main”, when you can also sing them? This talk-slash-pop-quiz is about 15 songs that will work with “public static void main” as the lyrics, enabling you to fully enjoy writing main methods while impressing your colleagues with your musical creativity at the same time.

Pattern Matching: Small Enhancement or Major Feature?

At first it seemed to be just a small enhancement: the addition of "Pattern Matching for instanceof" (JEP 305) in Java 14. No more unnecessary casting after an instanceof, that ought to save us a few seconds a day! However, upon further investigation you'll quickly discover that pattern matching is not just an enhancement, but rather a vital puzzle piece in the grander scheme of things.

Why were switch expressions added to Java, for example? To make them support pattern matching in a later release! And why did Java 14 bring us records and did Java 15 contain sealed types? Because they could work really well with pattern matching in a later release! These new concepts are the foundation upon which advanced pattern matching features will be built.

So attend this session to get all caught up, until the very latest release of Java! You'll hear about type patterns, record patterns, pattern composition and even how pattern matching could improve serialization in the future. Live coding included, of course!

Panel: Exploring Sustainability in Tech Without the Guilt-Trips

Most of us are all well aware of it: the current trend of climate change is not looking great. We can already feel some of its consequences and it is very likely to only become worse. As software developers we’re all about innovation though, so as long as we’re innovating not all hope is lost.

So how can you use innovation to become more sustainable, both as a software developer and as a human being? There is no single answer to that question, which is why we’re hosting this talk as a panel so that you’ll be able to hear multiple opinions. Each of us has a different perspective and knows different things we can do to help make a difference, and we'd like to hear from you as well!

We’d like to emphasize that we don’t want to guilt-trip anyone. This session is intended as a source of inspiration. The sheer scope of the problem can cause even the best of us to freeze up. Hearing ideas, no matter how small, from peers will provide you and us with ideas for the next step to take. This talk could be an opportunity for you to catch a few sustainability tips that can find their way into your life without costing you any noticeable effort.

Beware of Survivorship Bias!

Most talks on a typical conference schedule contain success stories of technology. This could lead to survivorship bias. Survivorship bias causes you to draw false conclusions because you mostly heard about successes, but hardly ever about failures. Yet failures provide us with lots of valuable knowledge: when not to apply a certain technique, pattern or process.

So no success stories in this talk! Just some 'silver bullets' we tried to use to solve our problems, but turned out to be Very Bad Ideas™. We’ll share how survivorship bias can easily influence your ideas and cloud your judgement.

After attending this talk you'll be more aware of survivorship bias and what you can do to keep your head cool, no matter how many 'silver bullets' are fired at you.

Java's Concurrency Journey Continues! Exploring Structured Concurrency and Scoped Values

Java's concurrency journey has been a long and winding one. We departed from the 'classic threads' station and traveled through Runnables, ExecutorServices, CompletableFutures and ForkJoinPools, before finally arriving at 'virtual threads'. But does 'finally' mean that we've arrived at our final destination, or is it a transfer at best?

Now that virtual threads are available, our Java programs will likely use an abundance of threads. This increase in thread count will immediately make thread coordination, observability and isolation more difficult. Two new Java features are currently in development that might make things a bit easier: Structured Concurrency and Scoped Values.

In this talk, we'll introduce and demonstrate these new features, and how they can help address the challenges that have emerged since the introduction of virtual threads. We'll also discuss how the availability of these features will impact your day-to-day programming life and whether Java's concurrency journey is actually over now that these features have become available or if there are still more stops to come.

Hanno Embregts

Java Developer by day, musician by night. A bit of both at conferences.

Leusden, The Netherlands