Keynotes

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.

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.

Regular Talks

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 playing!

Appearances (2)

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.

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! You’ll hear about type patterns, deconstruction patterns, nested patterns and even how pattern matching could improve serialization in the future. Live coding included, of course!

Will Git Be Around Forever? A List of Possible Successors

What source control software did you use in 2010? Possibly Git, if you were an early adopter or a Linux kernel committer. But chances are you were using Subversion, as this was the product of choice for the majority of the software developers. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now?

In this talk we will think about what features we want from our source control software in 2030. More speed? Better collaboration support? No merge conflicts ever?

I’ll also discuss a few products that have been published after Git emerged, including Plastic, Fossil and Pijul. I’ll talk about the extent to which they contain the features we so dearly desire and I’ll demonstrate a few typical use cases. To conclude, I’ll try to predict which one will be ‘the top dog’ in 2030 (all information is provided “as is”, no guarantees etc. etc.).

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. 😀

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.

Lightning Talks

A Bird’s-Eye View of Version Control with Pijul

Git has done wonders for the world of version control, but it is not without its quirks. If you are looking for a distributed VCS that goes a bit easier on newcomers by being more intuitive, you should check out Pijul. The Pijul VCS is patch-based (instead of snapshot-based), fast (it is written in Rust) and it supports interactive recording. In 15 minutes I will introduce Pijul, discuss pros and cons, compare it to Git and demonstrate a few typical use cases (such as recording patches, pushing to Pijul Nest and resolving conflicts).

Appearances (1)

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.

Appearances (1)

11 Crazy Things I Didn’t Know You Could Do With Java Until I Got My Java 11 Certification

This summer, I got my Java 11 certification. I expected it to be a breeze, because I’ve been a Java developer for 14 years now and surely I should have seen it all by now. Boy, was I wrong! I came across lots of things that I didn’t even know were possible with Java.

Now this can either mean that I have been a terrible developer for a painfully long time, or that these things are just a bit lesser known and in fact very interesting to hear about.

I’m hoping the latter is actually the case, so in this talk I will take 16 minutes to go through 11 things that took me 14 years to learn. Which means that you have the chance to learn these things 460215 times faster than I did! 🚀

These Songs Would Make Some Great Code Comments

Besides being useful, comments in source code can also be fun! This legendary StackOverflow post tells me that sometimes a well-chosen joke put into source code can lighten the mood at work and make your developer life just a bit better.

Now, because I am both a developer and a musician, I tend to use song lyrics to lighten up my code. So in this Ignite talk, I’ll demonstrate this by showing a few typical code fragments that could use some musical quality. And of course I’ll perform bits of the songs that go with it.

So are you in for a light-hearted talk on code comments - slash - a mini-concert featuring songs by Coldplay, Oasis, Adam Lambert, Imagine Dragons and many more? Please join in and feel free to sing along!

Unconference Talks

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.

Appearances (2)

The Soft Side of Software Development

Great to have you at the conference! By now you’ve probably heard about a lot of new tools, and chances are you’re already looking forward to trying them out at work. Then it’s just a simple matter of convincing everyone that the new stuff trumps the old in every way, right?

Turns out just knowing about the latest technical stuff will only get you so far. Your ‘soft skills’ play a vital part in the process of developing a great product. You need to be able to convince people, motivate them, listen to them and treat them with respect. So how do you learn this stuff?

After struggling with this question for a long time I discovered two things: 1) You can learn from your successes, and even more from your failures; 2) You can learn from the way other people handled their situations.

So in this BOF session I’m happy to tell you some of my successes and failures. But I’m also curious about the way you handled your own situations. In fact, just bring your splendid self and a few questions and I’ll do my best to make sure we all learn from it.

Possible topics:

  • Pitching Ideas
  • Dealing With Deadlines
  • Keeping Work/Life Balance
  • Handling Negativity
  • Resolving Conflicts
  • your own

Retired talks

Retired talks are talks that have been presented by me in the past, but at some point I’ve stopped presenting them. In most cases this is because the topic has become somewhat outdated. And in some cases it is because I no longer feel comfortable presenting it. I might have better talks available to submit, or I might feel like I’m no longer the best person to talk about a particular subject.

I’ll include my retired talks here for the sake of completeness.

JEPardy!

This… is… JEPardy! In this special edition of America’s favorite quiz show, the contestants will match various Java Enhancement Proposals (JEPs) to their proper descriptions. Instead of money, something far better can be won here today: improvements on their ready knowledge and understanding of the JEPs that drive the innovation in our favorite programming language.

Appearances (1)

Building a Spring Boot Application: Ask the Audience!

Spring Boot makes it easy to create stand-alone Spring-based applications that you can ‘just run’. It uses a ‘convention over configuration’ approach to get you up and running in no-time. And with the release of Spring Boot 2 in February 2018 all Spring 5.0 features will be available for Spring Boot users, as well as Kotlin support. In this session I will demonstrate this by live-coding a Spring Boot 2 application that will ‘just work’.

But audience beware, this is not your standard ‘live-coding session’. Attendees will have a vital say in the session’s content by defining the application’s requirements. Do you want a simple task planner? Or track your favourite movies? It’s up to you! Should it use MongoDB or JPA? You decide! Built with Java or Kotlin? I don’t care! Do you want an Angular front-end with a RESTful back-end or do you prefer a classic web app with Thymeleaf templates? It’s your call! Seriously.

During the session you get to make these decisions by participating in an online vote. And you will discover that Spring Boot is up to the task no matter what choices you make.

So what are you waiting for? Bring your own device, help shape the application that we’re building and learn lots about Spring Boot in the process.

This session is intended for Java software engineers with an interest in Spring Boot. Some Spring experience could come in handy, but is not strictly necessary. After this session, you will know enough to start your own Spring Boot project.

Entering the Fourth Dimension of OCR with Tesseract

Optical Character Recognition has evolved into a mature computer science field, with applications in financial transfers, book digitisation and passport scanning. Now if you would want to add OCR to your Java application, you have lots of options; one of which is Tesseract.

Tesseract has become quite popular amongst software developers because of its accuracy, its open-source status and its active development by Google. By using the Tess4J JNA wrapper it is easily integrated into your Java project.

During this session, I will introduce Tesseract, its pros and cons and how & when to use it. I will compare it to its competitors and I will explain why and how we used it in a case study. To top it off I will live-code a Java application that uses Tesseract and Tess4J to process some example images, so you’ll be able to assess its accuracy for yourself.

Now in geometry, a ‘tesseract’ is the four-dimensional analog of a cube. So will Tesseract live up to its name and help your project to ‘enter the fourth dimension’? Attend this session and find out!

Appearances (1)

Migrating 25K lines of Ant scripting to Gradle

Most developers prefer to spend their time writing code instead of performing build script maintenance. Build scripting may be an essential part of the software development process, but it often lacks maintainability which makes applying and deploying changes a tedious job. So it’s important to make sure your build system encourages simplicity and that changes can be made in a fast and straightforward way. Industry standards Ant and Maven are not quite up to the task; Gradle is a better alternative.

This presentation introduces Gradle – a modern build system that supports all JVM Languages – and shares the result of the Ant-to-Gradle migration that was performed at ‘Nederlandse Spoorwegen’ (or NS - Dutch Railways). The session will focus on the challenges we faced while trying to replace Ant scripting with the Gradle equivalent and how we handled them.

After attending this session, you will have a good understanding of Gradle, its possibilities and its pros and cons compared to Ant and Maven. On top of that, you will be able to migrate your own project to Gradle, even if your project has a huge code base or relies on ancient technologies. The lessons we learnt at NS could be very helpful to your own situation.

QWERTY or DVORAK? Debunking the Keyboard Layout Myths

If you’re reading this summary on a computer, chances are there is a QWERTY keyboard on your desk. This keyboard layout has been around since 1873, and it has been widely adopted ever since. However, its popularity has always remained a mystery to me. Why is everyone using a keyboard layout that doesn’t look that efficient on first sight?

I’m not the only one asking this question. A lot of myths exist on the QWERTY keyboard layout, including the one that it was specifically designed to slow down typists. In preparation for a switch to the DVORAK layout, I did some research and found out that a lot of these myths are riddled with factual errors. Also, I started learning DVORAK and kept track of my progress and what I thought were the pros and cons.

So was QWERTY designed to slow us down? Is it feasible to adopt an alternative layout like DVORAK? If so, how long will it take you to learn it, and should everyone consider it? Join this session to have your questions answered, and feel free to bring your keyboard layout of choice. :-)

Slide Deck Version Management: The Good, The Bad and the Ugly

After speaking at a few conferences, I’ve noticed that as a conference speaker you need to provide session content that is both challenging and versatile. On top of that, your content should be able to fit into different time slots. Whether you are given 35, 45 or 60 minutes of speaking time, your story should remain clear and appealing to the attendees. To make matters worse, in some occasions you are dealing with multiple speakers and / or different languages. And managing the different versions of your slide deck has officially become a challenge!

Analogous to the plot of Sergio Leone’s spaghetti western classic, three possible solutions exist: a good one, a bad one and a plain ugly one. I will demonstrate these solutions in reverse order and let you decide for yourself which one you prefer.

So are you a speaker or are you thinking about starting out? Or are you simply a fan of spaghetti westerns? Join me in this Ignite session to get some tips on slide deck version management! And discover that after attending this session, you can avoid spending your valuable time on version management and instead spend it on coming up with some great new session content!

Appearances (2)