Featured
A REVERSI engine from high school
My REVERSI move engine, originally written in Pascal in 1992 and now ported to ClojureScript with a modern UI

Trojan Asteroids
An updated version of my “trojan asteroids tutorial” that I initially posted in 1997. Now with update Javascript app!

MVVM and FRP: Architectures for Mobile Apps Part I
This is the first post in a series on architectures for mobile apps. I present an example app with different approaches and discuss the merits and downsides of each.

Latest
2026-09-02 | What I Learned About User Interviews
Software developers are very good at building things. Unfortunately, this is only useful after they have picked the right thing to build. A few years ago, I co-owned a startup that developed software for relationship management. It was similar to a CRM, but focused on building a professional network rather than managing a sales pipeline. We had plenty of ideas. We also had the technical skills to implement them. What we did not have was a reliable method for deciding which ideas deserved to be implemented. It took us more than a year and several expensive wrong turns to understand some fairly fundamental facts about our product: it would be used for business rather than private relationships, it needed both a mobile and a desktop version from the start, and the right customers could justify paying around 100 Euros per month. In hindsight, none of these insights required a year of software development. They required better conversations.
2026-08-09 | A REVERSI engine from high school
My REVERSI move engine, originally written in Pascal in 1992 and now ported to ClojureScript with a modern UI
2026-07-22 | Unorthodox Solutions for Fizzbuzz
This post discusses several approaches to the Fizzbuzz group word game. Starting with the standard approach, I introduce a couple of restrictions that require more creative and unorthodox solutions.