Why I Chose http4k Instead of Spring Boot

Why I chose http4k over Spring Boot for my latest Kotlin project, and the trade-offs I considered.

June 20, 2026 · 3 min · Johan Basson

Every Abstraction Has a Cost

Abstractions make software easier to change, but they also make it harder to understand. The challenge is knowing when they’re worth the cost.

June 27, 2025 · 2 min · Johan Basson

Code Should Read Like Documentation

One of the principles that has shaped how I write software over the years is that code should explain itself.

June 24, 2025 · 2 min · Johan Basson

Discovering Railway-Oriented Programming

A talk by Scott Wlaschin changed the way I think about error handling and composing business logic in Kotlin.

June 15, 2025 · 3 min · Johan Basson

How Functional Programming Changed the Way I Write Kotlin

Functional programming didn’t change the language I use. It changed the way I think about designing software.

June 10, 2025 · 2 min · Johan Basson

Why I Don't Like Generic Repository Interfaces

I used to create a repository interface for every aggregate. Over time I found a simpler approach that makes dependencies more explicit and business use cases easier to understand.

May 13, 2025 · 2 min · Johan Basson