Matt Andrews

Learnings so far after leaving my old job

10 Sep 2015

It's been three months, give or take a few days, since I left the Guardian—and London—to move to the BBC (I know, how imaginative...) in Birmingham. It's flown by. Tomorrow I'm off for a visit to the capital where I'll be seeing some former colleagues I haven't seen since I left. Thinking about that has made me reflect on what I've learned so far.

The most immediate thing that stands out for me is that I've hugely upped my game, tech-wise. It's counterintuitive: I'm the only developer on my team and don't work directly with any other technical people. Really, I should be stagnating: there's no omniscient senior dev or meddling software architect for me to learn from or query. Nobody is reviewing my pull requests (in fact, I'm mostly committing everything directly onto master... sorry, Roberto). Any technical decision my team needs to make is mine and mine alone – unlike at the Guardian, where this was rarely (if ever) the case, and any decision I did argue for was frequently challenged and queried by others.

On the other hand: being a solo dev in an organisation the size and scale of the BBC has forced me to drop some lazy habits and delegation I'd become used to relying on at the Guardian. True story: even at the point that I left that role (in June of this year), I still didn't really have much of a grasp of what was going on behind the scenes when I hit the "deploy" button on our app. I didn't know how to set up a new build process for a brand new app which would take code from my machine and plonk it onto the internet. Jesus, I'd never even used Heroku.

This was because I didn't have to worry about those things. Other people did; often the groundwork for projects was already laid when I joined them and cleverer people than me had sweated over the fine details so I could mash the "deploy" button and go and buy an overpriced coffee while my code was hitting the servers. Clearly those skills (and tasks) existed within the Guardian but I never quite got around to picking them up. We did have vague training schemes for them and doubtless most of my colleagues would've been happy to walk me through these tasks when asked, but quite a lot of the time it was taken as an assumption that I either a) already knew how to do them, or b) would "self-select" and skill up on my own.

Clearly I was getting lazy and unmotivated and I think this is partly what prompted me to realise I needed a kick up the arse and to get out of that environment. It took this move – a leap of faith, really – to force me to learn what I'd been putting off.

In many ways it's been the most challenging period of my developer career so far. The BBC has a huge, complex tech stack built over long years and hard-learned lessons. It's called Cosmos and sits atop AWS for various complex legal reasons. Because my team was a new one with no existing tech stack (and no other developers, let alone operations support), it was my job to get to grips with Cosmos and figure out how to get my silly little apps onto the cloud.

It was painful. I wrestled with internal wikis, plagued IRC channels, roped generous remote colleagues into answering my rambling questions and eventually worked out that my lack of a developer certificate on my machine was why I couldn't get half of it to work was a problem I needed to solve. I had to learn what a VPC was, how to configure CNAMEs in Route53 and automate build jobs from Github to Jenkins to the cloud. And I did it.

Now, it probably took me twice as long as most more competent developers would've taken, and doubtless there are still rookie errors and configuration bugs I've yet to spot which will cause me troubles down the line. But the main thing for me is that I've definitely "levelled up" as a developer in a way that I was never going to do at the Guardian. That's likely down to me – when I get unhappy I tend to disappear into my own little world of moodiness and introspection, and by the time I recognised it at the Guardian I was too frustrated to want to solve my problems there and it was better just to leave. No doubt I could've learned all these things there too, but the comfort factor of sticking to what I already knew was too easy and the lack of management support meant I wasn't being challenged to do this myself.

I should also say that the BBC itself is great at teaching these things: there's actually an official internal training course (a proper, real-life event lasting two days) to learn about Cosmos, which I'm booked onto. New developers typically get a better start than I did because they'll be joining established teams (or at least reporting to other technical staff who know the workarounds and timesinks from tried-and-tested experience).

I don't regret my experience so far because it's taught me to learn to solve these things myself – and as I hinted at above, I have almost complete freedom to decide what I work on, how I build it and when it's "done". With great power comes great responsibility, of course, and I'm conscious that left unchecked this will start to see my work decline if I get blasé about my code, but in general right now I'm feeling like uprooting myself from my comfort zone has been one of the best things I've done in a long, long time.