Latest Articles

PinnedYour Daily Standup Should Be a Slack Message

It’s 9am. You’ve just made your coffee. You’re ready to be productive. Then your calendar reminds you that you have standup in five minutes. You sigh, open the video call, and wait for everyone to trickle in over the next seven minutes while Dave figures out why his microphone isn’t working again. Finally, the ritual begins. Sarah goes first. “Yesterday I worked on the API stuff, today I’m continuing with the API stuff, no blockers.” Fantastic. Groundbreaking information. Absolutely could not have been a single line of text.

I Built Tidewater, a Three.js Ocean Kit

I built Tidewater, a paid Three.js ocean kit with FFT waves, WebGPU and WebGL2 support, underwater rendering, wakes, buoyancy, presets and source code.

I Built Server-Side Rendering for Aurelia 2

Aurelia 2 has had server-side rendering sitting in that slightly annoying place where the core has the right foundations, but app developers still don’t have a tidy package they can install and use. If you’re building an internal dashboard, you can get away with a pure client-rendered app. Nobody is searching Google for your settings page. But if you’re building a public website, a landing page, a docs site, a marketplace, a product catalogue, or anything where the first HTML response needs to mean something, client-only rendering starts to feel like turning up to a job interview in board shorts.

How To Record the Helix Stadium XL in Streamlabs Without Getting the Dry DI

I recently ran into a fun little problem with the Helix Stadium XL and Streamlabs Desktop. And by fun, I mean the kind of problem where you spend a stupid amount of time wondering why the thing you can hear perfectly fine in your headphones sounds completely wrong in the recording. The Stadium was connected to my Mac over USB-C. Streamlabs could see it. The audio meters were moving. I hit record, played a bit, listened back, and instead of hearing my processed Helix tone, I got the dry DI.

Cleared to Land

A lighthearted air-traffic game for iPhone and iPad with a vintage aviation postcard feel.

GPT-5.5 (Spud) Doesn't Quite Have the Big Model Smell

GPT-5.5 dropped yesterday under the rumoured codename Spud, and I’ve been hammering on it inside Codex for most of today. I want to say something that probably won’t be popular. It feels a lot like GPT-5.4. That’s not a bad thing exactly, but it’s also not the leap the X timeline had me bracing for. Every leaker for the past month was whispering about big model smell. The general vibe was that OpenAI was about to drag the throne back from Anthropic in one swing. Sam’s strawberry potato tweet didn’t help calm anyone down. By the time the announcement landed, half the AI internet had convinced itself we were getting a generational jump.

The Energy I Had at 25 vs the Focus I Have at 37

At 25 I could code until 3am, sleep four hours, and do it again the next night. I had endless energy. I also had no idea what to do with it. I would start projects and abandon them. Chase every shiny new framework. Rewrite working code because I read a blog post that made me feel bad about my architecture. The engine was running hot but the steering was all over the place.

I Learned More Guitar in 6 Months at Church Than 15 Years in My Bedroom

For fifteen years I played guitar in my bedroom. Noodling. Learning the opening riff of songs and never finishing them. Playing the same power chords I learned in 2005. I owned nice gear. I watched YouTube tutorials. I told people I played guitar, which was technically true in the same way someone who owns running shoes is technically a runner. Then I started playing at church and everything changed. In six months I learned more than the previous fifteen years combined. Not because church music is particularly complex (it is not) but because I finally had something I never had before: a reason to actually get better.