I have over 5 years commercial software development experience spanning multiple industries and technologies. I am specialized in .NET & Scala and prefer to work with teams embracing modern agile methodologies, micro service architectures and open source software.
My strong education in mathematics has helped me quickly accelerate my career past day to day, dumb, CRUD style projects and into data science focussed roles. I have deployed machine learning algorithms at scale and re-architectured entire data platforms to meet modern big data demands.
27 September 2018
Microsoft have a decent, open source integration test library for MVC on ASP.NET Core 2.1, with some pretty in depth documentation. In true post evil Microsoft form, this package provides the bare minimum, lacking opinionated views on structure or choice of testing framework. This is awesome if like me you develop integration tests with a pretty strong opinion. My (current) opinion in this regard is based around a fluent style - I like my tests to be self documenting and built from reusable components. To demonstrate, I have created xunit-fixture-mvc, which can be found on GitHub and NuGet.
26 February 2018
Unit testing on .NET Core is pretty opinionated and messy. The wide range of frameworks and the lack of a standard structure beyond Arrange, Act, Assert doesn’t help much. My .NET unit testing opinions are well rooted in what I like to call specification structured testing. To support this, I’ve pulled together a library of base classes that provide a standard for writing concise unit tests in a specification structure, whilst leveraging existing frameworks and tooling. You can find it on GitHub and NuGet.
03 December 2017
This is the second part of a series of articles that I’m writing based on my experiences with my GameBoy emulator written in .NET Core; Retro.Net. This time I’ll be having a look at the core of the emulator, which implements a high level form of dynamic recompilation to emulate the Z80 derived GameBoy CPU.
22 November 2017
When put into context by HTTP’s 25 year lifetime, or the almost 50 years worth of milliseconds added to UNIX time since the epoch, my 5 year software development career is very short. But even during this time I have seen an exponential shift in software development methodologies and technology. This has been unanimously for the better and means that we are no longer reinventing the wheel every day and are instead making cool stuff. Some teams have embraced this, accepted that what they learnt 3 years ago is now obsolete and almost useless, discarded it and moved on. Others, however have simply fallen behind.