I'm a South African programmer living in Tokyo. I work on software that has to make sense in the real world: systems with history, tools people depend on, and the occasional side project that scratches an itch a little too well.

Before Tokyo I spent many years in Sweden, including a long chapter running Cyber Lane AB. Most of that work was consulting: modern web applications, older systems that still mattered, integrations, payment flows, and eventually technical lead work that was as much about context and trust as it was about code.

I also ran KidSpeak, teaching programming workshops for children. Before Sweden there was England for fourteen years, after leaving Johannesburg at sixteen.

I've been writing code since I was six. Sold an adventure game engine to a Japanese company at sixteen. Lectured programming from eighteen to nineteen, between September 2002 and September 2003. Since then: military systems, publishing platforms, warehouse tooling, Amazon integrations, product work, and plenty of web systems across Europe.

These days I mostly write TypeScript professionally. For personal projects I still enjoy experimenting with Rust and Go, and I keep finding myself drawn back toward small embedded things too: the kind of C-on-AVR tinkering where the constraints are half the fun, even if I would like a slightly nicer path back into it.

Japan is the current chapter. I am still settling into it, still learning, and still interested in the craft of software: correctness, performance, humane tools, and the quiet satisfaction of something that works because somebody took the time to understand it properly.

This blog was quiet for a long time. I would like to make the next post easier than the last one.