1. Comparing APIs in go, rust, node and dotnet core

    Comparing how a basic API in node, go and dotnet might look, and what the experience and performance is like in each.…


  2. Microservice communication methods

    Communication between microservices allows us to build complex behaviours out of simple components. Most people tend to think of webservices when thinking of microservices however there are a number of other communication methods which are applicable in different situations.…


  3. Migrating my blog to Jekyll and GitHub Pages

    How I moved my blog to Jekyll and Github pages and the lessons I learnt along the way.…


  4. Microservice versioning; How to make breaking changes without breaking stuff

    Versioning is a tool which allows microservices to gain independence from each other while being able to grow and change. Its critical that when we make changes to a microservice we can do so in a way that we are confident will not break our consumers.…


  5. Library vs microservice

    Microservices and libraries both have benefits in terms of providing reusable components. This article looks at the differences between microservices and libraries and looks at why you might choose one over another.…


  6. How to Microservice

    Microservices are a SOA architecture which focuses on breaking a system down into smaller independent systems. I have been working with them for a while and in this series I will look at some of the things I have learnt about how to microservice.…


  7. The Authentication Proxy

    When we break down systems duplication and boiler plate drastically increases complexity. Authentication is one area where complexity can be introduced across all of our services at once. In this post I look at a pattern to decouple authentication from your system and allow a richer authentication experience without introducing complexity to every API in the system.…


  8. Composable Repositories - Nesting Extensions

    A look at several problems with nesting extension methods in LINQ and how to get around these issues with and expression visitor.…


  9. UI tests for OAuth applications are hard

    A look at the issues I faced writing UI tests for dotdev and why I built NoAuth to make testing easier…


  10. Manual decisions are the the enemy of consistency

    On why continuous deployment is better than continuous delivery…