Notes

Daily thoughts on things I've read, watched, or want to remember.

The Night Shift Workflow

Jamon Holmgren's Night Shift workflow separates human thinking from agent execution — specs by day, autonomous implementation by night. The core insight: your time is the expensive resource, tokens are cheap. Start from a draft PR, not from zero.

Composition over Inheritance on roadmap.sh

My Composition over Inheritance YouTube video is listed as a learning resource on the roadmap.sh Software Design and Architecture roadmap.

VoiceBox

Tried VoiceBox, a free open-source voice cloning app that runs locally. Cloned my voice in 30 seconds from a short audio sample — surprisingly good, even with a Scottish accent.

Neologisms

Fowler coins new words to describe things he sees in software. I do the same. I don't expect any to catch on. I do it to help me think.

Semantic Diffusion

Semantic Diffusion describes how terms lose their meaning as they spread. I discovered it a while ago. I think Event Sourcing, CQRS, and DDD are topics that suffer from this exact problem.

42 Days Across the Labrador Wilderness

Kevin Wild filmed his 42-day, 650km solo canoe expedition across the Labrador wilderness. The result is an 8-hour documentary covering everything from polar bear territory to paddling alongside whales. Unmissable!

Implicit Freshness

Claude is assuming my codebase and dependencies are always fresh. I'm experimenting with a new CLAUDE.md decision-making heuristic. I'm trying to nudge it to check before wasting a bunch of time on debugging cycles.

Pointer Capture for Range Inputs

Native range inputs have a tiny capture area — drag too fast and the pointer escapes. setPointerCapture locks tracking to the element, touch-none stops the browser stealing the pointer for gestures, and a pointerup handler catches the final position that pointermove misses.

Manage the Context Window

Daniel Griesser's custom sub-agent workflow for context management was ahead of its time — what he hand-rolled is now being shipped as first-class tooling. The core insight still stands: context is precious, and managing it intentionally is everything.

Deep Modules and AI-Ready Codebases

Matt Pocock argues your codebase is the biggest influence on AI output, not your prompt. His solution is deep modules from John Ousterhout's A Philosophy of Software Design. It maps perfectly to how CQRS already works — each service boundary is a deep module with commands and queries as its interface.

Mole — macOS Disk Space Cleaner

Mole is a macOS command-line tool that bundles system cleaning, smart app uninstalling, and build artifact removal into one binary. Ran it while fighting a disk space crunch and recovered over 20GB in minutes.

Subagents and the Smart Zone

Matt Pocock explains why subagents are the dominant pattern for coding agents, keeping work in the first 40-50% of the context window where models perform best.

Raspberry Pi with a Purpose

Got a new Raspberry Pi, but this time it's not for tinkering—it's for an actual project. First time installing a heat sink that won't be used to play Counter Strike.

Discovered EaseMaster – A Playground for Custom Easing

Found this fantastic tool for exploring easing functions. It's opened up a whole playground for experimenting with custom timing curves to match the vibe and feeling of different animations.

Design Patterns for Humans

Solid resource for understanding design patterns with good explanations and examples.

Compiled Conversations #17: Event Sourcing

Shawn McCool discusses Event Sourcing as a modelling technique—how it differs from Event Streaming, why aggregates work better as short-lived lifecycles, and how CQRS pairs naturally with it. Touches on DDD as a pursuit of domain understanding.