Blog Posts
Providing context to cancellations in Go 1.20 with the new context WithCause API
A new addition to the context package in Go 1.20 is the ability to provide the cause of a context's cancellation. In this post we'll take a look at this new API and how to use it.
Posted on 2023-01-04 23:04:01
Playing With Slog, the Proposed Structured Logging Package for the Go Standard Library
Currently going through Go's proposal process, the slog package aims to introduce structured logging as a first-class citizen within the Go standard library. In this post we take a look at the proposal, the package and what it does.
Posted on 2022-11-24 23:04:01
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 StackOverflow.com
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