2022

Work has been a mixture of a lot of highs and lows. My current place is quite chaotic; there have been leadership changes that bring in different ideas and expectations. Re-orgs often tend to be tough, where you find different people's values and ways of work clashing. Over this year, I've had three different line managers, which has sometimes caused problems. These are all fairly normal growing pains, and in a lot of ways things have improved as the year has gone on.

I have learned that expectation management is an essential skill for an EM (engineering manager), it's not enough to assume people will trust you, and people need clarity as to why something is taking longer than they expect. Explaining why a complex system (both in terms of tech and the social side) is taking "longer than expected" has been difficult and stressful for me. Not something I've enjoyed, and it has made me question my skills and motivations for being an EM.

I need to reflect on how I can explain these ideas better if I can protect my team better and, on a personal level, have a healthier work-life balance. On previous projects I leveraged "sliders" to get buy-in and clarity around the kinds of trade-offs teams need to make with work. I think it was a big error on my part not to use this tool and get blessing from senior management.

So there are a lot of things to stress about, but importantly, my team are delivering, and it all seems to be more-or-less coming together as the year finishes. Our part of a large and complex system is rolling out across Europe for thousands of customers. My team has been put under a lot of pressure, which I have tried to manage as best I can, not always successfully, but I hope they recognise their achievements. It's sometimes easy to get lost in the dozens of bits of work we need to do, which will seriously help the business in tangible ways.

No matter how it all pans out, I'm also extremely pleased and proud of how the team has grown over this year. We've got much better at writing software as a group. We've learned many essential concepts in writing sound systems, particularly automated tests, TDD, contract testing, London vs Chicago, and many more. Our code-review sessions, mobbing and pairing, have brought up some fascinating ideas, precisely what I'm looking for when trying to build teams. I'm proud that members of my team have gone to other teams to help coach these modern engineering practices to good effect and have a wider impact to the engineering organisation. To top it all off, 2 on my team got well-deserved promotions; I'm thrilled for them.

Open-source / community things

Given how hectic work has been, it was surprising to look back and see I still found the time and inclination to write five new chapters for Learn Go with Tests this year.

I was also lucky enough to be invited for my 3rd episode of Go Time. In this episode, we discussed TDD with someone who is not a fan.

Goals for next year

Not going to be too hard on me if I don't achieve these, but it's nice to think ahead.

Professional

Keep on top of Learn Go with tests.

It's cool and appreciated how many issues and PRs are raised, but I feel guilty about not addressing them quickly; this will be a constant struggle.

I have a few new chapter ideas that would be nice to try out:

  • Living without mocks
  • Nested testing
  • Fuzzing
  • Browser testing

Back to a simpler world with web development

I am thrilled that technologies like htmx and hotwire are gaining traction. I have long expressed how much I hate the proliferation of client-heavy SPAs, about how much complexity they bring to making simple websites.

With the likes of htmx, we can go back to a world of rendering HTML on the server, which is extremely simple and battle-tested; but still have a smooth client-side experience for the user. It also liberates from using Node on the server; if your $FAVOURITE_LANGUAGE can respond to HTML requests, you can make great websites.

I experimented with this during some time off, and many people were engaging with it on Twitter.

If I find time, I think I can write a lot of material around web development and Go using this way of working.

Speak at GopherCon US

I was lucky enough to speak at Gophercon UK a few years back. A while ago, I applied to talk at a few state-side conferences and didn't get a response. I want to try again, as it is a personal ambition to speak at a conference outside the UK that I'm not quite willing to give up on just yet.

Maybe the simpler web development approach would make a decent conference proposal.

Personal

You can probably stop reading here; this is just for me :)

  • April this year, I weighed 107kg (I am 6'2" tall), which was terrible. The pandemic and work led to a lot of inactivity and stress-eating, which is a bad combo. I went back to basics, tracking calories and exercising, and seven months later, I am 91.4kg! Very pleased with this progress; I fit into all my clothes again. I want to push on next year and get myself down to around 85kg.
  • As part of the above, I got into "couch to 5k" and have since completed a few 5k runs. I am unfit still and relatively slow; it takes me 33 minutes. I want to try and push this to 30 minutes, but honestly, I have no idea if that is good/impossible. Either way, something to improve at.
  • I waste so much money on computer games that are probably really good, but I don't have time—budgeting myself a max of 4 new games next year to force myself to at least make choices not to be so impulsive.