Skip to content
James Dawson - Principal I

James is the personification of DevSecOps; part developer, with a long history of security, infrastructure and operations.

Meet James

James is an experienced consultant with a 20+ year history of working across such wide-ranging fields as infrastructure platform design, internet security, application lifecycle management and DevOps consulting - both technical and in a coaching capacity. He enjoys solving problems, particularly those that reduce friction for others or otherwise makes them more effective.

Adventures in Dapr: Episode 4 - Containerising with Visual Studio

Adventures in Dapr: Episode 4 - Containerising with Visual Studio

James Dawson

If you're interested in the Distributed Application Runtime (Dapr) and how it can simplify migrating existing workloads to use cloud platform services, then this series might be for you. In this post, we continue working with the excellent Dapr Traffic Control sample application to adopt a containerised dev inner-loop using Visual Studio.
Publishing Scripts to the PowerShell Gallery

Publishing Scripts to the PowerShell Gallery

James Dawson

Publishing individual scripts to the PowerShell Gallery can be an effective way to share pervasive functionality without the overhead of maintaining a full-blown PowerShell module. In this post we'll look at how we can take a function that is already published as part of a module and also make it available as a standalone script, without having to maintain two versions of the code.
Using Azure CLI Authentication within Local Containers

Using Azure CLI Authentication within Local Containers

James Dawson

Have the recent changes to Azure CLI on Windows broken your dev inner loop when working with containerised applications that need access to Azure resources? If so, this post provides a workaround that will unblock you without having to be stuck on an old version of the Azure CLI.
Adventures in Dapr: Episode 3 - Azure Storage Queues

Adventures in Dapr: Episode 3 - Azure Storage Queues

James Dawson

If you're interested in the Distributed Application Runtime (Dapr) and how it can simplify migrating existing workloads to use cloud platform services, then this series might be for you. In this post, we continue modifying the excellent Dapr Traffic Control sample application by swapping the MQTT-based messaging with Azure Storage Queues. We will also look at how you can use the Dapr programming model as an alternative to cloud-provider SDKs.
Adventures in Dapr: Episode 2 - Azure Key Vault

Adventures in Dapr: Episode 2 - Azure Key Vault

James Dawson

If you're interested in the Distributed Application Runtime (Dapr) and how it can simplify migrating existing workloads to use cloud platform services, then this series might be for you. In this post, we continue modifying the excellent Dapr Traffic Control sample application by adding Azure Key Vault integration for its secrets management.
Adventures in Dapr: Episode 1 - Azure Service Bus

Adventures in Dapr: Episode 1 - Azure Service Bus

James Dawson

If you're interested in the Distributed Application Runtime (Dapr) and how it can simplify migrating existing workloads to use cloud platform services, then this series might be for you. In this post, taking the excellent Dapr Traffic Control sample application as our starting point, we look at enabling PaaS Pub-Sub using Azure Service Bus.
Adventures in Dapr: Episode 0 - Introduction

Adventures in Dapr: Episode 0 - Introduction

James Dawson

If you're interested in the Distributed Application Runtime (Dapr) and how it can simplify migrating existing workloads to use cloud platform services, then this series might be for you. Taking the excellent Dapr Traffic Control sample application as our starting point, we will iteratively migrate components to use Azure cloud platform services.
Does your GitHub Repo need 'Code Operations'?

Does your GitHub Repo need 'Code Operations'?

James Dawson

CodeOps enables you to layer standards, automation, and governance to your source control repositories, decreasing manual effort and increasing productivity.
GitOps: Not Just For Kubernetes!

GitOps: Not Just For Kubernetes!

James Dawson

GitOps (sometimes known as 'operations by pull request') is most often discussed as being an approach for managing your Kubernetes platform, but in this post I will make the case for how it can benefit a much wider audience.
DevOps: Build Bridges not Silver Bullets

DevOps: Build Bridges not Silver Bullets

James Dawson

Building a system that solves even just 10% of a problem is a worthwhile endeavour, not just because of the value the 10% delivers but because its mere existence will lower the barrier-to-entry for your colleagues to collaboratively iterate on it - not so much 'Build it and they will come' as 'Build a road and they will come'
Streamline .NET Dependency Management with NuGet Meta Packages

Streamline .NET Dependency Management with NuGet Meta Packages

James Dawson

Creating meta/virtual NuGet packages to encapsulate frequently used collections of dependencies can be an effective way to both simplify their consumption as well as streamline the process of integrating and testing new versions using tools like Dependabot.
Using multiple azure-cli credentials within automation

Using multiple azure-cli credentials within automation

James Dawson

Have you ever needed an automated process to use alternative credentials for a subset of tasks? This post will demonstrate a technique that allows you setup multiple, concurrent authenticated sessions when using the azure-cli and switch freely between them.