Welcome to this year’s edition of “leaving it too late to write a blog post about the last year”.

You might have more fun reading some of the older, more carefully crafted posts.

Imagining the disappointment on Nick1 and Chris’s faces if I fail to write a post each year shouldn’t be the thing keeping this series going but inspiration takes many forms.


Another year has passed at Breakroom, oddly enough it feels like everything has happened and nothing has happened.

We’ve been making steady, incremental changes to our job matching product, and there was a point at the start of the year where everything slotted in to place and we ended up with something that feels really nice to use. Judging by the graphs that are going up and to the right our users seem to agree.

As our customer count reached a critical mass it was no longer feasible for us to manually make content changes and thus, I got yet another chance to build a content management system from scratch. This time using LiveView, which turns out to be a really fun (and only occasionally frustrating) way of building interfaces for the web.

Sometimes I worry that I don’t have any ambition. I’m quite happy building little bits of UI, figuring out good user experience, helping people fix bugs, and organising crusty old CSS. It’s what I’ve been doing for at least the last 10 years of my career and I don’t see any reason to stop.

I super love the people I get to work with and I can’t imagine working anywhere else. That’s gotta be a good sign.


When my dear friends Guy and Natália invited me to take a trip to Rio de Janeiro there was no way I could’ve turned it down.

I never thought I would get to go to Brazil. I’m a homebody. I love staying at home, it’s where all my stuff is.

But, thankfully, I know I have to say “yes” to these sorts of things and that’s how I ended up sipping on an ice cold coconut on Ipanema Beach, taking morning runs along the Copacabana, seeing the mind blowing Iguaçu Falls, watching an amazing samba band, and riding up the hills of Rio on the Santa Teresa Tram to have lunch at a little local restaurant where a lady with an acoustic guitar sang me Happy Birthday in Portuguese. All with a bunch of awesome friends that I am lucky to have.

The two weeks were a magical blur and I am exceptionally thankful that I got to have them.

When I wasn’t jetting half way across the world I was racking up more gig minutes with Coheed and Cambria, Sage Francis, Brand New Friend, Black Country, New Road, Blink-182, Mountain Caller2, Wheatus, MC Frontalot, Sløtface, Shelf Lives, The Front Bottoms, Shit Present, Jeff Rosenstock3, and Grace Petrie.

I don’t usually mention video games in this bit, but I went back to Hades and fell in love with it properly this time. Even if you aren’t going to play, I would check out the soundtrack, it’s a banger. Hades II just went in to early access and I’m on the fence between waiting for the full release or buying a Steam Deck so I can play it on the train to work right away.

I continued my bouldering adventures and managed to conquer my first V3, which felt like an achievement even though it was a slabby, corner situation that I struggled up in a very inelegant fashion. I haven’t done a V3 since so it still feels like a bit of a fluke.

A few weekends ago myself, Matt, and the other people I know that are still daft enough to enjoy playing Dota 2 went to watch the pros playing at ESL One Birmingham. We went the time before, back in 2018 so it was a nice reunion. It was Matt’s first Dota tournament experience though and it turned out to be an absolute blast and a truly British affair. I got a professional e-gamer to sign my Dota comic book which is not as sad as it sounds.

In January an incomplete group of us made it back to the slopes for a spot of snowboarding in Avoriaz. A fun time was had by all, even though it was apocalyptically hot for the time of year. By the end of the week some of the slopes had turned to mud. I also got to eat the worst meal I have ever eaten. On the last day I fell and smashed my coccyx in a very silly way. I don’t think any of this was related.

The pain in my ass was something quite incredible, but mainly I was worried that the injury would mean that I couldn’t…


…a marathon.

In the end I lost about three weeks of training so I only managed to get one 20 mile run completed before the big day.

Here’s a brief approximation of how Brighton Marathon 2024 went for me:

  • Mile 3: Hmmmm. This feels hard already, maybe traipsing around Brighton and having a really early dinner yesterday was a bad idea after all
  • Mile 6: Yup, this is hard. At least I can have a tasty gel to keep my spirits up
  • Mile 8: Wow, there goes Matt on the turn back, he seems super excited and is way ahead of me, I wish I was feeling as good
  • Mile 12: Oh my god, I can’t stand to eat another gel, I feel like I want to throw up
  • Mile 13: Running another 13 miles would be a really stupid idea
  • Mile 14: Well, even walking is hard. I never run with music but maybe it’ll give me the extra boost I need?
  • Mile 16: Run for one song. Walk for one song. Repeat for 10 miles. “Easy”
  • Mile 18: Drunk Drivers/Killer Whales by Car Seat Headrest came on. Holy shit, I can fly!
  • Mile 21: Okay, Matt looks totally dead now, I hope he’s alright
  • Mile 24: I must be able to run 2 miles in less than 30 minutes, right?!
  • Mile 26: Well, I can run 2 miles in less than 30 minutes. One last push to the finish line…

I crossed the line and received my medal. A marshal came up to check that I was okay. I was okay, I just needed to catch my breath.

It was proving quite tricky to catch my breath. I swung by the St John’s ambulance for a sit down, blood pressure check, and souvenir space blanket.

Official time: 5 hours 53 minutes 26 seconds

Matt had to struggle back from the hotel to bring me my inhaler. On the walk back we talked about his race. He ran an incredibly strong first half, but then dropped off, hence how he was looking when I saw him on the final turn back. He still finished 20 minutes ahead of me, which is pretty impressive considering he’s only been running for just over a year!

I’ve signed up to Edinburgh Marathon in 2025. Will try and do it a bit quicker.

I did quite a lot of other running this year, it’s all on Strava if you’re in to that sort of thing.


As suggested last year, I put all my Space Marines back in their respective boxes and started painting T’au Empire instead.

Actually pretty pleased with what I managed to get finished; some Crisis Battlesuits, a Ghostkeel, three Stealth Battlesuits, and Commander Shadowsun. I did take photos of the last two but they came out so bad I haven’t bothered putting them on Instagram.

I’ve signed up for two 40k tournaments this year, and that has created the biggest painting TODO list that I have ever set myself. If there’s one thing I don’t like it’s painting to a deadline. I’ve had to make a Trello board to track my progress, it’s that serious.

At the rate I currently paint I would need about three years to finish the models I need for the tournaments and I have *checks watch* two months. There’s going to be some serious corner cutting here.

Paint Work

Sara and I have kept up “side project time” pretty consistently each week, which means I’ve found around 50 hours of programming out of nowhere.

Of course, once you get in to the rhythm of that “forced” hour a week it becomes easier to find other hours so I’ve managed to ship a few cool things for Paint Pad this year.

I wanted to learn a bit more about OpenSearch so I rebuilt the recipes search from the ground up using it. That also forced me to think about new colours, and new user interface design as I slowly inch the site closer to how I think it should look now.

Once the recipes were searchable I did a lovely refactor in order to build out a paints search for the 6,000 odd paints that live on the site. As part of building that I had to figure out a way of giving every paint a search friendly name, as you’ll never find “Incubi Darkness” if all you are searching for is “dark green”. I did some maths dancing with the hex colours and mapped them to a list of colour names that I pulled from Tailwind and Radix.

It turns out that UI frameworks don’t have a lot of naming depth for the number of browns, brownish greys, and greyish browns that miniature painting desires so it was all a bit wonky until I discovered the mighty ISCC-NBS colour system.

After a small code tweak to reclassify all the paints in to ISCC-NBS I did quite a lot of programming until a new feature was born. Paints by colour allows you to browse paints organised by colour4. It felt like the first truly new thing I had done to the site in ages and I’m really pleased with how it came out.

I found my new favourite type of work that feels useful but at the same time nobody will notice5 and it is merging dependabot pull requests. You can even merge ‘em from the GitHub app. I think almost all dependencies are now on the very latest versions, and that’s not bad for a site that is over 6 years old.

At the start of the year I wrote up an actual roadmap for Paint Pad so I could try and prioritise with some degree of intent. Hopefully the first feature from that list will ship in the next few months…


A list that nobody asked for and I had no fun typing out.


I made food using a recipe I found on Instagram.

No AI was used in the creation of this blog post.9

Sorry I haven’t replied to your message.

Sorry that I have’t arranged that thing I keep saying I will arrange.

All the cool kids are having and raising cool kids. Cool.

Tally Ho is in the water.

I’m “learning” Spanish again.

My life is nothing I thought it should be and everything I was worried it would become.

See you soon, babyyyyyyyyyy


  1. He sent me a drumroll emoji last night, the cheek of it 

  2. I worked with the guitarist at least 7 years ago so it was about time I went to see them 

  3. 2024 should be the year that everyone falls in love with Jeff Rosenstock. Start here 

  4. I bet you didn’t guess that 

  5. Unless something goes wrong and I break something, and then everyone will notice 

  6. Must do better this year, I have a huge stack of unread comics 

  7. This was the year of the Silo. I highly recommend both the book and the TV show 

  8. I’m sorry but this is a Dota 2 podcast 

  9. I did listen to a lot of Math Rock though