Wednesday, 8 April 2026

VoxxedDays 2026

So, I went to VoxxedDays on April 1st and 2nd.1

Some of it was very interesting, and I've retained some notes and links written below.

Spec-driven development2
It seems to be a way to specify the wanted behaviour of your software in such a way that AI can successfully create your software based on your spec. Not entirely convinced of this.
Lion3
Lion is a set of highly performant, accessible and flexible Web Components.
PicNic4

PicNic is a online greengrocer/supermarket which is running a Blog on the challenges on scaling up. Quite interesting.

Some interesting things for example are providing fresh products (bread for instance) within a certain timeframe.

Programming Rules your IDE can tell you about.
https://github.com/jborgers/PMD-jPinpoint-rules
Compressed OOPs in the JVM
https://www.baeldung.com/jvm-compressed-oops
A good explanation of generics
https://bramjanssens.nl/generics/
Reduce Object Header Size and Save Memory in Java 25
https://www.baeldung.com/java-object-header-reduced-size-save-memory

References

[1] VoxxedDays Amsterdam
https://amsterdam.voxxeddays.com/
[2] What Is Spec-Driven Development? A Complete Guide
https://www.augmentcode.com/guides/what-is-spec-driven-development
[3] Github - Ing/Lion
https://github.com/ing-bank/lion
[4] PicNic - Blog
https://blog.picnic.nl/

Monday, 16 March 2026

Kotlin: lots of functions

I like Kotlin (sometimes) as it has a large and rich number of convenient functions to use.

In Java, we tend to reach for our Guava1 or Apache Commons Lang2 to get the same functionality.

But it does tend to make it a bit hard to decide which to use, especially as I (as most people I hope) do not know the entire dictionary of available functions in Kotlin.

Luckily there's of course colleagues who can help, and my IDE also does a pretty good task of suggesting better ways.

Case in point:

val items : List<Items> = getItems()
val coupon: Coupon? = items.map { it.coupon }.filter { it != null }.firstOrNull()

I do know the code above can be made simpler.

val items : List<Items> = getItems()
val coupon: Coupon? = items.mapNotNull { it.coupon }.firstOrNull()

There, the mapNotNull() is a very convenient function that I use all the time.

But this time my IDE complained again and told me to use .firstNotNullOfOrNull

val items : List<Items> = getItems()
val coupon: Coupon? = items.firstNotNullOfOrNull { it.coupon }

It's fine by me, to use this, but I didn't know this function exists.

Also, the name seems a bit long and it took a minute to understand the meaning.

References

[1] GitHub - Google Guava
https://github.com/google/guava
[2] Maven Repository - Apache Commons Lang (3)
https://mvnrepository.com/artifact/org.apache.commons/commons-lang3