Hi, welcome to my programming blog.

I am an engineer that turned software developer. I enjoy technical challenges and experimenting with techniques and architectures. Some are used successfully in production and some are complete failures. However, all experiments are a way of learning. By posting articles about my experiments I hope that others learn from me, but also that I can learn from others. Also, it serves a more mindful approach where, by writing it down, I am forced to structure my thoughts.

Latest posts

Building Route Guards for Ktor 3 servers

22-Nov 2024

Reading time: 7 minutes

The last few months I have been very busy with developing server applications using Ktor. Ktor is a Kotlin-based framework for building asynchronous servers and clients. One of the strengths of Ktor is that it is highly unopinionated…

Read more

Building a Gradle setup with convention plugins for quick Kotlin experiments

03-Feb 2023

Reading time: 9 minutes

I try to experiment a lot in Kotlin because I love the language so much. Since I like to use different features for different experiments, I normally just made a new project for every experiment and placed it under a root project. But since…

Read more

Building a Mandelbrot viewer in Compose Multiplatform

14-Oct 2022

Reading time: 10 minutes

I decided to experiment with Compose Multiplatform, the declarative UI framework, even though I hardly know Compose. Since I am not an Android developer it was a bit confusing to get started with, because there are multiple artifacts that…

Read more

Creating multiplatform Conflict Free Replicated Data Types in Kotlin Multiplatform

15-Jul 2022

Reading time: 26 minutes

Sometime ago I was tinkering with some application that required state to be synchronized across different 'nodes'. In a previous job we already used something similar and I knew it was based on the idea of Conflict-Free Replicated Data…

Read more

Creating an MVI architecture in Compose Multiplatform

30-May 2022

Reading time: 12 minutes

Recently I've gotten very interested in Jetpack Compose. I mistakenly thought it was just a way of declaratively building a UI and having it automatically updated in some clever way. Much like my own virtual DOM implementation but more…

Read more

Multithreaded web applications in Kotlin with Web Workers

25-Apr 2022

Reading time: 10 minutes

One of the things that always interested me, but so far I never have used, are Web Workers. To quote the MDN documentation here: "Web Workers are a simple means for web content to run scripts in background threads." This interests me…

Read more

Building a multiplatform virtual DOM in Kotlin

19-Apr 2022

Reading time: 12 minutes

Based on my previous blog post about a multiplatform DOM DSL I got some more inspiration. I used an NPM library called virtual-dom to implement a virtual DOM in the JS part. It got me thinking.... how easy would it be to do it myself? I…

Read more

Building a multiplatform DOM DSL in Kotlin

09-Apr 2022

Reading time: 11 minutes

For a project I needed to generate a lot of SVG's both in JS as well as in a backend. I assumed that this could easily be solved by using Kotlin Multiplatform, but I ran into some problems. Eventually I decided to build a minimal DSL to…

Read more

Building an ECS-architecture using Kotlin MPP

26-Mar 2021

Reading time: 13 minutes

In this post we are going to build an Entity-Component-System architecture from scratch using Kotlin Multiplatform Programming and create a simpel Kotlin/JS simulation with it. Entity-Component-System (ECS) is an architectural pattern that…

Read more

Compositional Patterns in Kotlin Part 2 - Component Model

07-Mar 2021

Reading time: 10 minutes

This is the second part of the post on compositional patterns in Kotlin and will focus on a dynamic, or runtime, composition. In Part 1 we focussed on static, or compile-time, composition. There are a few ways to obtain dynamic composition…

Read more

Compositional Patterns in Kotlin Part 1 - Delegation

27-Feb 2021

Reading time: 11 minutes

Roughly speaking there are two ways to obtain polymorphic behavior in OOP languages, 'classical' inheritance and composition. There are clear benefits in either approach depending on the domain one is trying to model. So this post is not a…

Read more

Build 481dfd5 - 2024-11-22T15:59:12.000Z