Richard Groß
IT Archaeology: Mend Software · Create Options · Increase ROI
Blog
Talks
Articles
Interviews
Built
Achievement unlocked: Made it onto the Ubiquitous Speakers 2026 List
Javaspecialists.eu made a list of all the Java speakers. Medals are handed out if you made it to more than 2 Java conferences. Guess who made the list? :) This year has been my busiest year yet wit...
Just Published: Destructoring is the future of Javas Encapsulation
Encapsulation in Java has been broken since the Java Development Kit (JDK) 5 but there is hope on the horizon. JAVAPRO has just published my article about it. Enjoy :)
Just Published: Kotlin kontra Java - Part 3
When you start a new project on the JVM, should you pick Java or Kotlin? JAVAPRO has just published the third part of my article series, focusing on interop. Enjoy :)
Just Published: Kotlin kontra Java - Part 2
When you start a new project on the JVM, should you pick Java or Kotlin? JAVAPRO has just published the second part of my article series, focusing on multiplatform. Enjoy :)
Just Published: Kotlin kontra Java - Part 1
When you start a new project on the JVM, should you pick Java or Kotlin? JAVAPRO has just published the first part of my article series, focusing on the ecosystem. Enjoy :)
50 First Dates with AI
"Working with a coding assistant or an LLM resembles teaming up with a very enthusiastic and knowledgeable junior". These expressions are widely used, but they purport the wrong mental model. Junio...
Coding Genie
The genie is a term coined by Kent Beck, defined in TDD, AI agents and coding with Kent Beck The best analogy I could find is a genie. It grants you wishes. And then you wish for something and you ...
Generative AI Track record
General LLM comparisons ARC-AGI Leaderboard, shows cost vs score Artificial Analysis of AI models and API providers SWE-bench, Can Language Models Resolve Real-World GitHub Issues? LLM Visualizatio...
Java Version History (up to JDK 25, in development)
An ongoing list of Java features per release Ever since Java switched to its six-month release cadence (Time-Based Release Versioning) it has become a bit harder to keep up with the features they h...
Structure-cementing tests and how to avoid them 2/3
Part 2 - Concepts of the TestDsl Tests should be sensitive to behavioural changes but be insensitive to structural changes. Tests that do not fulfil the second condition are called structure-cement...
SPACE - The Meta-Framework to Measure Developer Productivity
Developer productivity has been studied extensively. Unfortunately, after decades of research and practical development experience, knowing how to measure productivity or even define developer prod...
GenAI is a waste of our time
Generative AI is a waste. It’s a waste of our time, our CO2 and our sanity. Tom Fishburne perfectly summarises why in his web comic: Can’t we just communicate short and to the point? Al...
.NET Version History (up to .NET 9)
The following list tracks the stable (not incubating or in preview) feature changes I deemed most noteworthy. The list is ongoing and will be updated with every new .NET release. A + marks an added...
Structure-cementing tests and how to avoid them 1/3
Part 1 - Building a TestDsl Tests should react to behavioral changes but be insensitive to structural changes. We call tests that do not fulfill the second condition structure-cementing. They make ...
JORM (Json Object-Relational Mapping) is not REST
The Richardson Maturity Model is a great model for explaining the basics of building an http Api. Unfortunately the indexing of its layers (0, 1, 2, 3) suggests that reaching Level 1 is already RES...
Naming Guidelines
Programming is a team sport where we use code to send messages of intent to our future selves. The messages are the names we have assigned to various function, class and other code elements. The as...
Contract Tests in Kotlin
I now call these tests port contract tests to differentiate them from api contract tests that verify your understanding of an api. Api contract tests are the things you write when you do consumer-d...
© Richard Groß - generated with Mastro, based on the Simply Jekyll Theme (see site styles), and made with modern web features.