Richard Towers

A little more conversation, a little less action

Good riddance January.

In the news

The NHS has been doing an amazing job with the vaccine rollout. We spotted a vaccination center just down the road from us, which is a reassuring reminder that it’s really happening.

The stock market seems to have calmed down, which disappoints me. I was enjoying the chaos. Speculation continues as to whether the GameStop short squeeze has squoze. I’ve no idea, but I’m keeping an eye on it from a distance.

The so-called “Beast from the East 2” has arrived, bringing wet snow and strong winds. The snow is pretty, but going outside is now even less pleasant than it was.

Real life

Claire and I did a remote Murder Mystery game over Zoom on Saturday. My character was a posh wine merchant called Byron. Somehow, I didn’t find it all that hard to get into character. Neither of us was the murderer, which was a relief.


Less reading this week, more TV.

We finished watching Self Made, a Netflix drama detailing the career of Madam CJ Walker (born to enslaved parents, she became the first female self-made millionaire in America). I thought it was very good. It’s an uplifting, and thoroughly American story - a scrappy entrepreneur, working hard, building their own American dream. Despite all the horrors of slavery, the first generation of emancipated black Americans were able to achieve so much. And yet in our modern world, social mobility seems as hard as ever. Systemic racism and structural inequality still hold people back. There is so much work that still needs to be done.

Dark Waters is based on a New York Times news article. It describes how the chemical company DuPont knowingly and deliberately poisoned their workers, and around 70,000 local residents. It’s a true modern horror story. Well worth a watch if you’re looking for something dark.

Wales play Ireland in the Six Nations. I’m not massively into sport, but I make an exception for international rugby, particularly when Wales are playing. It wasn’t the best match, and Wales were lucky to scrape through. It was a bit weird to see them play without crowds due to the pandemic, but watching the game actually felt like a small, welcome piece of normality.




I kicked the week off talking with some of the lead product and delivery managers about our vision for the future of GOV.UK’s publishing platform. We discussed a mental model of the product which separates “Services” and “Enabling Services”. Services being end-to-end journeys that a member of the public would recognise (start a business, have a baby, etc.), and enabling services being the things we need to build to make these work (publishing and updating content, sending emails to notify people when things change, looking up which local authority a postcode belongs to, etc.).

It’s helpful to consider these things separately because it can help us see when we’re spending too much of our time working directly on services and not investing enough in the software that underpins them.

We reused a process I was experimenting with last year. Each service and enabling service gets a card on a Trello board. Links between them are encoded as hyperlinks. I wrote a little script back in the day that draws a map of which cards link to which others. It’s ropey, but it works. A quick way of putting together a diagram that shows how features fit together. It was nice to be able to reuse an old bit of code.

The automated tests I wrote for our DNS config last week correctly flagged an issue this week, which was satisfying. It was minor (correct DNS servers, but not configured to serve the SOA yet), but I like to think it might have saved us a tiny bit of manual work.

A couple of conversations about moving people between teams made a little bit of progress.

Our current process for moving people between teams is not great. Things start with a few ad hoc conversations, and then have a tendency to snowball into decisions without proper consultation. It’s difficult. GOV.UK is doing a lot of important work, and any move that leaves a team with fewer people is going to cause problems. But changes have to happen from time to time.

Making things open would probably make things better. Words to live by.

Make things open it makes them better - stickers from GDS

The replatforming team had a busy week.

We had a catch up with our two new deputy directors, who asked some insightful questions and gave us lots of food for thought. There’s a looming deadline driving the work, which means we haven’t been able to prioritise some of the things we’d really like to do. In particular, it would be great to get better measures of the performance of the current platform (things like availability, time to patch vulnerabilities, time to recover from incidents, engineering time spent on toil). Without these metrics it will be hard to know for sure whether the new platform is living up to our hopes. But these things are not as easy to measure as they sound.

The GOV.UK Pay team kindly invited me to a progress meeting for their equivalent to the replatforming team. They’re doing very similar work to us, and there are lots of crossovers. We’ve both spotted the same lack of features in the hyperscale cloud platform we’re both using. In a couple of these areas GOV.UK have already designed workarounds, so we should be able to share those and save them some time.

After my big refactoring PR of last week, the replatforming team have been able to pick up the idea and run with it. In great PR after great PR, the team has eliminated about 1,000 lines of terraform boilerplate. Feels good. Last week I was feeling pretty bad about being too hands on with this work, so it’s amazing to see the team click with the direction I was going in, pick it up and run with it.

One of our tech leads raised an RFC proposing an architecture for session cookies on GOV.UK to support the GOV.UK Account. This was a really nice piece of writing, and a well thought out architecture. It led to some good discussion, and throughout the week the team have been iterating the document. A couple of questions remain, so we’ve extended the deadline by a few days to make room for more discussion.

At the end of the week, Bevan and I managed to make a bit of progress organising recruitment. Bevan’s been doing the lion’s share of the work finding panelists for the next round of interviews, but hopefully I was able to help a little bit by reusing a script I wrote for the last campaign.

Interview panels at GDS need to be diverse. Every panel has at least one person from an underrepresented gender and an underrepresented ethnic background. We also make sure that for internal candidates, at least one person on the panel will be from a different programme to them.

These rules are all sensible, but when you’re scheduling lots of interviews they can be a bit of a headache. It’s not that hard to come up with panels that meet the rules, but still. Feels like a job for a machine.

There’s also a risk that by doing things manually, we’d end up relying on the same few women of colour to sit on lots of panels. While interviewing is something we’re all expected to do, it’s deeply unfair if colleagues from underrepresented backgrounds have to bear most of the burden.

In the spirit of using a sledgehammer to crack an acorn, my script uses the CP-SAT solver from Google’s OR-Tools project. This lets me express the problem as a series of boolean conditions, and hey presto, out pops a solution.

I tidied my script up a bit on Friday, and exposed it through a little web interface. It’s actually relatively easy to use, once you know how, so it might actually prove useful to people who aren’t me.

My email management was a little bit better this week. There wasn’t an obvious point where I lost control, but it’s all still a bit of a mess.

Finally, I said hello to Himal on Friday. He’ll be joining us soon as GOV.UK’s new Head of Technology and Architecture. It’s really exciting to have another senior technologist joining, and from first impressions Himal sounds like he’s going to be great. I hope the ranty cabal of developers and architects that he met with didn’t put him off too much!

End of weeknote

I think I was partly successful in my aim to step back from writing code and actually do some leader-y things. It’s still uncomfortable territory for me, but I guess we get better at these things by facing up to them.

More of the same this week.