image by Kelly Jean

Year in Review 2017

This is the first one of these I’ve done. It’s all part of trying to be more cognisant and reflective of what I’m actually doing with my time. And to write more, so in writing I can know what I actually think.


Mostly taken up with three things:

  1. Starting with the lovely team at CoverageBook
  2. Working on a large Rails upgrade for BreatheHR
  3. The aftermath (both administrative and emotional) of my Dad’s death.

I definitely slightly broke myself. Probably booking myself slightly more than full-time in the aftermath of Dad wasn’t wise. I’m pretty sure the constant cold and flu I endured through to late Spring was a direct result of the stress I put myself under.


Started out with a relatively limited engagement of a couple of days a week, but during the summer increased to about three quarters of my working time.

It’s frankly a joy to be working with these fine people. The product, as viewed from inside the team, needs a lot of love. But it solves a huge problem for the PR industry very effectively, so the business’ growth has continued.

In the technology team we have a much better understanding of the domain than when the application was originally architected. And now we’re working on several awesome things to improve the lives of PR professionals by removing the ‘shit work’.

Jon Markwell, my LTV co-organiser, has helped Gary Preston engender a very reflective micro-culture inside the larger Propellernet agency. I feel I’ve been pretty successful at performing the dual roles of ‘pessimism coach’ to the two developers and as an individual contributor to the performance and architecture side of things.

Bringing my hard-learned previous mistakes to ‘vigorous’ code review and helping improve the app under the hood is going to pay dividends for the team in 2018.


Worked successfully, with Tadej, to drag a Rails 3 application into the modern era. Involved a large amount of ‘test writing’ and ‘gem updating’ as well as bringing rigor to our (and then their) development process.

Learned a lot of techniques for bringing Rails apps up to date, that sadly I haven’t managed to reuse on any other client work. I did manage to use the skills to upgrade CoverageBook and another smaller project to Rails 5 though.

The other thing I was relatively proud of in this engagement was the accuracy of our budgeting and scoping, then delivering under budget and time to the project.

It was a big help for me to have another human constantly check that I wasn’t over-engineering and was indeed only updating the things we were contracted to do. It’s too easy in a new and challenging, ‘middle-aged’ application to dive off into ‘fixing’ things when that isn’t actually what’s required at that point.


Mostly taken up with the second Life.Time.Value.Conference and the preceding months with recording podcasts (dead) with the speakers.

I really enjoyed interviewing the interesting humans we’d chosen to speak, crushing my usual need to leap in and leave more silence fo the guest, knowing that this conversation most definitely wasn’t about me. I even dabbled in the editing myself - a challenge and a time sink although I think the results were better than when I outsourced it.

I’d love to do a little more podcasting stuff in 2018.

The conference itself was a bit of a struggle financially for us both. The lack of sponsorship and thus high ticket price means selling tickets is super-hard. Plus the timing with respect of school holidays could’ve been better.

We even struggled to sell tickets to a terrific email & personalisation workshop run by Brennan Dunn. This was one of the highlights of the conference for me and everyone else who attended. I got two things out of it: a re-affirmed commitment to emailing more and a bulletproof launch sequence for Brighton Ruby that generated £7,000 in ticket sales in a week.

I’m not sure whether workshops are just harder to sell in the UK. I know of a couple of other really good workshops both attached to conferences and stand alone, that have struggled. This is just anecdotal, I don’t have a good sense as to whether the experienced UK developer just doesn’t see the value in these kinds of things.

As for the event I also felt we somewhat struggled bridging the gap of the two audiences: individual ‘digital product’ people and more-established bootstrapped SaaS owners. Making it useful for both groups of people is tough, the SaaS people want practical takeaways and don’t enjoy the more ‘why’ or aspirational talks – they’ve already bought in.

Change is afoot on the LTV side of things for 2018.


I got a Nintendo Switch. Which is my gaming highlight of the year. I imagine it is others too. Began with the slightly intimidating Zelda, of which I have still barely grazed the surface.

Other highlights:

Mario vs Rabbids a super-weird concept which scratched a very XCOM-shaped gaming itch for me.

Mario Odyssey, my first Mario since Mario 64. Packed to the gills with invention, delight and joy and it just feels right. I am genuinely envious of the coding abilities of the people behind it.

Also enjoyed Steamworld Dig 2 and Golf Story on the Indie side of things.

The game that brought me the most joy was Mario Kart 8, played with Dot on the National Express returning from Heathrow in November as if we were in a Nintendo advert. But even more enjoyably, thanks to it’s super helpful kid-friendly control options, I was able to play a game or ten with the kids.


Managed to deliver a new talk ‘The Impermanence of Software’ at ShipIt (dead), the conference formally known as Nordic Ruby.

It’s an idea I’d tried to submit to RubyConf and RailsConf in the last year which had been knocked back. I’d realized that lots of the work I’d done in my career was gone. For good. And all the good programming technique in the world wouldn’t have saved them. So what does that mean?

The talk went as well as I could’ve hoped to the small, but perfectly formed audience.

ShipIt was great. CJ runs a friendly & thoughtful event and, as at every conference I made new friends and re-enforced friendships over the conversations I had in Gothenburg.


July means Brighton Ruby. An increase to the capacity, 400 attendees, and a bigger room in the glorious Concert Hall at the Brighton Dome. Thanks to half the Dome being under construction, looks like it’ll be the same next year.

The talks were delivered with great professionalism, a couple of speakers succeeding despite having to deal with significant technological issues between new MacBooks and the projector. There’s nothing worse as an organiser than watching a speaker struggle with their technology, knowing you can’t do much to help them.

I found the day personally stressful due to these tech issues, plus enhanced security bag checks meant we started late and mostly stayed that way. I think the bad feeling was mostly me though, the feedback from attendees was as good (and occasionally varied) as in previous years.

It remains a personal highlight each year, and I’m fortunate to be running an event for such a friendly and generous crowd. That said, it does leave me physically broken, could be the private karaoke room in the evening though.

On a financial note, this was a year where I did really well, rather than ‘cover my time at roughly my day rate’. This was entirely down to a couple of last minute sponsorships meaning I sold them out in the two weeks before the conference. I normally budget and expect about half the sponsorships to sell, which gives me financial stability.

I’m not expecting such a good year with the return of other UK Ruby events. I’ll keep running the event in a similar way while people still want to come.


I investigated a ‘camp’ or ‘retreat’-style event as another Ruby-focussed meetup but couldn’t work out a way to make it work in short timescales or for a price and ‘kind of thing’ that people were looking for.

I still hope to be able make an in-person thing that’s very different to Brighton Ruby, but I need time to do it alongside the existing day.


I stumbled back onto the Basecamp article about selling your byproducts.

I’m doing a lot of code-review at CoverageBook so I was writing a lot about small code decisions. I figured there must be a way for this content to be more useful to a wider audience than our small team so… One Ruby Thing was born.

I started sending them in October but the writing began in earnest in September. I enlisted my friend Nadia to help make my writing clearer, and she’s done a tremendous job in asking clarifying questions and improving my writing.

I set myself the target of writing and shipping an email (and permanent post) every two weeks and the cadence on the production side seems to be sustainable, there’s often a number of revisions.

I’m really pleased with the format; sometimes the topic I’ve written on turns out to be two or even three emails. The format forces brevity and clarity, which avoids the tendency to ‘bloat’ that has often prevented publication of my writing in the past.


RubyConf in New Orleans. I submitted the slightly tweaked abstract for ‘Impermanence of Software’ hoping I might get a chance to give the talk to a larger audience, plus I was really hoping for an opportunity to visit a place my Dad visited a couple of years before and loved.

I heard back that I’d been selected to speak via the standard CFP process but then a couple of days later a personal email from Marty (one of the RubyCentral directors) asking if I’d like it to be a keynote: the committee had specially selected my talk.

A keynote. At RubyConf. Astonishing.

I was incredibly fortunate to be in the position of having given the talk before, so I knew it broadly worked and I didn’t suffer the pre-conference panic of “can I even write this thing”. I even had the opportunity to give a version to Sarah, who gave me some terrific ‘polishing’ feedback and help me to add even more connective tissue to really pull it together.

Sarah, as a director of RubyCentral, introduced me and opened with the the story of our first meeting, nearly eight years ago in Singapore. Then… it was time.

I’d had some technical difficulties in the minutes before the talk as the projection setup meant my laptop wouldn’t co-operate. I was racing around in the minutes before beginning, trying to ensure I could present at all and that was wearing a decent shirt!

I also had audio issues at a pivotal moment of the talk. Years of conference organisation meant I was able to fix the problem without it breaking my stride too badly or projecting my internal freak out. On the video I look remarkably calm! I was not calm.

There really isn’t words to describe the surge of adrenalin that resulted from giving the talk to 900 people, getting them to laugh in the right places and then see their applause. People stood during the applause. People said they cried. Typing that, even with this distance of time and place, brings up a lot of feelings.

People I hugely admire, who’d been on that stage in previous years, came up and congratulated me and said incredibly supportive things during the remaining days of the conference. Truly gratifying and humbling.

I’d had some worries that Chad’s keynote the afternoon before might cover some of the same ground, but he was kind enough to adapt his existing talk and “leave room” in the topic, he’d seen it before in June. The final keynote, by Sandi, also wound into the more existential themes in the preceding talks.

In the end the three non-Matz keynotes wound a coherent thread through the conference. It looked planned, but it wasn’t. Just one of those wonderful coincidences.

I think of the conference speaking as a ‘work-adjacent’ hobby. The act of writing and performing a talk has nothing really to do with slinging code or coaching other developers, but it clarifies and expands my thinking on the work I do and joins it up with the rest of life; certainly when doing talks in this vein. I also like the challenge and the break from the ‘normal’ day-to-day and a chance to hang out with my “work colleagues I’ve never worked with”.

I also had a fab time hanging out (in person) with many existing “conference friends” and meeting many new and excellent humans – the Ruby community’s people really are it’s strength. There was even time for some awesome bus-based New Orleans sight-seeing with Dot before we headed home.


I crashed into Christmas feeling dragged all over the place. Looking back over this article I have been filling the year up with activity. Work is full of new projects and ideas. Kids are exhausted from their first term at school. Life felt slightly overwhelming approaching the anniversary of Dad’s death.

Over the holiday break I’ve taken the opportunity to wake before the kids, having used them as my alarm for the last few years. I’m using that time for a little bit of yoga, reading, writing and meditation. All in the quiet before the madness of everyday life.


I’m reprising “The Impermanence of Software” at Ruby on Ice and BathRuby (dead). CoverageBook continues. Brighton Ruby runs again. In terms of new stuff, a complete year of “One Ruby Thing” would be an excellent achievement.

The one thing I need to do is take better physical care of myself. Early waking continues and I’m going to book exercise into my diary for fear it won’t happen.

Last updated on January 1st, 2018 by @andycroll