2022  1

April  1

An NGINX and DNS based outage

April 23, 2022 · 3 min

2021  6

November  2

The Operator Pattern in Nomad

November 22, 2021 · 9 min

How do you tag docker images?

November 10, 2021 · 6 min

June  1

The Problem with CPUs and Kubernetes

June 2, 2021 · 2 min

May  1

Adding Observability to Vault

May 27, 2021 · 7 min

March  2

Getting NodeJS OpenTelemetry data into NewRelic

March 12, 2021 · 2 min

Observability with Infrastructure as Code

March 1, 2021 · 4 min

2020  7

November  2

Forking Multi Container Docker Builds

November 3, 2020 · 3 min

Isolated Docker Multistage Images

November 1, 2020 · 3 min

August  1

Better BASHing Through Technology

August 28, 2020 · 5 min

May  2

Sharing Docker Layers Between Build Agents

May 14, 2020 · 4 min

Service Mesh with Consul Connect (and Nomad)

May 4, 2020 · 6 min

March  1

Observability Without Honeycomb

March 15, 2020 · 7 min

February  1

Nomad Isolated Exec

February 29, 2020 · 4 min

2019  17

December  2

Consul DNS Fowarding in Alpine, revisited

December 30, 2019 · 4 min

Libvirt Hostname Resolution

December 22, 2019 · 3 min

November  1

Nomad Good, Kubernetes Bad

November 21, 2019 · 6 min

October  1

Creating a Vault instance with a TLS Consul Cluster

October 6, 2019 · 3 min

September  2

Consul DNS Fowarding in Ubuntu, revisited

September 24, 2019 · 7 min

Creating a TLS enabled Consul cluster

September 14, 2019 · 6 min

August  1

Using Vault as a Development CA

August 25, 2019 · 4 min

June  4

Architecture Decision Records

June 29, 2019 · 8 min

Canary Routing with Traefik in Nomad

June 23, 2019 · 8 min

Feature Toggles: Reducing Coupling

June 11, 2019 · 6 min

Feature Toggles: Branch by Abstraction

June 3, 2019 · 4 min

May  2

Configuring Consul DNS Forwarding in Alpine Linux

May 31, 2019 · 4 min

Configuring Consul DNS Forwarding in Ubuntu 16.04

May 29, 2019 · 4 min

April  1

Running a Secure RabbitMQ Cluster in Nomad

April 6, 2019 · 9 min

March  1

Hyper-V, Docker, and Networking Drama

March 22, 2019 · 3 min

January  2

RabbitMQ clustering with Consul in Nomad

January 28, 2019 · 9 min

Testing Immutable Infrastructure

January 1, 2019 · 17 min

2018  17

December  3

Code-free tracing with LogStash and Jaeger

December 22, 2018 · 12 min

Against SemVer

December 16, 2018 · 3 min

Stopping Caring…

December 8, 2018 · 3 min

October  1

Microservices or Components

October 28, 2018 · 6 min

September  3

SketchNotes: Finding Your Service Boundaries

September 10, 2018 · 1 min

Semantic Configuration Validation: Earlier

September 8, 2018 · 3 min

Feature Toggles with Consul

September 6, 2018 · 4 min

August  3

Validate Your Configuration

August 26, 2018 · 3 min

Branching and Red Builds

August 10, 2018 · 3 min

Managing AppSettings in Consul

August 7, 2018 · 4 min

June  4

Locking Vault Down with Policies

June 23, 2018 · 4 min

Secure Communication with Vault

June 22, 2018 · 5 min

Fixing Docker volume paths on Git Bash on Windows

June 18, 2018 · 2 min

Managing Postgres Connection Strings with Vault

June 17, 2018 · 6 min

May  1

Writing Conference Talks

May 15, 2018 · 3 min

February  2

Test Expressiveness

February 26, 2018 · 2 min

Task Chaining and the Pipeline Operator

February 20, 2018 · 3 min

2017  21

December  1

Tweaking Processes to Remove Errors

December 9, 2017 · 3 min

November  2

Evolutionary Development

November 17, 2017 · 4 min

Strong Configuration Composition

November 9, 2017 · 5 min

October  5

Alarm Fatigue

October 30, 2017 · 3 min

Vagrant in the world of Docker

October 22, 2017 · 4 min

Testing RabbitMQ Concurrency in MassTransit

October 11, 2017 · 4 min

Composite Decorators with StructureMap

October 4, 2017 · 3 min

Integration Testing with Dotnet Core, Docker and RabbitMQ

October 2, 2017 · 4 min

September  3

Implementing Custom Aspnet Core ModelBinders

September 22, 2017 · 5 min

Testing Containers or Test Behaviour, Not Implementation

September 17, 2017 · 2 min

Repositories Revisited (and why CQRS is better)

September 9, 2017 · 2 min

July  3

Serilog LogContext with StructureMap and SimpleInjector

July 28, 2017 · 4 min

Getting Things Done

July 15, 2017 · 4 min

Terraform, Kinesis Streams, Lambda and IAM problems

July 12, 2017 · 2 min

April  2

S3 Multi-File upload with Terraform

April 23, 2017 · 3 min

Don’t write Frameworks, write Libraries

April 16, 2017 · 3 min

March  1

Using Terraform to setup AWS API-Gateway and Lambda

March 17, 2017 · 4 min

January  4

Unit Tests & Scratchpads

January 21, 2017 · 2 min

Update all Docker images

January 16, 2017 · 1 min

MediatR and Magic

January 7, 2017 · 3 min

Git Aliases

January 6, 2017 · 2 min

2016  7

December  1

Strong Type All The Configurations

December 6, 2016 · 5 min

October  1

Shouldly: Why would you assert any other way?

October 9, 2016 · 4 min

September  1

Visualising NuGet Dependencies

September 12, 2016 · 3 min

July  1

Preventing MicroService Boilerplate

July 17, 2016 · 4 min

June  1

Database Integrations for MicroServices

June 9, 2016 · 3 min

March  2

CQS with Mediatr

March 19, 2016 · 3 min

RabbitMQ integration tests in XUnit

March 18, 2016 · 2 min

2015  8

November  1

Generating AssemblyInfo files with Gulp

November 19, 2015 · 2 min

September  3

Posting PlainText to Asp WebApi

September 21, 2015 · 2 min

Running pre-compiled microservices in Docker with Mono

September 15, 2015 · 2 min

Running microservices in Docker with Mono

September 5, 2015 · 2 min

August  1

A single project Windows Service and Console

August 30, 2015 · 3 min

April  1

Don’t Let The Database Dictate Your Design

April 1, 2015 · 5 min

March  2

The problems with and solutions to Repositories

March 28, 2015 · 3 min

Communicating Intent in APIs

March 25, 2015 · 2 min

2014  16

December  1

Encapsulation in Warcraft Addons - Inheritance

December 5, 2014 · 6 min

November  2

Encapsulation in Warcraft Addons - Closures

November 28, 2014 · 4 min

Good Design in Warcraft Addons/Lua

November 23, 2014 · 7 min

August  1

Edge.js for Embedded Webuis

August 4, 2014 · 3 min

July  2

Configuring Dapper to work with custom types

July 22, 2014 · 4 min

Strong Type your entity IDs.

July 17, 2014 · 5 min

June  1

Specific Interfaces

June 8, 2014 · 3 min

May  2

Using StructureMap Registries for better separation

May 19, 2014 · 3 min

Writing Rich Domain Models

May 4, 2014 · 5 min

March  3

Using a Micro ORM to decouple your DB Access

March 29, 2014 · 5 min

SOLID Principles - DIP

March 15, 2014 · 3 min

SOLID Principles - ISP

March 1, 2014 · 4 min

February  4

SOLID Principles - LSP

February 23, 2014 · 4 min

SOLID Principles - OCP

February 19, 2014 · 6 min

SOLID Principles - SRP

February 18, 2014 · 5 min

Specialising a General Application

February 2, 2014 · 2 min

2013  2

November  1

Analysis of Frames in World of Warcraft

November 17, 2013 · 4 min

August  1

Creating a FubuMvc website

August 26, 2013 · 1 min

2012  8

November  1

Checking a Type for an Attribute

November 2, 2012 · 1 min

October  2

SqlDataReader.HasRows Problems

October 30, 2012 · 2 min

Winforms Design Time support: exposing sub designers

October 29, 2012 · 2 min

April  1

Designing the EventDistributor

April 23, 2012 · 7 min

March  1

Model View Presenters: Composite Views

March 29, 2012 · 3 min

January  3

Model View Presenters: View to Presenter Communication

January 31, 2012 · 3 min

Model View Presenters: Introduction

January 26, 2012 · 1 min

Model View Presenters: Presenter to View Communication

January 26, 2012 · 2 min

2011  7

October  2

Working with XmlTextWriter

October 25, 2011 · 2 min

Noticing Changes

October 22, 2011 · 1 min

September  1

C# and Vb.Net Differences

September 14, 2011 · 2 min

August  1

c# Enum casting

August 9, 2011 · 2 min

July  1

Differences between Properties and Auto Properties

July 11, 2011 · 1 min

March  1

(Miss)Use of Narrowing-Implicit Operators

March 17, 2011 · 2 min

February  1

Expression Rules, Version 2

February 9, 2011 · 2 min

2010  7

November  1

Adding MSpec to your Git Bash

November 13, 2010 · 1 min

October  1

Databinding to a DataGridView - The order of columns

October 20, 2010 · 2 min

September  2

Actually, I’ll mutate if you don’t mind

September 10, 2010 · 2 min

To mutate or not to mutate

September 8, 2010 · 2 min

August  1

Using Visual Studio’s Regex Find and Replace

August 31, 2010 · 3 min

March  1

Multilining If statements conditions should be banned. now.

March 24, 2010 · 2 min

January  1

Converting from NUnit to MSTest

January 12, 2010 · 3 min

2009  17

December  2

Thanks Google for solving my problem!

December 16, 2009 · 1 min

Functionality and Seperation of Concerns

December 15, 2009 · 3 min

October  2

Software Fuzzying maybe?

October 7, 2009 · 2 min

Region Hate

October 6, 2009 · 2 min

July  3

Fluency at a cost?

July 29, 2009 · 2 min

Key Bindings

July 17, 2009 · 2 min

CI: Thoughts on CC.Net and Hudson

July 14, 2009 · 2 min

June  5

Overuse of the Var keyword

June 29, 2009 · 2 min

Coming From Something as opposed to Going To Something

June 19, 2009 · 2 min

Fluent Validation

June 12, 2009 · 2 min

The Reading List

June 5, 2009 · 2 min

Converting Code

June 1, 2009 · 2 min

May  5

Microcontrollers for MenuItems

May 29, 2009 · 5 min

Generics to the rescue! Again!

May 22, 2009 · 2 min

Using Laziness

May 19, 2009 · 1 min

Finally, I have used a Model View Controller!

May 18, 2009 · 2 min

SQL Like statement

May 15, 2009 · 1 min

2008  5

April  3

Conflicting Unrelated Options: Alps Trackpad vs Microsoft Mouse

April 17, 2008 · 2 min

Creating Non resizable controls

April 13, 2008 · 2 min

Vaio Event Service and Vista

April 8, 2008 · 2 min

March  2

Flow Layout Panel and Scroll Wheel Problem

March 29, 2008 · 1 min

VB.NET & C# Fixed height User Controls

March 29, 2008 · 2 min