2024


.NET Event Driven Microservice (Part 3) - Architecture Overview

Posted on Friday, 26 April 2024

.NET Event Driven Microservice (Part 2) - Event Sourcing

Posted on Monday, 22 April 2024

.NET Event Driven Microservice (Part 1) - Transactional outbox pattern

Posted on Friday, 12 April 2024

Creating a CLI tool with dotnet & Spectre.Console.Cli

Posted on Sunday, 17 March 2024

Azure Pipelines with Stage Templates

Posted on Saturday, 17 February 2024

Testing powershell scripts with Pester

Posted on Saturday, 17 February 2024

Exploring Software Development Techniques & Methodologies

Posted on Friday, 9 February 2024

5 steps for publishing a dotnet tool to nuget.org

Posted on Monday, 5 February 2024

HTTP Files

Posted on Tuesday, 30 January 2024

Green software for practitioners (LFC131)

Posted on Saturday, 13 January 2024

2023


Running tests in parallel with xunit

Posted on Saturday, 30 December 2023

Advent of Code with ChatGPT

Posted on Monday, 4 December 2023

A comparison of fake data generators Bogus vs AutoFixture

Posted on Sunday, 8 October 2023

Getting started with NBomber

Posted on Sunday, 3 September 2023

How I passed the Certified Kubernetes Application Developer (CKAD) exam

Posted on Saturday, 29 July 2023

Kubernetes ingress and egress rules

Posted on Wednesday, 12 July 2023

Kubernetes resource requirements limits and quotas

Posted on Sunday, 25 June 2023

Kubernetes service accounts

Posted on Saturday, 24 June 2023

Kubernetes configmaps

Posted on Monday, 19 June 2023

Kubernetes secrets

Posted on Sunday, 18 June 2023

Kubernetes logging and monitoring

Posted on Saturday, 17 June 2023

Kubernetes rolling updates

Posted on Monday, 12 June 2023

Kubernetes probes and health checks

Posted on Sunday, 11 June 2023

5 steps for publishing an image to docker hub

Posted on Friday, 9 June 2023

Dotnet Health Checks

Posted on Thursday, 8 June 2023

Kubernetes persistent and ephemeral volumes

Posted on Saturday, 3 June 2023

Kubernetes Jobs and CronJobs

Posted on Friday, 2 June 2023

Boost your kubectl productivity with these 10 kubectl commands.

Posted on Sunday, 7 May 2023

Kubernetes init container

Posted on Saturday, 6 May 2023

Kubernetes sidecar container

Posted on Friday, 5 May 2023

Kubernetes Blue Green deployment

Posted on Tuesday, 4 April 2023

8 steps for creating a minimal API with docker

Posted on Thursday, 2 March 2023

6 steps for creating and running dotnet API within Minikube

Posted on Thursday, 2 March 2023

2022


Intro to BenchmarkDotNet

Posted on Thursday, 13 October 2022

Getting started with AutoFixture

Posted on Monday, 15 August 2022

Getting started with ML.NET

Posted on Thursday, 7 July 2022

Kusto query language by example

Posted on Sunday, 12 June 2022

Code coverage Visual Studio extensions

Posted on Thursday, 2 June 2022

Selenium web driver + dotnet 6 example

Posted on Sunday, 1 May 2022

Intro to .NET6 Minimal APIs

Posted on Monday, 4 April 2022

2021


Sociable unit tests with BDDfy

Posted on Wednesday, 7 July 2021

ASP.NET API string localization

Posted on Saturday, 20 February 2021

Sending an email with Send Grid

Posted on Monday, 15 February 2021

Chinese New Year 2021 (Year of the Ox)

Posted on Friday, 12 February 2021

Chinese Numerology

Posted on Friday, 5 February 2021

Food Symbolism during Chinese New Year

Posted on Tuesday, 2 February 2021

Lessons learned from 365-day streak on Duolingo

Posted on Saturday, 23 January 2021

Numbers in Chinese - part 2

Posted on Saturday, 16 January 2021

Refit examples - A type-safe HTTP client for .NET

Posted on Friday, 15 January 2021

Numbers in Chinese

Posted on Thursday, 7 January 2021

2019


Efficent api calls within an api client

Posted on Tuesday, 6 August 2019

Android Launch Screen (Splash Screen)

Posted on Monday, 1 July 2019

Cleaner mocks with Moq in .NET

Posted on Saturday, 25 May 2019

Mocking DbSet in EF6 for unit tests

Posted on Sunday, 12 May 2019

Top development books

Posted on Sunday, 12 May 2019

Android's DayNight Theme

Posted on Sunday, 5 May 2019

Encrypting application settings within app.config

Posted on Friday, 26 April 2019

Updating my website to wyam

Posted on Monday, 15 April 2019

JQuery ajax CSS spinner

Posted on Saturday, 2 February 2019

2017


Mocking with Mockito

Posted on Tuesday, 24 January 2017

2016


Random Quiz - An example Android App

Posted on Wednesday, 28 December 2016

Image resizing with python

Posted on Thursday, 10 November 2016

Website up checker with Python

Posted on Tuesday, 11 October 2016