S10E01: Welcome to the Good Place

I have started to rewatch the Good Place with my partner. I mean, I’ve watched it before. She hasn’t. No spoilers!

New role, new season, new project that I’m not going to talk too much about. I’m going to complain, like a lot, mostly about building infrastructure with Python – there are some genius brains at Amazon – but I won’t be talking too much about what the project is about.

Continue reading

S09E17: On again, off again

This has been a funny old week. I realised on Monday that, given how holidays are falling and so on, I’ve only got about a week left in my current role. I have learned so much, but I also feel guilty because I’ve not delivered anything. At least, I don’t feel like I’ve delivered anything. Maybe I’m underestimating my impact, but also I wonder if there’s value in being a bit selfish. It is a good thing to learn: it is good for me and good for my wider employer.

It just sucks that I feel guilty about being unproductive.

Continue reading

S09E16: The worst curse is to get what you want

This has been a generally good week. I’ve done some strategic work and started to lay out principles for implementation. I heard back about something I’ve been waiting ages for, and I made even more breaking changes to my side-project. I spoke a little bit of Russian and drove for the first time in a long time. I met some of my fellow school governors and saw a real school in action.

However, I’m still no closer to a couple of big decisions I want to take. In fact, I may actually be further away.

Continue reading

S09E14: A weird grab bag of feelings

So last Sunday I saw the most recent (I can’t say latest, it’s been out for so long you can download it legally now) Spider-Man, and something made sense. A few days before, my partner and I were at a station watching a little cluster of teenage men cracking each others backs. The process is that you cross your arms over your chest, fist to opposite shoulder, and your friend stands behind you, grips you at the wrists, and lifts you up. You can feel your vertebrae popping and it makes a fantastic noise.

In Spider-Man – spoilers ahead – one of the spiders-man does it to one of the others. Web-swinging is apparently murder on your middle back. And I was suddenly reminded of these boys, and also of this work by Barbara Kruger, which is burned into my brain:

a black and white collage of men in evening dress. They are in a semi-circle around another man, whom they grasp and tug at. Everyone is smiling and full of joy. Overlaid are the words 'You consutrct intricate rituals which allow you to touch the skin of other men'

Because it’s true, isn’t it lads? We don’t want to give each other a hug, but you’d crack a back for your bro. Because it’s about proving you’re strong, right, and doing a favour, and not at all about comfort and pressure and feeling held and feeling not alone.

And I just – I enjoyed it. I liked seeing guys looking out for each other and being brotherly in a movie that is marketed as a nice, fun, non-dramatic movie.

It’s nice to see boys just being boys.

Did you know that in scientific papers the scientific authors will scientifically enumerate the number of mice that they’ve ‘sacrificed’?

It’s a weird word to use for a scientist, I think. I think this in part because I was brought up very Christian and so the word ‘sacrifice’ has, hum, had meaning for me for a long time. The first story in the Bible is about sacrifice, and how God was not hugely pleased with the selection of vegetables that Cain offered up.

I think in modern parlance ‘sacrifice’ has come to mean ‘prioritise’, and I don’t like it, and I especially don’t like it in the context of relationships. Let me tell you how I define a sacrifice, coming as a I do from a Christian background, and then you can either explore other words we could use or ignore my definition entirely.

A sacrifice is a gift, freely given, in the hope that you will in future receive something greater in return but accept you may also not receive anything at all. It is therefore completely necessary to a relationship with God, and fundamentally unsound for a relationship with a person. For what it’s worth, I think the scientists are using this definition: every scientific endeavour is a sacrifice of time and money and sometimes lives in the hope that what will be returned will be worth more.

(Your understanding of ‘worth’ might differ from those scientists, and perhaps your definition is the one we should accept and behave as if it were correct, but for now let’s accept that folks have different meanings for this stuff)

God and I have long since parted ways, though we are still on nodding terms, so let’s talk about this definition of sacrifice in the context of human relationships. There is this phrase, “I sacrificed (thing) for you.” In my experience it does not usually mean that they burned (thing) at an altar with the appropriate prayers and rituals. What they mean is that they prioritised you over (thing), and they feel you should have:

  • noticed and reciprocated by sacrificing (other_thing) of equal value, or
  • given you the return you thought you were due, or
  • told them to prioritise (thing) over you

I firmly believe that this phrase is indicative of a transactional view of relationships (gross) and also cowardice. If you sacrifice a thing and then get mad about it, what you actually wanted was an exchange. Built into the idea of a sacrifice is that sometimes you get nothing. Sometimes you get nothing because what you’ve received is a lack-of-bad-things; that is, through the sacrifice you have avoided a piano falling on your head or avoiding a terrible disease.

Sometimes what you get for your sacrifice is the knowledge that God is “doing keto right now, yeah?”.

So sacrificing something and then becoming resentful that you’ve not received your just reward is such, such a clear sign to me that you don’t know what a sacrifice is. What you’re thinking about is a trade, and love is not governed by the Law of Equivalent Exchange.

What then of cowardice? Cowardice is the outsourcing of your choices to someone else. If you prioritised your partner and their wants and needs over yourself, then that is your decision to own. Why do you now resent them? Is it because, unbeknownst to them, you were not prioritising them: you were sacrificing something, in the full expectation that you would reap its rewards? That’s not a choice, that’s treating your partner like a piggy bank that you can smash open later.

Transactions happen in a relationship, and so do compromises: I make the dinner tonight and you wash the dishes; I will get over my thing about poop and you will accept that my nappy-wrapping won’t be as neat. We are human beings and we can make these exchanges. You can talk to your partner about what you want to trade and compromise on, as long as you can accept that you’re not always going to get your way.

But your partner is not God, nor a force beyond human ken.

They cannot know the sacrifices you make in secret, and they cannot uphold the sacrifices you declare. They can only be themselves. You have to choose, and if you choose wrong you can only choose again.

If you keep prioritising your partner’s wants and needs over your own and they also prioritise their own wants and needs over yours then, friend, talk to me please because I’m not convinced that’s a healthy dynamic.

And none of this, mind you, is to say that there are no sacrifices in a relationship. But I firmly believe that if you make a sacrifice for the sake of the relationship then it should be in the hope that it will be good for the relationship, which is this weird messy complicated thunderstorm of your wants and their wants and your potential future wants and what you imagine they will want, and so on. Bluntly, I would expect a sacrifice to be in the pursuit of some benefit to everyone in the relationship.

This piece still isn’t where I want it to be. I think there’s some wooly thinking here. But we’re getting there.

Let’s have a good weekend all.

S09E13: Scala, conflict, and grasping for control

I realised something this week while doom-scrolling Twitter, browsing Zoopla, and applying for jobs that I don’t really want.

When the world around me doesn’t make sense and seems more chaotic that usual, I try to exert control on it. I can only control my life, and I get the urge to wrench it around to prove that I still can. I’ve walked out of jobs before to prove that I could still control my own actions. To prove to whom? There’s a question.

Continue reading

S09E11: Bittersweet

Just one topic this week. I need to talk about this, and it’s difficult for a few reasons, so I’ve not got energy for anything else. I am coming up against the first real professional failure of my career, and it’s hitting me really hard. Worse than that, I’m trying to work out how to talk about it without causing hurt. Please forgive me if, despite my best intentions, you’re hurt anyway.

Continue reading

S09E07: Anyone else keep writing 2021?

Of course you do.

As traditional this first week is when, if you sent “Let’s pick this up in the new year!” emails, you receive “Picking this up in the new year!” emails. It is a tradition as old as the hills, as long as they are very new hills and, if one looks closely, artificial.

This week I closed off some caretaking I was doing on a small service I was made responsible for. It got me thinking about how best to actually organise this stuff in the department, so I’m now on a mission to come up with some standard ways of organising people into teams, controlling access to the stuff they work on, and then managing how that changes over time. Because it will absolutely change over time, and a system perfectly etched in glass is no use to anyone.

This feeds into some strategic thinking I’m doing around the future of my profession in my department. At the moment I’m thinking about recruitment, retention, software, hardware, and standards. Does that sound about right? What else should I be thinking of when considering the next five years of software development? Thoughts on a postcard/email/Twitter message/by pigeon (you may not get your pigeon back).

As ever the strategic work is not just thinking about the thing, but thinking about how to sell the thing to everyone else in the organisation. If I think we should go in a direction, it’s no good me storming off in that direction because for plenty of folks that’s not a direction they much care about. As a naif I expected the brilliance of my idea to stagger people. It’s good for me to come to the realisation – again – I must do it at least once every six months or so – that I am not the main character in anyone’s story but my own.

My partner and I settled on some goals for this year. My current promotion is only temporary, but I’m enjoying it so much I want to keep working at this level for the foreseeable, so by the end of this year I’d like to have secured a permanent role at my current grade.

We’d also really like to move house: either further into Eine, or somewhere else entirely. Either way we need somewhere bigger: we have a wardrobe that groans with cloaks, knitting needles, board games and the other accoutrements of the modern yuppie lifestyle. We need space for at least two wardrobes. Perhaps even three.

Finally, I want to finish off the work I started with the Civil Service LGBT+ network. I’ve built a script to improve the mentor matching process, but I want to do something with it to make it useful to folks who aren’t as technical as me.

S09E05: Title goes here

Three things:

  1. Advent of Code got really difficult, although at least partly because I’m forcing it to be difficult
  2. Work started to slow down, just as I started to get to grips with it
  3. I got some honest feedback that was the brutal reminder I needed to be more considerate

In reverse order:

I am really frustrated with myself that someone had to give me this feedback, because I’ve banged on about this endlessly myself. Senior people, I have written crossly on these very pages, should really think before they speak. They should remember that they’re senior people before they remember that they’re experts.

As with sex and food, good intentions are simply not enough. I fell a long way short of my intentions, stepping into someone else’s domain without proper consideration for the time they’d spent working on a problem. I jumped in already assuming that I knew more than they did, and with a pinch of wanting to prove that I could be valuable. I’m going to cut that out.

On the plus side, I’m so lucky that someone felt comfortable giving me that feedback. It shouldn’t be necessary, but at least I’ve had it, and now I can correct myself. So that’s good.

Work is starting to slow down for everyone, I think, because of the impending festivities. So emails are starting to bounce back from polite but firm out of offices (outs of office?). So out of a desire to write a little code, and to be useful, I’m covering a little information service. So far I’m not writing any backend code, but I am re-familiarising myself with GitHub Actions and the language we use to describe how we deploy code into a production environment. The language is called YAML, which stands for YAML Aint Markup Language. The first YAML stands for YAML Aint Markup Language. The first…

You get the picture. It’s recursive, which is a topic I covered last week and will likely cover again. In fact, it’s come up as I’ve been writing Python in a functional style. The other thing we insist on in functional programming is immutability: that things can’t change or be changed. You can create a copy, but that copy too can’t be changed. It forces you to think about things quite differently.

I’m finding myself applying that thought process to deploying code. The binary package that we deploy should ideally be immutable: nobody, even me as the developer, should be able to poke around inside it. If there’s a problem with it, we should fix the code once at source and then redeploy the binary. This is at odds with the traditional approach, which is caring for servers like they’re pets and jumping into them every so often to mess about with the environment or similar.

“Redeploy” is a weasel word here that actually covers a lot of work. The binary has to be properly tested, and once it’s tested, we want to promote it into a testing environment so people on our team can try their best to break it. From there, we want to promote exactly the same artefact into production. The slower we do this loop, the longer it takes to get changes into the hands of users.

This is why people like me obsess over small changes and automating tests as much as possible. This is what I’ll be working on over Christmas, I think.

Advent of Code got impossible this weekend, and it really killed my enthusiasm. I’m also finding I have less time? less desire? in these very dark evenings. Instead I’m just getting cosy with m’buddy Salem and drinking a lot of tea.

me and my feline buddy Salem having a cuddle

Maybe in January, eh.