Skip to main content
Writing

Notes on building things that last.

Essays on architecture, secure engineering, and doing honest work in regulated industries, including how, and how openly, we use AI.

★ Featured
07 Jun 2026Engineering▶ Listen · ~10 min

Building to Be Forgotten

For building software you are happy to walk away from. For making yourself, deliberately and as a matter of craft, dispensable.

Read the essay
03 Aug 2026
AIAI-assisted

Controls Your Agent Cannot Rewrite

Three kinds of control shape what an agent can do, and they are not equally strong. One is advice the model may ignore, one is enforced by the tool, and one is enforced somewhere the agent cannot reach. Knowing which you have written is the whole game.

12 min
03 Jul 2026
AI▶ ~11 minAI-assisted

AI Security, Made Simple: Defence in Depth for Agents

Treat an AI agent like an eager developer: capable, fast, well-meaning, and guaranteed to occasionally overreach. Give it its own machine, its own accounts, and the least privilege it needs.

11 min
08 Jun 2026
AI▶ ~5 minAI-assisted

Transparent Use of AI

Using AI is not cheating. Using it and pretending you did not is. A practical scale for being honest about what the tool did.

5 min
18 Apr 2026
Security▶ ~9 minAI-assisted

The Panic Dividend of AI Security

Mythos did not create a new cybersecurity risk. It exposed one that has been building for years. Be sceptical of anyone now selling you a solution to the panic.

9 min
20 Mar 2026
DevSecOps

Software Delivery for a Changing System

A practical guide to separating developer concerns, CI, Continuous Delivery, and Deployment, how release manifests work as a master SBOM, and why domain-driven library design holds it all together.

10 min
25 Nov 2025
DevSecOps

Securing Your JavaScript Dependencies: What Every Organisation Needs to Know

In November 2025, attackers compromised popular npm packages. The attack didn't exploit a bug. It exploited trust. What happened, why traditional defences fall short, and what you can do.

9 min
27 Jul 2025
DevSecOps

Enterprise Security Tools Without Breaking The Bank

When building a new security tool, we faced a problem. How do you convince security-conscious users to install software that requires system-level permissions?

7 min
30 Dec 2023
Strategy

Transforming Developer Experience: Attracting and Keeping Talent

I read and discussed the Shift Magazine article "Developers experience burnout, but 70% of them code on weekends" over the holidays. Contrary to popular belief, it is not the complexities of coding that most frequently overwhelm developers; rather, it is the administrative and organisational challen

4 min
20 Oct 2022
Development

Liquid Transformations with Live Preview

Using the Live Preview console application, we can set a file watcher that automatically renders the output as any changes occur to the source data or Liquid template.

2 min
18 Oct 2022
Development

Unit Tests for Liquid Templates

We can ensure that Liquid templates produce the correct result using a programmatic unit test. I have created an open source library that give Liquid unit test support.

5 min
17 Oct 2022
Development

Data Transformations in Azure with Liquid

As data or file contents need to be mapped from a source to target format, we can use Azure services to process and map the data. This post is the first in a series about the Liquid language.

4 min
02 May 2022
Business

From Independent Contractor to Family Consultancy Company

I am now proudly welcoming Rachel to the team, who will join as Marketing Manager. She will leverage her expertise and vast experience for our new Digital Marketing Services and manage our partnerships.

1 min
26 Mar 2022
DevSecOps

Deploying Logic App Standard Workflows

Standard mode Logic Apps behave quite differently when deploying resources. It took much research to find a stable way to deploy workflows and, especially, workflow connections. Here is a walkthrough of the deployment steps.

10 min
07 Mar 2022
Cloud

Azure Hybrid Cloud Design: VPN vs ServiceBus

Most companies have systems on on-premises servers that need to interact with the cloud components. Let's look at some options and their design implications.

5 min
26 Feb 2022
Security

Securing Secrets in Application Settings using .NET

Storing secrets inside configuration files is bad practice. In this example, we encrypt these values using the server machine key.

2 min
11 Feb 2022
Business

Digital Nomads: Pandemic and work/life balance

As a consultant, I have spent most of my time over the last 10 years on the road. However, the COVID pandemic changed my work situation overnight. Maybe my travel routine was wrong all these years? Maybe the digital nomad lifestyle could be the norm for a larger part of the year.

5 min
20 Feb 2021
DevSecOps

From Proof-of-Concept to Controlled Deployment of Azure Resources using Pulumi

Previously, we looked into deploying Azure resources uing infrastructure-as-code using Pulumi. In this post, I am walking you through creating the C# (or TypeScript etc) code from manual prototyping and proof-of-concept deployments in Azure to making them using Pulumi.

3 min
14 Feb 2021
DevSecOps

Automating Deployments using Infrastructure as Code with Pulumi

To handle Infrastructure-as-Code workflows, I use a product called Pulumi. It is built on top of the open-source platform Terraform. Pulumi handles versioning and recreation of cloud resources, handles state and shows a preview of what changes will occur.

6 min
13 Feb 2021
Development

Grouping XML Data using Altova and Logic Apps

Example using Altova MapForce to generate an XLST 2.0 mapping function and deploying this into an Azure logic app for use in an integration service.

4 min
19 Nov 2020
Development

Transform XML using Altova MapForce in Azure Logic Apps

Azure Logic apps has powerful capabilities when joined with an integration account. This allows us to do advanced data mapping transformations. In this example, I will use Altova MapForce to design the mapping between the two file formats.

3 min