All writing

Writing theme

How software delivery really works

Planning, tooling and the habits that decide whether software ships and keeps running, plus the experiments and test drives that inform my choices.

24 articles

Start here

Evolution over Revolution: A Pragmatic Approach
Software Engineering

Evolution over Revolution: A Pragmatic Approach

After the third caching bug in six months, Dave arrives at the sprint retrospective with a proposal — a full rewrite of the cart service. The frustration is legitimate. But Jordan, a senior developer, asks one question that changes everything — "What does rewrite actually mean, exactly?" What follows is a whiteboard conversation, a cautionary tale from Duke Nukem Forever, and three sprints that delivered more than a rewrite would have.

Feb 28, 202615 min
Shift Left Into Planning
Software Engineering

Shift Left Into Planning

Shift left has meant the same thing every time a discipline stumbles onto it: catching a problem earlier is cheaper than catching it later. Agentic coding has sped up the build, but not the planning that decides whether the build is worth doing. A case for giving planning its own wide, deliberate space, separate from the pressure to skip straight to code.

Aug 16, 20267 min
The Folder That Became a Discipline
Software Engineering

The Folder That Became a Discipline

A simple audit question — how many AI agents are running across a set of repositories — had no shared place to even be asked. The folder built to answer it grew, one real gap at a time, into a tracker, a drift-check script, and a planning discipline that was never designed as a system on day one.

Aug 16, 20265 min
Stop Digging Through Logs. Start Designing for Learning.
Software Engineering

Stop Digging Through Logs. Start Designing for Learning.

Analytics and development teams operate on the same data with different goals, different time horizons, and different definitions of what matters. This is about that structural gap — and the analytic contract that makes both teams' assumptions visible before something breaks.

May 11, 20267 min

Work that shows it

All articles in this theme

Isolated Development Agents: Reinventing Waterfall With AI

Oct 20, 202617 min
NewSoftware Engineering

ApiTestSpark: OpenAPI Became Implementation Context

Jun 9, 202611 min
Software Engineering

API Test Spark: React in NuGet for .NET 10 APIs

May 30, 202615 min
Software Engineering

RESTRunner: Building a DIY API Load Testing Tool

Mar 16, 202623 min
Software Engineering

Riffusion AI: Revolutionizing Music Creation

Feb 4, 20253 min
Experiments

Getting Started with PUG: History and Future

Jan 5, 20253 min
Content Strategy

OpenAI Sora: First Impressions and Impact

Dec 22, 20243 min
Experiments

Using NotebookLM, Clipchamp, and ChatGPT for Podcasts

Dec 12, 20243 min
Experiments

Adding Weather Component: A TypeScript Learning Journey

Oct 15, 20243 min
Software Development

Building My First React Site Using Vite

Oct 12, 20243 min
Software Development

Canonical URL Troubleshooting for Static Web Apps

Oct 10, 20242 min
Content Strategy

Developing MarkHazleton.com: Tools and Approach

Oct 10, 20243 min
Content Strategy

Syntax Highlighting with Prism.js for XML, PUG, YAML, and C#

Sep 29, 20244 min
Content Strategy

Automate GitHub Profile with Latest Blog Posts

Sep 25, 20243 min
Content Strategy

Migrating to MarkHazleton.com: A Comprehensive Guide

Sep 16, 20244 min
Content Strategy

Taking FastEndpoints for a Test Drive

Apr 7, 20243 min
Experiments

Embracing Azure Static Web Apps for Static Site Hosting

Mar 10, 20243 min
Content Strategy

Exploring Microsoft Copilot Studio

Nov 16, 20233 min
Experiments

Mastering Blog Management Tools

Aug 25, 20233 min
Content Strategy

Concurrent Processing in C#

Aug 17, 202313 min
Software Development