wolfgang ziegler


„make stuff and blog about it“

Jfokus 2025 - Day 2

February 6, 2025

This was the first regular conference day after yesterday's workshop/pre-conference day. So naturally, the conference was opened with the keynotes.

Keynotes

And boy ... that was quite the opening! The stage had been equipped with actual fire effects and loud metal music kicked off the show. "Welcome to Sweden", I chuckled to myself. Turns out these metal tunes (with geeky, coding-related lyrics) were actually performed by an Italian band called Nanowar of Steel. One of the band members even held a talk at this conference.

Jfokus 2025 - Nanowar of Steel

Beyond Code: The Role of Developers in the Age of AI

After that entertaining opening, things got a bit more serious and Kesha Williams discussed the question that probably many of use had pondered themselves recently.

"Will AI make us developers obsolete?"

First Keynote

While the talk did not answer this with a clear "yes" or "no", the clear sentiment seems to be that our role will change greatly in the forseeable future. Personally, I very much agree with the speaker that we are most likely the last generation of the classic developer role. What I haven't made my mind up about is how anxious this should make me. But I guess, at the wild pace of progress that we are experiencing right now, I will soon find out.

The Future of Work

Second Keynote

The second keynote was also dedicated to the omnipresent topic of AI. This talk by Henrik Kniberg was more on the practical side of things and he showcased a couple of ways how to integrate AI tools and agents into your daily work. The scenarios he demonstrated, highlighted the great productivity gains that AI tools like Claude or Cursor can give us. Again though, I think this session left a lot of people in the audience with anxiety and worries about their future.

Continuations: The magic behind virtual threads in Java

Virtual Threads and Continuations

As exciting as AI and its implications are, I mostly avoided talks about this topic during this conference for the sake of my mental wellbeing.

So, for the first session on this day, I decided to deepen my knowledge on Java's virtual threads and continuation API. The session was very practical and hands-on and the speaker explained these concepts quite well relying mostly on live-coding, which is a thing that I always appreciate. I had not been familiar with the continuation API in Java, so I learned a lot and I must say that I quite like the approach they took with it. The only thing that still puzzles me is why the Java community seemingly goes out of its way to avoid embracing async/await into the language. With continuations built in now, I think everything would be in place already to "just have it".

97 Things Every Java Programmer Should Know

97 Things Every Java Programmer Should Know

This was a fun session. The 2 main authors (Kevlin Henny and Trisha Gee) of the book, equally titled as this session, hosted this. The whole session got then divided into 5 minute slots and both Kevlin and Trisha, as well as 3-4 other co-authors, present at the conference, got a chance to present the chapters they had contributed to this book.

Luckily, I had not forgotten to bring my own copy of the book to the conference and had it signed by the authors.

Real World Lean Java Practices, Patterns, Hacks and Workarounds

Real World Lean Java Practices, Patterns, Hacks and Workarounds

I did not really care for this session or rather the speaker's (Adam Bien) attitude, I must say. I had the constant impression that he takes a bit too much joy in being as opinionated and edgy as possible in his technical advice. He threw out statements like "I don't believe in unit tests" and was apparently waiting for reactions or push-back from the audience. Luckily, they did not give him this pleasure.

To me, he gave off the same vibe like a guy in a bar who desperately wants to start a fight while everyone keeps ignoring him.

How does code hot swapping work, and what are its pitfalls?

How does code hot swapping work, and what are its pitfalls?

This was a short (15 minutes) talk by my fellow Dynatrace colleague and team member Marco Sussitz. Marco did a great job explaining in a nutshell how Java byte code transformation at runtime works. In a live sample he demoed how to patch an application's code while it keeps running.

If that's something that floats your boat you might want to check out a job at Dynatrace.

Unlocking Java's Code Maze

Unlocking Java's Code Maze

I felt that this was a rather lazy approach to doing a conference session. If you Google "Java coding interview questions", make those into a multiple choice quiz and a slide deck, you basically have recreated this talk. While it admittedly can be fun to do this kind of code quizzes, I think it's not enough for a conference session and it feels rather sloppy and lazy.

Caching Unleashed: Revolutionizing Java Performance

Caching Unleashed: Revolutionizing Java Performance

This talk should have been listed as a sponsored session, in my opinion. I went into the talk expecting code samples and practical applications, but was presented mostly with marketing slides.

Bonus - Game Dev Stockholm Meetup

A pleasant surprise was that the Stockholm Game Dev community held a meetup on the conference venue. So, instead of heading into Stockholm's nightlife, I chose the nerd-side and stayed for a couple of more talks.

Game Dev Stockholm Meetup

The first Meetup talk was admittedly very well delivered but not exactly what I had hoped for. It was aiming more at the production side (e.g.how to get from idea to execution?) of game development, so not exactly relevant to me.

The second talk though was exactly what I had hoped to learn about. Bona Fyrvall (from Arrowhead Studios) explained the backend architecture of Helldivers 2 in great detail. The .NET enthusiast (at a Java conference, I know 🙈) in me was quite thrilled to learn about the tech stack (ASP.NET, Orleans, CosmosDB) that is driving this game.

Helldivers 2