The Ergodox Ez Keyboard

I think it was somewhere last year that I felt some pain in some of the fingers of my right hand for the first time. Mostly my thumb and pink felt uncomfortable. Around the same period I also felt some pain in my right shoulder. It wasn’t exactly at the same time but I found it a little disturbing knowing that as a developper these are things to watch out for. »

The Bank Kata in Ocaml - Part 3: injecting a clock with Functors

So at the end of part 2 we said we don’t like that we have to add the date as part of the public API. Which makes sense for a public bank terminal, we do a deposit or withdrawal now. So we’ll want to remove on from deposit and withdrawal. But where do the dates come from now? Let’s introduce a Clock module: Let’s see if we can rewrite our test to adapt to this new API »

The Bank Kata in Ocaml - Part 2: implementing the kata

In part 1 we’ve set everything up, let’s implement the kata now. If we check the readme we can see a simple acceptance test, let’s start with that. We create a file test/ open! Base open! Stdio let%expect_test "Printing the statements should contain all transactions" = Lib.Account.create () |> Lib.Account.deposit ~amount:1000.0 ~on:"10/01/2012" |> Lib.Account.deposit ~amount:2000.0 ~on:"13/01/2012" |> Lib.Account.withdrawal ~amount:500.0 ~on:"14/01/2012" |> Lib.Account.print; [%expect{| date || amount || balance 14/01/2012 || -500. »

The Bank Kata in Ocaml: Part 1 setting everything up

The goal of this small series of blogs is to implement the Bank kata in OCaml, doing it test and type driven and try to have a clean design. We’ll try to implement the kata with outside-in tests. My personal goal is to learn some OCaml along the way. I won’t be going into every detail of OCaml, but if you have some experience with an ML language, you should be able to follow along. »

My summary of DDD Europe 2018

Well, that was a blast. DDD Europe 2018 is already over. And I loved it! Because I had lovely conversations, great insights and good learnings, I had the idea to create a summary, mostly for myself. Pre conference workshop DIY Event Sourcing Tooling A pre conference workshop by Marijn Huizendveld on Tuesday and Wednesday. This workshop about making your own event sourcing tooling was not exactly what I expected it to be. »

Why I choose Bucklescript

On the meetups I attend, some people know me as the Elm guy. Yet, when reading the title of this post, you can see that I’m going for Bucklescript lately. In this post I’m going to try to explain my choice for Bucklescript. If you are in doubt, maybe some points in this post can help, but my advice would be to just try and research both languages and see for yourself. »

Integrating bucklescript with typescript

Recently I’ve started using Bucklescript (and Reason) over Elm for various reasons (Something I might blog about later). In this post I’m exploring integrating Bucklescript with Typescript. Let’s start with a blank typescript project with webpack You can find the inital commit of a Typescript project here. There is nothing special in this commit, some npm dependencies: source-map-loader, ts-loader, typescript, webpack, webpack-dev-server. The ts-config.json file is generated with tsc --init, nothing is changed. »

A big ball of frontend

Tonight I’m giving a talk at Fronteers about Frontend microservices. Mind you, I don’t want to go into what a microservice is, so a talk about Frontend services is fine as well. What is important for me is that we’re not building a big ball of frontend. We’re paying so much attention to having a good architecture on the backend, with lots of (micro)services but at the same time, we’re building one huge single page application (SPA). »

Exploring aggregate boundaries in event sourced systems

In this post I’m exploring some ways of modelling aggregate boundaries in an event sourced system. This is mostly to crystallise some thoughts that I had after some event storming sessions, but it might be interesting to someone else. The domain I’m using in this post is the domain that Michel Grootjans and I have created for the workshop Playing with projections (We already gave it a few times, for example at DDD Europe and will also give a session at I T. »


The year is over, a new year has come. I know, New Year is an arbitrary point in time but it is a tradition to look back on the past year and have some resolutions for the year to come. So at this arbitrary point in time, lets look back and forward 2016 I’m going to make this short, because I mostly want to look forward! Became an independent software consultant Bought a house with my girlfriend Read lots of books Became a teamleader Lots of other cool stuff 2017 Last month I read Building Jarvis from Mark Zuckerberg where he builds himself a Jarvis in 100 hours. »