Last week, I attended the JavaZone 2025 conference, this time at NOVA Spektrum in Lillestrøm. I liked the new venue: there’s more space, and the rooms work better for the presentations. The short train ride out of Oslo center to Lillestrøm is definitely worth it.

Here are the sessions that I attended, and my personal comments and reflections on them:
- Writing Code for the Human Brain: Optimize code for Cognitive Bottlenecks by Adam Tornhill. A good session about why it’s so hard to write good code, and actually a reflection on why we humans are able to write working code at all. One of his observations that I would like to highlight is that human problem solving is fundamentally iterative. This has many consequences, and the estimation problem is one of them. He also explained why beautiful code is AI-friendly, a point that has also been made by many others recently.
- Socio-technical API patterns by my good ex-colleague Einar W. Høst. He had a good explanation of how APIs come about, and what should be done to make an API really work. The patterns are really anti-patterns, and all of them funny because they’re true, unfortunately. We’ve all experienced them, but luckily, we’ve never been the cause of any of them — or have we?
- Top 10 REST API Design Pitfalls by Victor Rentea. He had many good points, and a very impressive presentation style, I have to say. I hadn’t heard about Postel’s Law yet (“be conservative in what you do, be liberal in what you accept from others”), a good advice both for life in general and software engineering in particular. And I agree with him that everybody should check out and read RFC 9457. I’m afraid that includes me too.
- When to Stream, Collect, and Gather by Cay Horstmann. I was really relieved to hear that I haven’t been the only one who has been keeping writing small, simple and understandable loops for years instead of using Java streams magic. His advice not to use Java streams unless it results in code that’s easier to understand than a simple for loop is so obvious yet a very important one.
- From Ballots to Code: Exploring Election Security by Hallvard Nygård. He had a very important talk about election security, certainly in light of yesterday’s election result in Norway where two parties ended up very close to the electoral threshold. It’s impressive to see in how many ways elections can fail, and yet we manage to conduct them without the population losing trust in them.
- The Programming Language of the Future by Robin Heggelund Hansen. I liked his idea of storing code as an AST in a database, such that when it’s presented to a developer, it’s always nicely formatted, possibly according to the developer’s preferences. That would certainly end all the quarrels of indentation or whether to break a line before or after a bracket. In his introduction, he also pointed out that optimized code is often difficult to read and understand, and in many cases, it’s not obvious at all exactly what it is that optimizes a piece of code. The risk is then that the next developer touching the code (or you, a couple of months later) also breaks the optimization unknowingly.
- Kan man kode annonsetech uten å selge sjela? by Elisabeth Irgens and Olav Haaland Moseng. Really strange to attend a session of two developers whose software product I have blocked in my browser. But the world of internet ads is much more fascinating than what I imagined, and there are a lot of things going on before an ad pops up alongside an article you’re reading.
- Hva er problemet med Helse-IT? by Christin Gorman. As always, many good points and observations formulated in an entertaining way. I like it that even when I disagree, she usually makes a good point. Not sure whether it was meant to be a compliment that she also included my employer Computas in the list of consulting companies sometimes adding another layer of directors to the public sector, but I just take it as a recognition that we’re a major player in Norway. Anyway, she’s right that even though we’re complaining a lot about bad IT and software failures in public sector, there’s a lot of stuff out there that’s working amazingly well. Also remember that what we take for granted today, would have seemed like pure magic a couple of decades ago, and is something people can only dream of on almost every other continents.
- Java for Small Coding Tasks by Cay Horstmann. I have to confess I haven’t used Java for scripting yet, but after this talk, I’m definitely going to try it out the next time I need to write a new script and can afford the extra minutes to set this up for the first time. JBang in particular looks like something I need to check out soon. It happens too often that I start out with something simple and small in Bash or Ruby, and regret hundreds of lines of code later that I didn’t use Java.
- Funksjonell kjerne, imperativt skall — en arkitektur på vranga by Magnar Sveen. I had never heard of ‘functional core, imperative shell’ before, but realized during the talk that I’ve been doing something along this line for years in my side projects. I find it hard to write testable code when it’s cluttered with side effects, like IO operations or persistence. I was very glad to see that it can work on a larger scale too.
Check out the rest of the program here, and the videos here.
I’m already looking forward to JavaZone 2026!
Impressions from JavaZone 2025 was originally published in Compendium on Medium, where people are continuing the conversation by highlighting and responding to this story.


