MD
WorkWritingAbout

Writing

Notes from building the things under Work. Mostly technical, occasionally not.

⌕

​
All
Architecture
Automation
C#
Career
Craft
Graphics
IoT
MQTT
TypeScript
WebGPU
2026-09-06
GRAPHICS
11 min

Ray-tracing a rotating black hole in the browser

Null geodesics, a WebGPU compute shader, and why the first frame is allowed to look terrible.

2026-09-06
CAREER
7 min

Back to school, twenty years in

A year of ladder logic and cabinet wiring, and what two decades of writing the software above it had not taught me.

2026-08-14
TYPESCRIPT
9 min

One grading engine, two runtimes

Making the same TypeScript produce identical verdicts in a browser tab and a Node process, and the three places it quietly did not.

2026-06-02
CRAFT
6 min

Twenty years of C#, and what I had to unlearn for TypeScript

Interfaces are not contracts here. Structural typing is a gift and a trap. On giving up the class hierarchy I spent a career building.

2025-11-08
IOT
8 min

MQTT is not a message queue, and other things I learned the hard way

Retained messages, QoS that does not mean what you think, and a home automation rig that would not stop replaying last Tuesday.

Martin Dahl · Sweden · 2026press ~ for the console