Blog Posts

Global Error Handling via Middleware with Go's Gin Framework

In this post we'll take a look at how we can utilise middleware to simplify error handling when using the popular Gin router for Go.

Posted on 2022-06-01 23:04:01

Automate testing of poor network conditions with Shopify's Toxiproxy in Go

You build things differently when you expect them to fail, and in a complex distributed system that communicates across networks failures should be expected. To combat this Shopify build Toxiproxy, a tool for simulating a wide range of network conditions. In this post we look at how we can leverage Toxiproxy to introduce network failures into our tests, so we can better defend against them.

Posted on 2021-12-05 00:18:01

Integration testing your Polly policies with HttpClient Interception

Posted on 2020-07-30 00:18:01

Effectively stubbing remote HTTP service dependencies with HttpClient Interception in C#

Posted on 2020-05-21 02:55:53

Consider Chesterton's Fence Principle Before Changing That Code

Posted on 2020-04-02 00:54:10

A couple of nice Tuple use cases

Posted on 2020-03-16 00:38:08

Chaos Engineering your .NET applications using Simmy

Posted on 2020-01-03 23:07:53

Managing your .NET Core SDK versions with the .NET Install SDK Global Tool

Posted on 2019-09-03 17:16:52

Approval Testing your Open API/Swagger Documents

Posted on 2019-08-28 14:45:15

You can stop mocking ILogger

Posted on 2019-06-01 09:55:30

Subcutaneous Testing in ASP.NET Core

Posted on 2019-03-14 21:41:17

The myth of the right tool for the job

Posted on 2019-01-18 01:03:05

Skipping XUnit tests based on runtime conditions

Posted on 2019-01-02 21:15:43

Aaaand, we're back...

Posted on 2018-03-08 05:12:30

GlobalExceptionHandler.NET version 2 released

Posted on 2017-12-08 05:32:47

Going serverless with .NET Core, AWS Lambda and the Serverless framework

Posted on 2017-11-08 23:37:27

REST Client for VS Code, an elegant alternative to Postman

Posted on 2017-10-18 04:23:53

Global Exception Handling in ASP.NET Core Web API

Posted on 2017-09-20 23:35:17

Turbo charging your command line with ripgrep

Posted on 2017-09-12 21:29:37

GraphiQL in ASP.NET Core

Posted on 2017-08-10 12:57:18

Injecting content into your head or body tags via dependency injection using ITagHelperComponent

Posted on 2017-07-17 01:08:03

.NET Core solution management via the command line interface

Posted on 2017-07-03 08:06:44

Tips on starting and running a .NET user group

Posted on 2017-06-22 02:53:15

Retrospective of DDD 12 in Reading

Posted on 2017-06-12 23:57:30

Another day, another fantastic DDD (DDD South West 7)

Posted on 2017-05-12 05:22:19

C# 7 ValueTuple types and their limitations

Posted on 2017-04-20 09:15:53

Setting up a local Selenium Grid using Docker and .NET Core

Posted on 2017-03-20 13:28:33

An in-depth look at the various ways of specifying the IP or host ASP.NET Core listens on

Posted on 2017-02-10 17:57:01

C# IL Viewer for Visual Studio Code using Roslyn side project

Posted on 2017-01-30 14:06:44

Year in review and looking at 2017

Posted on 2017-01-10 03:25:43

In-memory C# compilation (and .dll generation) using Roslyn

Posted on 2016-12-28 20:53:39

In-memory testing using ASP.NET Core

Posted on 2016-12-06 20:23:12

New Blog, now .NET Core, Docker and Linux powered - and soon to be open-sourced

Posted on 2016-11-26 01:30:36

Getting started with Elastic Search in Docker

Posted on 2016-11-15 00:23:53

Going cross-platform with ASP.NET Core talk at Bristech 2016

Posted on 2016-11-03 01:26:12

Building rich client side apps using Angular 2 talk at DDD 11 in Reading

Posted on 2016-09-03 01:15:54

Executing JavaScript inside of .NET Core using JavaScriptServices

Posted on 2016-09-01 23:33:24

Angular 2 CLI interview with .NET Rocks

Posted on 2016-08-23 01:11:30

Integration testing your ASP.NET Core middleware using TestServer

Posted on 2016-07-31 01:07:29

Proxying HTTP requests in ASP.NET Core using Kestrel

Posted on 2016-07-02 01:03:45

Fira Mono - An exceptional programming font, and now with (optional) ligatures

Posted on 2016-06-17 00:54:48

Select by camel case - the greatest ReSharper setting you never knew

Posted on 2016-06-06 18:20:27

Social authentication via Google in ASP.NET Core MVC

Posted on 2016-05-29 21:18:45

ASP.NET Core tag helpers - with great power comes great responsibility

Posted on 2016-05-09 21:14:06

Capturing IIS / ASP.NET traffic in Fiddler

Posted on 2016-04-25 21:12:51

Publishing your first NuGet package in 5 easy steps

Posted on 2016-04-15 21:11:25

Tips for learning on the job

Posted on 2016-03-29 21:10:33

Easy slug generation with Slugity

Posted on 2016-03-18 21:09:17

OzCode Review - The magical extension that takes the pain out of debugging

Posted on 2016-03-10 21:03:36

The Ajax response object pattern

Posted on 2016-02-21 21:01:59

Adding search to your website with Azure Search

Posted on 2016-02-10 20:57:02

Personal targets and goals for 2016

Posted on 2016-02-01 20:53:25

Angular 2 based Piano Note Training game side project

Posted on 2016-01-24 20:47:11

An often overlooked reason why you should be on Stack Overflow

Posted on 2016-01-16 20:45:40

Are you a consumer or a creator222

Posted on 2016-01-15 20:43:42

How to setup Google Analytics and event tracking in your Angular application

Posted on 2016-01-09 20:42:34

Reflecting on 2015

Posted on 2016-01-02 20:41:22

A deeper look at C# 6's nameof expression

Posted on 2015-12-29 20:39:34

Visual Studio 2015 Shortcuts interview with .NET Rocks

Posted on 2015-11-30 20:35:12

Using the Surface Pro 4 Type Cover on the Surface Pro 3

Posted on 2015-11-11 20:10:26

Podcasts for .NET Developers

Posted on 2015-11-03 20:07:56

Using Roslyn to look for code smells

Posted on 2015-10-09 20:05:23

Detecting CSS breakpoints in Javascript

Posted on 2015-09-21 20:01:07

New website, now Azure powered

Posted on 2015-02-11 02:44:39

Personal targets and goals for 2015

Posted on 2015-01-21 02:42:56

I used to use a mug for every beverage, now I use this!

Posted on 2015-01-11 02:41:10

Harnessing your IoC Container to perform application event tasks in ASP.NET MVC

Posted on 2014-12-29 02:37:25

Worth a watch: John Sonmez on creating a test automation framework using Selenium

Posted on 2014-11-24 02:32:49

Improving upon ASP.NET MVC's default display annotation convention

Posted on 2014-11-04 01:24:38

ReSharper not running your unit tests? This could be why...

Posted on 2014-10-20 01:14:07

9 ways I improved my productivity in Visual Studio 2013

Posted on 2014-10-07 01:06:45

My experiences programming on a Surface Pro 3

Posted on 2014-09-19 00:56:13

ASP.NET Naming Conventions - how to avoid calling everything a service

Posted on 2014-08-12 00:52:53

Sessions in ASP.NET MVC using Dependency Injection

Posted on 2014-06-13 00:49:08

Golden Nuget Package #1: RouteDebugger by Phil Haack

Posted on 2014-06-09 00:45:45

Creating reusable HTML components in ASP.NET MVC using Razor

Posted on 2014-05-09 00:39:12

Generics and Lambda Expressions in Javascript? With TypeScript you can!

Posted on 2014-04-30 00:32:43

Upgrading to StructureMap 3

Posted on 2014-04-19 00:30:34

Space shooter I wrote in Javascript using Typescript

Posted on 2014-04-16 00:26:45

Fixing the "your project file uses a different version of TypeScript compiler" error in Visual Studio 2013

Posted on 2014-04-04 00:23:48

Why you shouldn't suppress errors in PHP using the @ operator

Posted on 2014-03-14 01:46:59

The architecture of

Posted on 2014-02-24 00:17:36

Microsoft's latest advert reminds the world why technology (and developers) rocks

Posted on 2014-02-02 23:44:52

Mocking AutoMapper with the IMapperEngine

Posted on 2014-01-28 23:42:17

JCrop integration with CKFinder

Posted on 2014-01-23 23:28:35

How to create a virtual directory in IIS Express

Posted on 2014-01-20 23:24:14