Making games for children with Autism

A couple of weeks back my wife found details of a hackathon event, organized with a local school who work with children with Autism. Luckily I was able to take part – despite the language barrier (I’m slowly learning…) – and it was great fun and a very rewarding...

Breadwinner Code

Every developer at some point in their career has encountered “Legacy Code” – and the phrase usually implies negative connotations. There are usually reasons for this – Legacy Code is normally code that is hard to maintain, perhaps code that has grown...

Eventual Consistency and Concurrency in the real world

One of the challenges that face a team when they start thinking in terms of distributed systems – such as Microservices – is eventual consistency. We’re so used to writing software with transactions and ACID style consistency, that this can be un-nerving at...

Fixing an “unfixable” bug with the help of Track.js

Recently I was helping a client who had found an intermittent issue in their single-page application. This particular issue was that under some circumstances – which they weren’t able to describe, as it wasn’t any particular sequence of actions – the UI...

Defensive Coding 101

It is sometimes said that the developer mindset is to make stuff work, while the tester mindset is to make stuff break. In modern professional software development though, it is not OK to make testing or quality control “someone else’s problem”, and...

Accidentally destroyed Production database…

There’s been an article on Reddit recently that I’ve seen via a couple of sources now. The post is a bit of a horror story; a junior developer on his first day of his first job was given an instruction manual on how to set up his machine, and ended up...