Posts

Brain-Work, Brain-Toil and Mentoring AI Agents

Image
I recently wrote about my enlightenment: A mental model for working with AI AgentsTLDR; see it as a collaborator who …

AI Agents: Rich Oases of Knowledge, Barren Deserts of Wisdom

Image
Everyone keeps writing or sharing about how powerful AI Agents are and how they can fundamentally change the way we do …

Flow: A Pragmatic Approach to Composable Business Logic in C#

Image
Only recently, after reading the book Effect Oriented Programming, did the true benefits of functional programming …

Laziness and Impatience - An Engineer's Journey

Image
I used to have a relatively derelict blog (the one you're on now) where I would jot down some of my thoughts and ex…

Did we just swap "compilation time" for "completion time"?

Image
I've been a software engineer for long enough to have seen our workflows evolve dramatically.Waiting for the Toolch…

Shell Scripts: Safe Short/Long Option Parsing

Image
I’ve written a ton of Bash scripts over the years - haven't we all?
To be honest, for a long time I handled command…

The Tale of Two Teams: How We End Up With Useless Software

Image
Two equally notorious ways to guarantee failure in any software project:Ship too soonNever shipThis is the story I use …

GNU Make's Two Personalities: Understanding Simple (:=) vs. Recursive (=) Variables

Image
There are two major flavours of variables in GNU Make: "simple" and "recursive". While simple

The Tyranny of Choice: My Case for Opinionated Software

Image
Early in my career, I learned an expensive lesson (fortunately by observation, not by failure) and it has had a profoun…

The "Zero Incidents" Trap: Why Chasing Perfection Backfires

Image
I'll confess: for years, I was an adamant believer.
I was convinced that achieving "zero incidents" was ju…