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.

View Blogs
Polyglot Notebooks for Ops

Polyglot Notebooks for Ops

James Dawson

Polyglot Notebooks' PowerShell support enhances IT Ops with robust, repeatable processes via 'executable documentation'.
Using Cloud CI/CD in Zero Trust Environments

Using Cloud CI/CD in Zero Trust Environments

James Dawson

Performing certain deployment operations from a cloud-based CI/CD agent against resources that are only accessible via private networking are problematic. The often-cited solution is to use your own hosted agents that are also connected to the same private networks, however, this introduces additional costs and maintenance overhead. This post discusses an approach that combines the use of cloud-based CI/CD agents with 'just-in-time' allow-listing as an alternative to operating your own private agents.
How to setup Python, PyEnv & Poetry on Windows

How to setup Python, PyEnv & Poetry on Windows

James Dawson

Explore using Python virtual environments & Poetry on Windows for smoother workflows, with a script & guide to enhance your dependency management experience.
Adventures in GitHub Actions: Episode 1 - Goodbye Azure DevOps, Hello GitHub Actions

Adventures in GitHub Actions: Episode 1 - Goodbye Azure DevOps, Hello GitHub Actions

James Dawson

This series will follow our ongoing journey of migrating the CI/CD pipelines for our many Open Source repositories, from Azure DevOps to GitHub Actions.
Adventures in Dapr: Episode 5 - Debugging Containers with Visual Studio

Adventures in Dapr: Episode 5 - Debugging Containers with Visual Studio

James Dawson

Explore Dapr for cloud migration & use Visual Studio container tools to debug containerized services.
Adventures in Dapr: Episode 4 - Containerising with Visual Studio

Adventures in Dapr: Episode 4 - Containerising with Visual Studio

James Dawson

Explore Dapr for cloud migration & simplify containerized dev inner-loop using Visual Studio with the Dapr Traffic Control sample application.
Publishing Scripts to the PowerShell Gallery

Publishing Scripts to the PowerShell Gallery

James Dawson

Explore how to share a function from a PowerShell module as a standalone script, without maintaining two code versions.
Using Azure CLI Authentication within Local Containers

Using Azure CLI Authentication within Local Containers

James Dawson

Fix broken dev loop with containerized apps on Azure CLI for Windows. Learn a workaround to avoid using outdated Azure CLI versions.
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

Explore DAPR's role in migrating workloads to cloud services, focusing on integrating Azure Key Vault for secrets management.
Adventures in Dapr: Episode 1 - Azure Service Bus

Adventures in Dapr: Episode 1 - Azure Service Bus

James Dawson

Explore Dapr for migrating workloads to cloud services. Learn to enable PaaS Pub-Sub with Azure Service Bus using the Dapr Traffic Control sample app.
Adventures in Dapr: Episode 0 - Introduction

Adventures in Dapr: Episode 0 - Introduction

James Dawson

Explore Dapr's role in simplifying cloud migration using Azure services, based on the Dapr Traffic Control sample app.
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

Discover how GitOps, often used for Kubernetes management, can benefit a broader 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

Simplify dependency consumption & streamline integration with meta/virtual NuGet packages and tools like Dependabot.
Using multiple azure-cli credentials within automation

Using multiple azure-cli credentials within automation

James Dawson

Discover a technique for setting up multiple, concurrent authenticated sessions using azure-cli in this post.