Weeknotes S03E14: Wipeout

Watch in wonder as his sleeping pattern disintegrates!

We made it folks. This is it. The solstice. The days will get longer from here and the night will retreat.

I have violently overdone it this week. Come with me on this journey of self-discovery.

On Monday I started the last week with my current team. Next week I’ll go back to my old team, which used to be my old team. My current team is my old team; that is to say, the team that was old before my old team was my current team.

I hope that’s clear.

https://media.giphy.com/media/mPytjcsG3XS4o/giphy.gif

The day was fairly intense work, and in the evening I had a date. It seemed to go well. I also spent a lot of energy on being nervous before and after, so that did not set me up well for the rest of the week.

On Tuesday there was:

  • a special meeting with our programme directors
  • one of my team’s Christmas lunches
  • drinks with colleagues
  • drinks with friends
  • another date (I am really, really not very clever)

So by Wednesday I was fairly broken. I therefore did what any normal person would do and joined the final One Team Gov breakfast at 0830 and mentored some individuals at codebar until 2100.

Obviously. Obviously this was the sensible thing to do.

https://media.giphy.com/media/FaLhiZQHrBIYw/giphy.gif

I woke up on Thursday tired in every bone. I turned off all my alarms. I fed the cat in a fugue state. I fell back into bed and slept for another two hours and still woke up groggy. I went back to bed at 7 and slept until 11, when my growling stomach and growling cat combined to wake me up. I made the latest cheesy pasta that’s ever been made, ate almost all of it, fell immediately back into bed and woke today feeling, if not refreshed, at least human.

There is a lesson for me here, and that lesson has been learned so many times that I’m embarrassed that I still don’t know when to chill the fork out.

https://media.giphy.com/media/3oxHQKW9lw6rK9kYtq/giphy.gif

With that being said, good things have happened; are happening; will happening. I went on a date with another human. I’ve been pairing a lot with someone at work and we wrote some cool code and fixed some problems.

I went over to the London Borough of Hackney and facilitated a swardley mapping workshop. I really enjoy facilitating and giving other people the tools to build their strategy effectively. All the attendees said kind things and since I never retweet praise I’m going to put it here. Huge thanks to Cate McLaurin for organising both a compelling workshop and absurdly good cake.

(Also, I think my somewhat-above-me boss discovered who I am on the Twitters, so that can only end well)

If you’re wondering about strategy and would like my help facilitating a workshop like this…I honestly don’t know how we’ll manage it. But I would absolutely love to, so get in touch and let’s make it happen.

I had a great meeting with my line manager where we discussed career aspirations. I’m still waiting for feedback from the Future Leaders Scheme, but in the meantime I am reasonably confident that I should be aiming for a more senior position within the next year. I’m just going to keep pushing upwards and finding new and interesting problems. As above, if you have a new and interesting problem (or even an old and interesting problem) please say hello. I like interesting problems.

Finally: it’s Christmas. This has been quite a year for me. There’s a retrospective in the works, as well as a proper write-up of the OneTeamGov breakfast that happened on Wednesday. For now though, I’ll be working all the way through the holidays. I hope you’re well, and I hope to see you soon.

Buying a house

First, construct a universe.

Good buddy and fellow Team #weeknotes writer Ian Ames posed me some questions about my house-buying journey. Since that might be something you’ll go through at some point, here are my reflections on the whole thing.

How did you find the property you’re buying? What criteria did you use for your search? Who did you use? What information would you have liked to have had that wasn’t available?

I started looking for properties by finding all the developers who offered Help To Buy, and then got myself on their mailing lists. I knew I’d go the help to buy route because I want to start in London and scraping together 10% of £280000 is unlikely. I don’t know if I’ll stay here long term, but buying here first means I should get a decent enough price for my flat when I sell that I’ll be easily able to get something in Manchester or Edinburgh.

The criteria I used was primarily price. I really wanted a new build; there’s something psychological in me that values newness quite significantly. I’m not sure why. It may be due to the fact that I didn’t always have new stuff growing up. I went to the kind of school where you have to buy the uniform from a small, family-owned shop in Knightsbridge, or second hand.

I really would have liked more information on what other properties were valued at in the area; how much I could haggle a price up or down by; the factors that might increase or decrease the value of the property; and how exactly a Help to Buy ISA actually works.

How did you engage an estate agent/ conveyancer, how aware were/are you of the steps involved in the buying process, would an awareness of these things have helped at all?

I engaged my conveyancer through a sort of price comparison website. By the way, “conveyancer” is both a less descriptive and a less helpful job title than “geomancer”, because I at least know what “geo” means.

I had a vague awareness of the buying process, but I don’t know to what extent a greater awareness would have helped — I’ve approached this mostly by saving as much money as I can and making a lot of spreadsheets. I think I’ve logged about 35 hours on my latest one.

That being said, my solicitor has been immensely helpful in explaining these things to me.

How has the moving process been? What were the pain points, what would have helped make it easier?

I’ve not moved yet, so I promise to give you an insight into this. Right now my biggest pain point is that the developers have absolutely zero liability to me in terms of getting the flat delivered to a particular date, while I have a two-month notice period. It feels like there’s a strong possibility that those dates won’t line up, and that I’ll need to work out of my parents’ house for a time. That’s quite frustrating.

At the moment I’m making lists of things I think I’ll need to do:

  • tell the utility companies I’m moving
  • update my bank accounts
  • update my driving license (bugger)
  • set up a mail redirect
  • give my new address to people I like
  • update the vet on my cat’s new address (I’m not 100% on this)
  • book a moving van
  • book some people to move my stuff
  • book a holiday to go on while the people I’ve booked my stuff into the van I’ve booked and unload it in the new flat
  • work out how to get a sofa up to the 18th floor

Weeknotes S03E13: Gluttony

The Christmas indulgence has started in earnest. Someone feed me a salad

What a week this has been. Here goes:

1I did my first bit of volunteering with the lovely folks over at codebar. It was an immensely enjoyable experience and reminded me that my first true love is teaching.⁰ I had a small group of three students who were breaking into Python for the first time, and so we went through the important things new programmers must learn. They are:

  1. Google is your friend
  2. The next person to read your code will have your home address and homicidal tendencies
  3. “Readable” is better than “quick”

It was really basic stuff and I enjoyed myself more than I have in some time. Dinner was provided and it was pizza. So carby. So delicious. It had a vegetable on it though so…healthy-ish?

2I did a big ugly bit of work and came up with a recommendation to do nothing to automate it. I think it’s important to have records of decisions, including when those decisions are “we’re not going to do anything about this annoying problem” because then people can disagree, and that’s good, and when you get very angry at the people who didn’t solve this annoying problem you can find out it was you all along. More importantly, you’ll be able to find out why you didn’t do it then and decide if things have changed sufficiently for you to come to a different decision.

I had a celebratory hot chocolate that was so thick I could stand a stirrer up in it and so full of calories that the health and safety executive demanded it be sold in tiny cups like espresso. It was amazing.

3I attended Hack the Police and won two prizes. Nobody was more surprised than me. There were people there who’d built machine learning tools and global mapping tools and a virtual reality tool for evidence examination.

I put together a five questions, skinned it in the GOV.UK design system, and then mucked about with a capture the flag (CTF) challenge for the rest of the time.¹


And yet I’m now the proud steward of a Met Police whistle, an Amazon Alexa, and offers of help to turn this into a real thing. I’m really excited, because apparently in many cases of robbery and violent crime viable CCTV isn’t always used because it’s so difficult to get it into the hands of the police.

Of course I’m absurdly busy, so this will probably be taken out of my hands or not start work until after March. All the same, it’s very cool. The code is open source, so check it out if it’s your kind of thing.

We had burgers for dinner and cake for breakfast. I tried a burger made entirely of plants that tasted both meaty and not like any meat I’d ever had before. It is definitely The Future.

4I did not get onto the Future Leaders Scheme. This has come as both a massive blow and no surprise, because cognitive dissonance is easy and so is self-deprecation. I made myself carbonara for dinner with extra cheese.

I am grateful that I’ve been doing this with a bunch of other public sector digital heroes, because — selfishly — some of them didn’t get it either, and they’re way more brilliant than me. So I know I’m in good company, and that the cutoff was incredibly high.

I’m really looking forward to the feedback and results of the psychometric tests, so that I can give my critical friends some things I’d like their help to work on. They’re due ‘later this month’, presumably for excellent reasons.

I’m also mildly irritated that after a job interview three weeks ago I’m still yet to hear back about it. It’s for a senior position and I am 100% certain I didn’t get it, but at the very least I’d like to know. Not knowing is the chitinous thing whose wings scratch your insides.

5There may be movement on my flat. The endless merry-go-round of frustrating, paper-based process (alleviated by paying other people to deal with it) continues. It continues in my favour, and so I feel quite churlish for complaining about it. It looks like — as long as the developer realises that all valuations will be much of a muchness — I shall have another £20,000 shaved off the price of my new flat. This is enormously exciting, but there is a nagging fear that prices everywhere are about to do their best impression of a whale called into existence by a space-age technology:

The Hitchiker’s Guide to the Galaxy

That’s all for this week. Wish me luck.


⁰ This comes with the caveat that the student must want to learn, which is why I really love mentoring and really hated teaching.
¹ It’s taken over my bastarding life. Don’t ask.

Weeknotes S03E12: XXX

Everything is new but old but new

I’m back on my old team. We’re delivering things ahead of the meaningful vote on Tuesday. There is not very much I can say about these things.

Still, other things happened. Maybe there’s a post in them. Let’s see.

I did more baking than I’ve done before and worked out how to temper chocolate. Tempered chocolate — glossy, dark, smooth — is the most decadent, most delicious sight in the world. I love it. I love it so intensely that I tried to record it and felt immensely disappointed when it didn’t match the way it looked inside my head. I was tempering chocolate in order to win the bake-off my new team’s DM organised.

Yes, I said win. Who enters a competition without the aim of winning?

https://media.giphy.com/media/10nGcSDXpLv9w4/giphy.gif

The treat I’ve made is vegan chocolate brownies that contain cherries and nuts. Early feedback is that they are amazing, but also need more chunks and possibly more umptuousness, a word that — like my brownies — is mysterious but has a wonderful mouthfeel.

I spent a full 90 minutes with a colleague who helped me understand our communications strategy, because I’m nosy and asked to learn about blogging. I think I’m good at personal blogging, but strategic blogging is a slightly different thing. I don’t think I fully agree with their viewpoint, but I’m also not an expert in this field. I’m willing to be educated, and I’m pleased and excited to work with colleagues who are willing to give up their time to explain it to someone like me. There’s also a workshop happening to bring together devs like me and professional writers like them to help us to better understand each other. This ought to make publishing easier.

Antonia and I played chess, and it gathered a small crowd. I think there’s potential for a small chess club, but I don’t want to take on another corporate objective. I do want someone to set it up though, because I like playing chess and I like getting to know my colleagues better. If nothing has changed by March I’m going to start annoying people to start it themselves, but I’m committing to no more corporate projects until I’ve finished the ones I’m on for the moment. In the interim, watch these incredible geeks play chess in four dimensions and try not to let your brain squidge out of your ears.

I scored a ticket to Hack the Police and I’m immensely excited, because I love an opportunity to muck about in a novel context. I’m also going to Pushkin House, the Russian language centre in London, to be assessed on my Russian language.


A Russian-speaking friend has given me an appraisal of “like a five year old”, so I’m confident I’m ready for the intermediate class.

These are all part of my aims: I want to be a senior developer within 18 months, and I’d like to be an interesting and well-rounded person.⁰ Daytime language courses are cheaper than evening and weekend, so I’m going to do some rejigging of my hours in the new year to swing at least half a day off per week. A whole day off a week would be even better, but that would be such a blow to my finances that — ironically — I’d struggle to afford to do anything with that day off.

Purchasing a flat continues to be the most arduous task I’ve ever had to do, and now includes legalese. I hate legalese. I hate it so much because it feels like the purpose is to obfuscate meaning and humanity.

If that is the purpose, it can get in the bin, because meaning and humanity are all we have in this universe. The stars; the wind; the earth beneath my feet. All these are cold and uncaring and have nothing in common with me except chemistry. Let’s at least be humans to each other.

If that’s not the purpose — if lawyers truly believe that this is the way people like to have their lives laid out and ordered — then I volunteer to go up and down the country to shake them firmly by the lapels of their exquisitely tailored suits and say with force that it is not, it is not, nor will it ever be.

Here follows an excerpt from something I am supposed to swear that I understand.

The Seller shall at it its own expense procure that the Property be practically completed as soon as reasonably practicable to the reasonable satisfaction of the Buyer’s or its mortgagee’s (if any) surveyors in accordance with the Specification (subject to any amendments made under this Clause 3) and in accordance with planning permission and any planning agreements relating thereto (so far as they relate to the Property) and building regulation approval relating to the construction of the Property (subject to any variations made to them and to any amendments required by any local or other public authority) and to the standard of the Warranty Provider PROVIDED THAT the Seller shall not be liable to the Buyer for damages or any loss or inconvenience that the Buyer may suffer in the event that the Property is not ready for occupation on the Anticipated Handover Date which is as a result of any delays in the Property being practically completed in cases where such delays are beyond the reasonable control of the Seller.

What absolute cock. I put it through the excellent Hemingway app and after it had recovered it told me that:

  • 3 adverbs in a single sentence is too many
  • 6 phrases have simpler alternatives
  • And 1 (out of 1!) sentences was very hard to read
  • However: there were no uses of the passive voice. Good job!

WRITE FOR YOUR AUDIENCE. STOP MAKING PEOPLE ANXIOUS BECAUSE YOU WANT TO SHOW OFF HOW CLEVER YOU ARE.

THAT’S JUST HOW NERDS BULLY PEOPLE.

DON’T BE A DICK.

THAT IS ALL.


⁰ Yeah, it turns out it’s only easy to do one of these things.

Trying out serverless with AWS and Chalice

Hoo boy

You ever been nerd-sniped?

https://xkcd.com/356/

It happens to me regularly, and on Friday I was nerd-sniped by Jamie when he posed this into the ether:

System and data design is kind of my bag, so I immediately shot back that a database would be best but a web api would be super cool.

And then, because I’ve been itching to try out something serverless, I built a tiny proof of concept. Tiny in capability. It took me most of today to actually do.

Jamie pointed me towards a juicy dataset from the Department for Transport concerning road accidents. I threw three giant CSVs into a database, and then struggled to put them into an AWS relational database (RDS). Setting up a cloud-based database is difficult, because the default way of doing things appears to involve spinning up a separate machine to export data onto, as a sort of staging server, and then moving that onto the database server.

Eventually I hacked around it by temporarily opening the database up to everyone, frantically throwing stuff in there, and then locking it up again. It doesn’t seem sustainable. There’s another column in there that I don’t really need, but I can’t work out how to drop it without the enormous palava I went through just trying to get it on there in the first place.

It’s at this point that my brain does the thing that is the basis for a joke that I quite like.

Suppose you are given a phone with a smashed screen that seems otherwise to be working. What should you do if you wish to keep it? Naturally, the answer is to take it to be repaired, pay a fee, wait some time, collect it, and wipe it, ready for either resale or reprogramming. So far so good.
What, though, should you do if you are given a phone whose screen is unsmashed?
Simple: smash it, thereby reducing the problem to one you already know how to solve.

There are a number of variations on this joke, involving Newton and cats or physicists and kettles. The reason I’ve written it like that is because me — or that bit of my brain that gets itchy around imperfect systems — would very much like to just burn the thing I’ve built to the ground, because the solution to my current frustration is hard and unknown while rebuilding it is just hard.⁰

In any case: getting data into the database was very hard. Actually building a tiny little function to grab data and return it was easy: the whole code runs to about 30 lines. It’s also not much use at the moment. It just returns the primary key of an incident report, but does at least give a genuinely horrifying glimpse into the number of traffic accidents that happen on our roads: 129,982.

I’ve not open-sourced the code yet because it’s got details in it (bad practice), but I’m going to continue tinkering with it. I’m not sure how more persistent things, like a database connection or an object relational mapper, fit into this invocation model. Only one way to find out.

If you’d use an API like this, what data would your web application like to consume? Answers in the comments or to me on Twitter


⁰ I’m skating close to something honest about my romantic relationships, so I’m going to do a quick pirouette and skate in the opposite direction