General

All writing.

All long-form writing across Engineering, Cloud, AI, Gaming, and general subjects.

14 Jul 2026 · 7 min read

Container Networking Without the Mystery

At first glance, container networking looks like a collection of small details: localhost, 0.0.0.0, eth0, bridge networks, ports, and broadcast addresses. The details matter because each one …
cloudcontainersgood engineering
Read article →

13 Jul 2026 · 9 min read

Building Your Personal AI Software Factory

Hermes Agent on Windows: Building Your Personal AI Software Factory Abstract Most AI assistants answer questions. Hermes Agent goes much further—it remembers, learns, automates, connects to …
aihermes agentsoftware factory
Read article →

08 Jul 2026 · 6 min read

A practical guide to .http files

A Practical Guide to .http Files - Ditch Postman, Keep Your API Calls in Source Control If you’ve spent any time bouncing between a browser tab, Postman, and your terminal just to test …
engineering.httpgood engineering
Read article →

07 Jul 2026 · 5 min read

Making .env Secure

Stop shipping plaintext secrets. Encrypt your .env, commit it safely, and let one key unlock it at runtime. As developers, we’ve largely accepted .env files as the standard way to …
engineering.envgood engineering
Read article →

18 Apr 2025 · 4 min read

Prompts

In this article, you’ll learn how prompt files and repository instructions shape GitHub Copilot interactions without replacing review and verification. That matters because useful AI …
aipromptsprompt engineering
Read article →

17 Apr 2025 · 2 min read

Building a Remote MCP Server

In this article, you’ll learn where the remote MCP example lives, how remote transport changes the threat model, and what to verify first. That matters because centralising a …
aimodel-context-protocolremote-servers
Read article →

17 Apr 2025 · 2 min read

Building a Local MCP Server

In this article, you’ll learn where the local MCP example lives, how standard input/output transport works, and what trust decisions remain with the user. That matters because a local …
aimodel-context-protocollocal-development
Read article →

06 Jul 2024 · 7 min read

What is the Inner Loop?

In this article, you’ll learn what the engineering inner loop contains, how to measure it, and where to shorten feedback without lowering standards. That matters because durable …
engineeringcicontinuous integration
Read article →

26 Feb 2024 · 3 min read

Shortcode - An image with a caption

In this article, you’ll learn how to implement an accessible Hugo figure shortcode with a real caption and predictable resource handling. That matters because durable engineering comes …
engineeringshortcodecaption
Read article →

25 Feb 2024 · 7 min read

.NET Aspire and Redis

In this article, you’ll learn how .NET Aspire models a Redis dependency, wires it into an application, and improves local orchestration. That matters because durable engineering comes …
engineering.net aspireazd
Read article →

05 Feb 2024 · 10 min read

The 3rd Wave of Cloud Computing

In this article, you’ll learn what WebAssembly and WASI add to server-side compute, where the component model helps, and which claims remain speculative. That distinction matters …
cloudwasmwasi
Read article →

04 Feb 2024 · 2 min read

Compare Resources from a Terraform Plan

In this article, you’ll learn how to inspect Terraform plan changes using the supported JSON representation instead of scraping human-readable output. That matters because a plan is a …
cloudterraformpowershell
Read article →

28 Sep 2022 · 2 min read

Diagnosing NETSDK1045

In this article, you’ll learn how to diagnose NETSDK1045 by distinguishing an installed SDK from the SDK selected by the build. That matters because installing another SDK only helps …
engineeringdotnetsdk
Read article →

26 Sep 2022 · 2 min read

How to Write Clipboard to File

In this article, you’ll learn how to write clipboard content to disk in PowerShell with explicit encoding and predictable paths. That matters because durable engineering comes from …
engineeringclipboardpowershell
Read article →

21 Sep 2022 · 4 min read

How to Conditionally Include a Nuget Package

In this article, you’ll learn how MSBuild conditions can select platform-specific NuGet assets without creating divergent project files. That matters because durable engineering comes …
engineeringazurefunctionsapp
Read article →

04 Feb 2022 · 6 min read

.NET Stack, Heap and Boxing

In this article, you’ll learn how .NET stores values, when boxing allocates, and why stack-versus-heap slogans are only approximations. That matters because durable engineering comes …
engineeringcsharp.net
Read article →

30 Jan 2022 · 7 min read

The Grass Is Rarely Greener

In this article, you’ll learn how to evaluate a cloud migration by capabilities, constraints, and operating model rather than by vendor promises. That matters because durable …
engineeringazureaws
Read article →

27 Jan 2022 · 3 min read

MCP and OpenAPI: Similar Shape, Different Job

In this article, you’ll learn what the Model Context Protocol (MCP) standardises, how it differs from OpenAPI, and why agent-to-agent communication is a separate concern. That matters …
aimodel-context-protocolopenapi
Read article →

22 Jan 2022 · 3 min read

Nodejs Install E401

In this article, you’ll learn how to trace npm E401 errors across credentials, registry selection, and Azure Artifacts upstream behavior. That matters because durable engineering comes …
engineeringnodejse401
Read article →

18 Jan 2022 · 3 min read

Adding more GitHub Self-Hosted Runners

In this article, you’ll learn how to add self-hosted runner capacity safely and why ephemeral runners are usually easier to trust than cloned machines. That matters because durable …
engineeringgithub self-hosted runnerlinux
Read article →

15 Jan 2022 · 3 min read

Hybrid Origins Http Traffic

In this article, you’ll learn how DNS, redirects, reverse proxies, and origin routing differ when one hostname spans several platforms. That matters because durable engineering comes …
engineeringcloudflaredns
Read article →

15 Jan 2022 · 3 min read

K8s Selectors and Labels

In this article, you’ll learn how Kubernetes labels and selectors bind controllers to Pods, and why an accidental mismatch is operationally serious. That distinction matters because …
cloudkubernetesk8s
Read article →

15 Jan 2022 · 4 min read

Azure Defender for Cloud

In this article, you’ll learn how Microsoft Defender for Cloud evaluates container workloads and where its recommendations fit in a delivery pipeline. That distinction matters because …
cloudazuredefender for cloud
Read article →

11 Jan 2022 · 4 min read

Npm E401 and CERT_NOT_YET_VALID

In this article, you’ll learn how to distinguish an npm authentication failure from a TLS validity failure caused by clocks, certificates, or proxies. That matters because durable …
engineeringgithub actionsnpm
Read article →

09 Jan 2022 · 4 min read

GitHub Action Workflow Starter

In this article, you’ll learn how workflow templates and reusable workflows standardize delivery without hiding important repository differences. That matters because durable …
engineeringgithub action workflowstarter
Read article →

08 Jan 2022 · 4 min read

GitHub Actions Workflow Env Vars

In this article, you’ll learn how GitHub Actions evaluates contexts, configuration variables, secrets, and runner environment variables at different times. That matters because durable …
engineeringgithub actionslinux
Read article →

08 Jan 2022 · 6 min read

Runtimes

In this article, you’ll learn how runtime support, target frameworks, container bases, and deployment models affect operational risk. That matters because durable engineering comes …
engineering.net framework.net core
Read article →

06 Nov 2020 · 3 min read

My First Outing With Dapr

In this article, you’ll learn what Dapr contributes to a Kubernetes application and where its building blocks stop short of replacing application design. That distinction matters …
clouddaprkubernetes
Read article →

02 Nov 2020 · 5 min read

How to Use Kubernetes ConfigMap

In this article, you’ll learn how to create ConfigMaps, consume them from Pods, and keep confidential values in an appropriate secret system. That distinction matters because cloud …
cloudkubernetesconfigmap
Read article →

21 Sep 2020 · 3 min read

Nodejs Container Restart Policy

In this article, you’ll learn how process failure, container restart policies, and orchestration each cover a different part of Node.js resilience. That distinction matters because …
cloudnodejscluster
Read article →

23 Jul 2020 · 3 min read

Terraform Get Values

In this article, you’ll learn how Terraform expressions expose values directly and why text-oriented workarounds are brittle. That distinction matters because cloud failures usually …
cloudterraform
Read article →

08 Jun 2020 · 9 min read

Digital Certificates

A practical guide to the boundaries between encoding, hashing, encryption, signing and certificates, with modern OpenSSL examples and an accurate explanation of JWT verification.
engineeringsecuritycryptography
Read article →

28 May 2020 · 3 min read

Unit testing and mocking fs.ReadFileSync

In this article, you’ll learn how to isolate filesystem access in Jest tests without turning mocks into an inaccurate model of Node.js. That matters because durable engineering comes …
engineeringjestunit testing
Read article →

06 Apr 2020 · 2 min read

Hugo Shortcodes - my first try

In this article, you’ll learn how Hugo shortcodes package reusable presentation without embedding repeated HTML in Markdown. That matters because durable engineering comes from …
engineeringhugoshortcodes
Read article →

06 Apr 2020 · 8 min read

Kubernetes on Windows

In this article, you’ll learn how to build a local Kubernetes learning environment on Windows and understand each moving part rather than memorising commands. That distinction matters …
cloudkubernetessetup
Read article →

05 Apr 2020 · 5 min read

Modern-ish JavaScript

In this article, you’ll learn how modern JavaScript syntax changes the shape of code, and which examples need context in a post-ES2015 world. That matters because durable engineering …
engineeringjavascriptdestructuring
Read article →

26 Mar 2020 · 8 min read

How do I mentor?

In this article, you’ll learn how to mentor without taking the keyboard or the thinking away from the person you are helping. That matters because durable engineering comes from …
engineeringhugomentoring
Read article →

01 Mar 2020 · 24 min read

Good Engineering - Principles

In this article, you’ll learn how to apply familiar engineering principles as context-sensitive reasoning tools rather than rigid commandments. That matters because durable engineering …
engineeringhugogood engineering
Read article →