Blog

Articles on cloud architecture, DevOps, security, and software engineering from the field.

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.

Learn more →

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.

Learn more →

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?

Learn more →

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

Learn more →

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.

Learn more →

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.

Learn more →

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.

Learn more →

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.

Learn more →

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.

Learn more →

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.

Learn more →

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.

Learn more →

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.

Learn more →

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.

Learn more →

Gulp task chaining for SPFx projects

When swapping between debugging using a workbench and deploying to a SharePoint developer tenant, we need to toggle the --ship flags. Also, we need to chain the Gulp commands. Just running gulp package-solution --ship does not perform the entire chain.

Learn more →

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.

Learn more →

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.

Learn more →

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.

Learn more →

Creating Services with Logic Apps and Azure API Management

As we provide server-to-server APIs and expose business logic and data to partners and developers, we end up with a large amount of services on different systems, platforms, endpoints and domains. It can be challenging to keep order and structure to all these services. Azure API Management provides a solution to that problem.

Learn more →

Plug-in: Ensure Single Event Handler in jQuery

As an update to "Ensuring single instance of event handlers", I wrote a plug-in to handle this as well. The point is, you could use off and on -but what if there are several handlers? You will risk overwriting other events on the item.

Learn more →