don't worry, it's probably fine

Notes from the Week #29

18 Aug 2019

weeknotes gds mob programming story splitting

Here’s a non-exhaustive summary of what happened this week fortnight.


Last week was my first “Yak” shift. Yaks are second-line support named (as far as I can tell) after the process of yak-shaving.

I was shadowing as secondary this week which means I was paired up with another developer who had more experience at being on-call at GDS. Luckily it was pretty uneventful and I managed to get a bit of mission-work done in the downtime between things that needed our attention. I also managed to sink my teeth into code-bases belonging to other teams in the Verify programme.


I’ve been a little bit anal about making sure that we properly slice our work for the migration to AWS, and last week I was vindicated in this approach. Due to some unforseen complications with the interactions between Kubernetes Secrets and Istio, a small piece of work that I did last week in the application code had to be un-done.

I think that earlier in my career I’d have been quite annoyed by this, but I’m glad the amount of time we’d invested in that particular approach was a single day, tops. I’d rather we trimmed this branch without fruit immediately rather than ploughing ahead with a plan that wasn’t really going to work.

GeePaw Hill has some absolutely banging Twitter-threads about story splitting that you should definitely go and read right now:


I helped facilitate the Java Community meetup within GDS on Friday. As anyone who listens for long enough will know, I love a bit of refactoring. We took a single method in an actual production codebase that was doing email-related stuff and refactored it as a mob.

Things that happened included, but were not limited to:

  • Refactoring to make a void method testable.
  • Improving test-coverage.
  • Applying DeMorgan’s Laws to break an early-return out of a nested if {} else {} block.
  • Sharing the IntelliJ “magic words” to do useful refactoring tasks: renaming, extract method/variable.


DemocracyClub runs a slack-bot called Orinoco that periodically informs a channel of upcoming elections where candidates need adding to the crowd-sourced candidates app. I’ve got an open pull-request against that code to add support for notifying when the StatementOfPersonsNominated should be published (or if it is already).

This lead to me doing some heavy refactoring on my sopn-publish-date library. Trying to derive publish date from an election that needs to know about country-level information used to raise an exception and bail. Examples of this are local elections (legislated at the country level) and parliamentary elections (single legislation but depends on country-specific public holidays).

I plan to merge this in and refactor existing consumers of the API (such as WhoCanIVoteFor) to use the new type-signature.


The reason that I didn’t post my weeknotes last week was that I was playing Life is Strange. It’s a “walking simulator” interspersed with puzzles, photo-taking, and time-travel shenanigans. It also possesses the excellent trait of each chapter getting worse for all the characters involved.

love too read this when i'm feeling anxious

Basically, the final chapter and ending upset me so much that I was a ball of sadness for the whole weekend.

It’s definitely a good game in opinion - I became very emotionally invested in the characters and the outcome. Probably don’t do what I did and binge it over the course of a couple of days though.


  • I went to the choral prom at Holy Sepulchre in Holborn, better known as the musicians’ church. This year is the 150th anniversary of Henry Wood and he’s both interred in the church and memorialised in one of the stained glass windows. Some absolute bangers.

  • Mortimer and Whitehouse: Gone Fishing has returned for S2, which is a very chill slow-tv-esque show broken up with some great banter and riffing from two excellent comedians.