Richard Towers

Photograph of Richard sailing somewhere sunny

I’m a software developer from York.

As of 2024 I’m a Lead Developer working on the GOV.UK publishing platform at the Government Digital Service in London.

I’m a keen (if not very strong) chess player, and a determined (if not very fast) cyclist. I can sail a bit too, so when the weather’s nice I like to do that.

Elsewhere on the internet


Recursive CTEs in ActiveRecord

Using ActiveRecord / Arel to write the example recursive CTE from the Postgresql docs

Typescripting the technical interview

An homage to Aphyr's Typing the technical interview

Finding the longest matching prefix in SQL

How to efficiently find the longest matching prefix of some string in SQL, and the dangers of stackexchange

We're going on a certificate hunt!

We're going to catch an X.509 certificate. What a beautiful day! We're not scared.

How I manage my email

This is a post on how I manage my email inbox. Should be a strong contender for my most boring blog post.

A dark week for international women's day

Reflections on international women's day and the events surrounding the tragic death of Sarah Everard

A Month Note

Weeknotes S01E06 - S01E09 - 7 March 2021

A little more conversation, a little less action

Weeknotes S01E05 - 7 February 2021

We just like the stock

Weeknotes S01E04 - 31 January 2021

Peace, and dawn's one star

Weeknotes S01E03 - 24 January 2021

Oops, I did it again

Weeknotes S01E02 - 17 January 2021

My first weeknote

Weeknotes S01E01 - 10 January 2021

Terraforming the Advent of Code

Sometimes everything looks like a nail, but all you have is a banana.

Little boats, big boats; little teams, big teams

Sailing little boats is a very different experience to sailing big boats. On a little boat, the forces involved are mostly on a human scale. Even if it's quite windy, a sailor can control the sails by pulling on ropes that are directly connected to the sails. If the boat's coming in to land too fast, it can be slowed down with a well timed kick off the dock. On a big boat, it's different. Ropes have to be wound around winches for a sailor to have any hope of controlling the forces on the sails. If the boat's coming in to land too fast, the strongest person in the world isn't going to challenge its momentum with a kick - if they're foolish enough to try, they'll loose their leg. Giant inflatable fenders can take some impact for you, but mostly big boats just need to be steered a lot more carefully. Teams can be like this too.

Content-addressable storage with postgres

At work we've got a database backed email system that's running into some performance issues. In particular, we're placing the database's disk under a lot of write load. I've had an idea that we could use content-addressable data to reduce the amount we write to disk, and get better performance from a smaller database. This post is an exploration of some techniques that we might look at using to do this in postgres - they're new to me, and as yet untested in a production environment.

Reflections on fasting for one day in Ramadan

I joined a fast-a-thon organised by muslim colleagues at GDS. A group of us signed up to fast for one day - “abstaining from food, drink and bad / negative thoughts, actions and speech from dawn to dusk”.

Old side projects

Looking back on some old side projects from when I was learning to code.

How this site was built

How the content of this website made its way from my keyboard to your computer screen.