Hello, I’m Michael.

I’m a software engineer in Jersey. I make websites, tools, games, and increasingly languages.

Michael Haddon, smiling, in a garden

I've been programming since I was twelve. I wanted to make games. Before I wrote code, I spent years designing a RuneScape clone, the stack of paper kept growing, and apparently I expected a game to come out of it once I had enough ideas for things to put in it.

One line of DarkBASIC put a sphere on the screen, and I was hooked.

The games that followed were an entertaining way to learn. I didn't have much idea how I was supposed to do it and kept adding things anyway.

At college, we were asked for a menu in a C# console application. I made the menu, well, I made a whole game around it. It had a menu at the start, so it met the requirements, and I got a much more interesting thing to spend the assignment working on.

An important technicality.

I still get absorbed in that extra work. Making something myself gives me a reason to understand it. Some early games are rough and I'm still proud of what I worked out. A few remain playable or watchable in my earlier thought entries.

Websites gave me other things to make. Sound of Jersey grew out of attempts to help people find bands and local gigs. Tiwio tried to match songs to a person's location and weather, so rainy Paris could get a Parisian song about rain. Very specific. Some found users, some stayed unfinished and some gave me an excuse to learn another tool.

What I build

Much of my day-to-day work is the infrastructure underneath other people's products. That includes fintech, the Dutch national ports and an Audi telemetry platform. I've also worked as a consultant across several countries.

Most clients are tech companies with a stack already and they need help with a particular piece of it. I build small services that fit their architecture, work with the tools they've chosen, and leave them something they can run without adopting my whole idea of an application.

I need to deploy what I've built and understand why it failed, and whoever looks after it next needs enough of that understanding to pick it up without me standing beside them. Getting it running again matters as much as the clever bit. That's building it too. My full CV has the employers, projects and particulars.

Piko grew out of websites and tools my wife and I build for clients. Its templates got me into parsing and code generation. The interpreter now has its own project, Pipit. I'm also building Floatyboat, an array language and compiler.

Joining familiar pieces into a website gets boring for me. Something underneath it to get interested in helps keep me going. And the client still needs their website. Now I have the tool to finish too.

I write about what I'm trying in my Thoughts. The Replay Lattice grew into a paper about carrying floating-point reproducibility requirements through a calculation. I can find a thought experiment, get interested in one part of it, and keep following it until reaching a resolution takes a much bigger commitment than other people (read sane people) would take on.

Jersey and PolitePixels

My wife and I run PolitePixels from Jersey. She designed much of this website, and I built it with Piko. We get to work together on the websites, the tools underneath them and the explanations we share on our YouTube channel. I like that arrangement. The website gives us something to explain, the explanation sends me back into the tools, and I'm usually absorbed in something else before we've finished the thing we started.

The channel led to my own video editor in 2022. It became more mature in 2023 and supported my early videos. The videos from before 2023 are gone. I was never happy with them, so I took them down.

There are compilers, lexers, infrastructure and.... it's mostly compilers, if I'm honest. You can also wander around a house if you've had enough of those.

If something here overlaps with your interests, I'd enjoy hearing about it.

I'm always interested in new ventures or a chance to work together.