Photo by David Fartek on Unsplash

If your team is not pair coding most of the of the time, then I think you are doing it wrong.

About this time last year (in the ‘beforetimes’) I took a contract that required that I would pair-program all of the time, eight hours a day, five days a week. I went into the role with a healthy dollop of scepticism, but a year on I am fully drinking the Kool-Aid. So much so that I have been inspired to pen this blog post exalting the benefits of the full-time pair programming!

Here are my favourite things about this…


“We demand rigidly defined areas of doubt and uncertainty!” — Douglas Adams

This post describes a method to rigorously test Entity Framework Core migrations, in an fast, automated and repeatable way, to build confidence when pushing a migration to a database in production.

The sample code for this solution is in Github — Any and all feedback is welcomed!

In my opinion, applying database migrations to a production environment is the highest risk part of a product update. There’s only really one shot at it, and correcting errors after the event can be extremely difficult. An error in a migration…


When I was a child, I liked building Lego models. I still do like building Lego models, but these days I also building software products. And those are a bit more tricky…

With a Lego model, all of the pieces come in small bags with numbers on them, and there are picture books describing how to snap the pieces together. The requirements are understood up front, and a vision of the end product is well formed.

It is a pity, but this is not quite the case with software projects! Greenfield software projects do not come with a cool picture…


The guru affirms that the earth is supported on the back of a tiger. When asked what supports the tiger, he says it stands upon an elephant; and when asked what supports the elephant he says it is a giant turtle. When asked, finally, what supports the giant turtle, he is briefly taken aback, but quickly replies “Ah, after that it is turtles all the way down.”

The above parable would appear to have been taken literally in certain web design fields. Which appear to be abstractions… all the way down.

I remember well the halcyon and free days, circa…


“The .NET Framework is on it’s last release — there will not be another one after 4.8”

The sun is setting on .NET Framework. From now on, .NET Core is king.

I̵t̵ ̵i̵s̵ ̵a̵l̵l̵ ̵b̵u̵t̵ ̵c̵o̵n̵f̵i̵r̵m̵e̵d̵ ̵t̵h̵a̵t̵ ̵.̵N̵E̵T̵ ̵F̵r̵a̵m̵e̵w̵o̵r̵k̵ ̵v̵4̵.̵8̵ ̵w̵i̵l̵l̵ ̵b̵e̵ ̵t̵h̵e̵ ̵f̵i̵n̵a̵l̵ ̵r̵e̵l̵e̵a̵s̵e̵,̵ ̵a̵n̵d̵ ̵t̵h̵a̵t̵ ̵a̵l̵l̵ ̵s̵u̵b̵s̵e̵q̵u̵e̵n̵t̵ ̵i̵n̵n̵o̵v̵a̵t̵i̵o̵n̵ ̵w̵i̵l̵l̵ ̵b̵e̵ ̵h̵a̵p̵p̵e̵n̵i̵n̵g̵ ̵o̵n̵ ̵.̵N̵E̵T̵ ̵C̵o̵r̵e̵.̵ ̵I̵t̵ ̵i̵s̵ ̵t̵i̵m̵e̵ ̵f̵o̵r̵ ̵u̵s̵ ̵a̵l̵l̵ ̵t̵o̵ ̵m̵a̵k̵e̵ ̵t̵h̵e̵ ̵s̵w̵i̵t̵c̵h̵.̵

I fully expect an announcement from Microsoft in the coming months to confirm that Framework v4.8 will be the final release, and that from that point onward, the bulk of the development work will…


Developing blockchain applications presents some very interesting and unique challenges, even for very experienced ‘traditional’ programmers. One aspect that I find tricky to wrap my head around is unit testing, and writing testable code. This is a real problem given how much more important it is for code to execute correctly on a blockchain. There’s no room for bugs, and so the testing is very important!

This post will address an issue that I have been working on recently, where a unit test was required to take an action, and then wait for a number of blocks to pass. I…


The first post in this series saw us do some basic environment configuration, and then some very simple operations with the Truffle suite. In this tutorial I’ll take things a little further by demonstrating a couple of interactions with the contract, and going through an example with the Truffle debugger.

Make sure that you’ve followed through the steps in part 1. At the end of that tutorial, we had shown how to deploy and test a contract, but hadn’t really done much with it yet.

Open up VS Code, and open the console again with Ctrl+’. …


Getting to grips with developing Dapps for Ethereum was a lot of fun, but it was also fairly challenging. There seems to be an endless number of tools out there, and stitching them together into a coherent development experience is not a straightforward task.

With a good amount of reading, and after following a few dead ends, I think I’ve finally managed to settle on a pretty good toolbox for developing smart contracts on a Windows environment. In this series I’m going to start by going through all of the steps required to configure a fresh Windows 10 install for…


“Edgefund fundamentally changes the online gambling landscape for game developers, opening up unparalleled liquidity at literally no risk.”

This is such a massive shift from the status quo, that it almost sounds too hard to believe. However, stick with me and I’ll explain how this works.

Fixed odds games are those casino games in which the odds always remain the same. Online slots, and indeed all virtual games with outcomes based on random number generation come with a fixed edge determined by software that generates extremely long sequences of numbers. …


Visual Studio Code is a fantastic editor for C# developers. VSCode + .NET Core has very quickly become my go to setup for many C# tasks. However, unlike ‘full’ Visual Studio, getting started with C# development in Code is a little bit more involved.

This post will assume that you are starting without even having Code installed, and finish up with a C# console application, referencing a class library. I will also demonstrate setting up a unit test project and executing a couple of simple unit tests.

I’ve put up a reference implementation in GitHub, that extends this tutorial a…

Andy Watt

Technical Lead and co-founder at Avalone Consultants. Angular, .NET, and blockchain developer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store