Pen Portrait

Someone at work asked me to write a couple of paragraphs about myself, and I’m feeling very silly, so here’s my first draft:

Jonathan looks after the strategic side. He’s part venture capitalist, part market strategist, and part four of a three part trilogy about frogs. He works closely with everyone, trying to identify opportunities and threats arising from the continuously evolving landscape that is unique to government. He focuses on return on investment, value chains, market fit, and other meaningless collections of syllables best left to consultants. 

He has never yet been a consultant, but has previously served as the CTO to an international start-up, the Private Secretary to the Cabinet Office’s Chief Digital and Information Officer, and Assistant Head Bartender at the Copacabana lounge (Aberdeen). He used to write code for a living, having built components for GOV.UK and the Digital Marketplace, and now does it for fun, like a retired boxer headbutting cars. He is tragically knowledgeable about government, having been in or around it his entire professional life, and has a strong network of ex-colleagues, friends, and – dare I say it? – disreputable acquaintances, all of whom he can call upon to achieve the varied and nefarious aims of whichever team he’s currently in.

He is capable of translating between French and English, machine and human, and business to business. He is capable of leading ragtag teams against odds that are overwhelming, underwhelming, and beyond scary. He has been applying Wardley Mapping for about three years and is eager to share his knowledge, because he is both a raging socialist and bored of reading documents that are dressed up as strategies but are really a government edition of madlibs.

He is deeply sorry for the silliness of this portrait, and assures you that you will find him grave, serious, and industrious in real life.

S09E02: Making friends and walking the line

I am new in an organisation. As such I’m taking my favourite approach to learning how it works, which is getting stuck into recruitment and procurement. The reason I do this is because I think it’s one way to get a good sense of the organisation’s culture. You get to see what’s prioritised, what people value, what skills the organisation thinks it needs, and what price it values those skills.

Continue reading

S09E01: Secret Santa, apprenticeships, and a new job

I’ve started something new this week: a role at a new department. I’m spending the first week poking my nose into things, meeting people, and getting my hardware/software/note-taking approach sorted.

I’m currently getting stuck into Obsidian, which I use to take notes in Markdown. It’s got a lovely feature whereby it links together ideas, so I can tag notes about #Architecture and then see at a glance who else I’ve spoken to about it. I’m hopeful that this will help me make sense of the whole thing, as well as keeping a good record of what I’m actually doing.

So far I’ve met a lot of people and generated multiple pages of notes. The constellation of my connected thoughts is currently a little haphazard, but I’m looking forward to seeing how that’ll grow over the next couple of weeks.

The constellation of my thoughts: a series of dots connected by lines

My new department is very keen on apprenticeships and so, inspired by Terence, I’m going to sign myself up to something. Before long I’ll have as many letters after my name as are in my name.

Also this week: I wrote a tiny little bit of code and then used Twilio to set up my familial secret Santa. For any rational human being, this is a task achieved through the use of small slips of paper and a hat/bag/inside-out umbrella. My family – my extended family – is closer to a clan, and with the addition of rules such as “No one in your immediate family”, I wondered if perhaps we could get a robot to do it.

Of course we could. Much geekery ahead:


Let’s start with some data:

idnamefamily_nameparent_names
0SansaStarkNedCatelyn
1JonSnowLyanna
2RickardStark
3AryaStarkNedCatelyn

The parent_names property is useful, because we can use it to identify siblings, children, and parents – so that nobody ends up with someone in their immediate family. This can’t be done purely on family_name, because although Rickard and Arya share the same family_name they’re not in the same immediate family.

Here’s some code to match people together:

def score(person_one: dict, person_two: dict):
  """Good scores are low, bad scores are high"""
  if person_one.get("parent_names") == person_two.get("parent_names") 
  # these would be siblings or partners - for the purposes of this
  # code partners were modelled as siblings
  # hence my use of Game of Thrones as an example...
  or person_one.name in person_two.parent_names or person_two.name in person_one.parent_names:
  # these are parent-child or child-parent relationships
    return 1
  else:
    return 0

and here’s some code to calculate how every person matches with every other person:

import csv
import munkres
import itertools
import math


with open(family_data.csv) as the_clan:
  everyone = [score(*pairing) for pairing in itertools.product(csv.DictReader(the_clan), repeat=2)]
  square_size = math.sqrt(len(everyone))
  matrix = [lst[i:i + square_size] for i in range(0, len(everyone), square_size)]
  matches = munkres.Matrix(matrix).solve()
  # this returns pairings that match the ids in the table above
  return matches

I used this basic guide from Twilio to help write my function to send the messages.

# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

def send(recipient_number: str, gifter_name: str, giftee_name: str):
    account_sid = os.environ['TWILIO_ACCOUNT_SID']
    auth_token = os.environ['TWILIO_AUTH_TOKEN']
    client = Client(account_sid, auth_token)
    message_body = f"Dear {gifter_name}, you're going to be buying a present for {giftee_name} this year. " \
                   f"Don't forget to put some ideas in the WhatsApp group for your secret Santa! Lots of love, Santa"

    message = client.messages \
                    .create(
                         body=message_body,
                         from_='Santa',
                         to=recipient_number
                     )

    print(message.sid)

One cool feature of Twilio is that, if you chuck them £20 for an “upgraded” account, you can send texts where the “from” field can be a string, rather than a number. The upshot of this is that I could send messages that seemed to come from Santa!

S08E05: what value my words?

So. The last one of these sparked a bit of a conversation. I discovered that an automated aggregator was wholesale copying my blog (and presumably the blogs of everyone else there) from the Web Of Weeknotes site, and it didn’t sit well with me. I reacted badly to it, and I’m grateful to folks who were patient in explaining why and how it had happened.

I’ve been struggling to write this post since. I’ve been struggling because I reacted very strongly. I find it best to look at that reaction for a little while and work out where it’s come from.

I didn’t think I was possessive about my words until this week. I write professionally. I write code and I write letters and I write speeches, and all of them are regularly critiqued and re-written. Sometimes for the better, oftentimes not – but I have nonetheless sat happily by, punched my card at the end of the day, and not thought of it again.

I write a lot on the internet. I’ve got an email sign-up box, which means people I’ve never met can read my words on their devices, wherever they are. I don’t charge for them and I don’t run ads, so I’m not even missing out on potential income.

I also know for a fact that my writing is quite good – a strong 8 out of 10, if I were to self-assess – and that it has on occasion helped other people to discover or realise or come to terms with something. That’s something to be celebrated, and insisting on keeping my words specifically where they are – when it costs me nothing but clout and ego to let them go! – indicates uncomfortably what my “even over” is.

The last thing to say is that everything I have to say is embroidery on the edge of a tapestry that has been shaped by many other hands. My autism results in me reading something like 2 or 3 times more than most people, and consequently I’ve read more good and bad writing in my 30 years than I think some people will in entire lifetimes. My autism counts beats and knows the rhythms of the right phrase. It is my skilled and invisible dance partner. It is not a skill I have long-laboured for.

And even those skills that I have long-laboured over: I earn more than I need from them. When people tell the story of Picasso doodling for five seconds on a napkin and charging $30,000 because it “took a lifetime” I think, no it didn’t. It took five seconds – or it took a village of lifetimes. Whence that napkin, Picasso? Did you make it yourself? And that coffee? And that pencil? Yeah, it took you a lifetime of learning – a lifetime you could spend learning because other people were making sure you had napkins, and pencils, and coffee. And providing blood for your art, you contemptible twat.

This might sound somewhat communist and suspicious to you, and I can offer the following response: yes.

And yet.

There is something deep down in me that rebels against someone just wholesale re-posting something I’ve written. Once upon a time I’d have seized the opportunity to get that kind of free exposure. A terrible, terrible poem I wrote to score an internship was reprinted in Private Eye with a comment that was gently scathing. I was absolutely thrilled – though as I write this, I wonder who it was in that particular PR firm who leaked it to that esteemed organ.

My first reaction was fundamentally quite wrong, I think. I didn’t start writing my weeknotes to build a brand. If people get something from my writing, that is a Good Thing. If people seek me out for more writing, that would be a Nice Thing. But I would rather what I said was out there, even over being named.

So from here on in, everything I write here is licensed under Creative Commons. Help yourself.

After all, you helped me write it in the first place.

Creative Commons License
This work is licensed under a

Creative Commons Attribution 4.0 International License.

S08E03: Let’s talk about death

Alright, so you remember how last week – shut up, time is weird in the pandemic – last week I talked about how my organisation’s hiring rules meant I might be moving soon? It happened. I’m moving. Specifically, I’m moving to a small arm’s length body of another department to write code. I’ve got enough time, just, to close off all the things I’m doing and write good handovers for the rest.

I’ve also just finished Bojack Horseman, and it’s weighing on my mind.

So. Death, and finding meaning. Let’s go.

Content warning: I’m going to talk about death and grief in a metaphorical way. If that’s not for you right now, give it a miss.

Continue reading

S08E01: These are for me, actually

Okay, so last week I said I was going to take 8 weeks off to focus on the thing I was doing. I assumed this was because I would be too busy to write about what I was learning.

Then Sam – who is wise – pointed out that I’d written a good reflective thing last week and I realised that these are for me, actually. I love you, reader. I do. You give me the endorphins I crave. But that’s not why I write these: I write them so I have somewhere to come back to and reflect on what I’ve learned.

Anyway. Here comes season 8.

Continue reading

S07E16: Rapid Response!

This week I was offered an opportunity that may seem deeply boring but I’m quite excited about: developing a business case at pace from scratch. Well, scratch-ish. From itch, maybe? Anyway, it’s a great way to end the season: an exciting cliffhanger, with your hero hunched over their laptop.

I’m not really hunched. I’ve actually got a really lovely setup. But it adds drama.

Continue reading

S07E15: another good week

This week I applied to a speculative position to write speeches, which is both my dream job and the thing I fear most of all in the world. You can read my application at the end.

I also pushed harder than I’ve ever pushed before to fix (in my opinion) the biggest, most boring problem in my organisation. If you’re in my organisation, you know what it is. If you’re not, it’s the lack of cats.

Finally: I had another great week at work. I completed my first automation commission, and I’m waiting to see what the ‘client’ thinks about it. I had a couple of meetings where I actually felt confident I added value, which was an exciting novelty. And I iterated my objectives, improving them, and making it clearer to myself what my next steps are for my long term goals.

Really, an absolutely fantastic week. Well done everyone.

Continue reading

S07E14: a reminder of why we do this

I had a great week, and it’s reminded me of why I do what I do. Thinking about the big picture stuff, and helping other people take a step back and think about it, is such an exciting way to spend my days. Plus, I had some genuinely interesting meetings and progress is happening in certain quarters. Basically, it’s been a great week, and it’s reminded me of why I do what I do.

Not that I can tell you what I do, of course, but let me reassure you that’s it fun.

Continue reading