2019: Personal Retrospective
2020 is going to be my year of writing more. I'm starting with a retrospective of 2019.
I started my 2020 by thumbing through Twitter as I often do, and often try to avoid doing. Between the technology and political tweets were personal 2019 reviews and retrospectives. In software development, we use the idea of the agile sprint retrospective). A sprint is a period in which you attempt to produce new features for your software application. A sprint retrospective is a team meeting when you discuss how the last sprint went. What went well, what could have gone better, and any actions to make sprints better. These personal reviews took this idea and applied it to their lives. Here is my personal 2019 retrospective.
What went well?Permalink to "What went well?"
One of my big goals every year is to spend quality time with Clare and our children. This year, we had a fantastic holiday to Disney World and Universal Studios in Florida. We planned to go in 2018, but issues with my feet changed our plans. While I had some toe issues before and after the holiday, we managed to walk for five miles on most days. A fantastic holiday! As the family loves theatre, we saw a surprising amount of musicals and plays throughout the year. The children also performed in four shows and I'm proud of how far they've come with their acting and singing.
Another major goal was to ensure I saw more of my friends. Once you hit your 40s, you end up with more family commitments so seeing old friends becomes harder. This year I had two major get-togethers with a great group of mates. The first one involved far too much gin! As we all head towards the wrong side of our 40s, I also managed to celebrate a couple of 50th birthdays. Music has always been a major part of my life and I saw more live music in 2019. Thanks to some tickets for my birthday, I saw The Midnight Hour in Liverpool. This ended with us meeting Ali Shaheed Muhammad from A Tribe Called Quest. A big-time legend from my hip-hop youth. It was also great to see the Loop Daddy himself, Marc Rebillet at Manchester’s Albert Hall in November. If you don't know who he is then Google him. Seeing a man improvising songs in a pair of boxer shorts, a silk dressing gown, and patent leather shoes is something to behold. Part comedy. Part sex symbol. Yet he's a brilliant musician and singer. One of the best live shows I’ve seen! The final gig of the year was Kruder & Dorfmeister. What I thought was going to be a chilled trip-hop experience turned into a middle-aged rave. Banging tunes and a great light show made it a fantastic night.
For the past three years, I've been a Software Engineering Team Lead at the BBC. This means that I build and manage high performing teams and don't write much code during the day any more. Most of my technology learning happens in the evenings after the kids have gone to bed (which gets much later as they get older!). I wondered how much software I wrote in 2019, so I had a look at my GitHub commits for the whole year. I surprised myself with the number of new technologies I picked up, most of which I hadn't touched before. These were:
- Google Cloud Platform
- Firebase location-based API which imports data from Airtable
- Shopify applications and Polaris
- Spark AR
- Markdown to Mailchimp email generation (as I dislike the Mailchimp WYSIWYG editor!)
- Open Graph image generation using serverless functions
- Zeit Now 2.0 (moving a Now v1.0 API to use their new serverless functions)
- Firebase serverless function to scrape Amazon book rankings
"Scratching your own itch" is always a good way to gain more knowledge of areas you're unfamiliar with. Since 2017 I've become an expert in building Messenger chatbot experiences and I've often used chatbot platforms like Chatfuel to build them. As I was consulting for a Messenger-based travel company, they were looking for cheaper options. This led me to build a solution using BotKit hosted using Google Cloud Platform. This was a fantastic learning experience for GCP App Engine, Cloud Firestore. It also allowed me to create a location-based API using Firebase functions and Airtable. Unfortunately, the chatbot isn't yet live due to a lack of money from the company involved. See also "what didn't go well"!
A big win for me this year was deciding to refactor my wife Clare's author website using Gatsby. The previous incarnation used Wordpress and needed some love. Gatsby also allowed me to learn some GraphQL in the process. This led me to build some Shopify integrations for my chatbot API and understand their integration. My chatbot API needed a bit of love this year as I'd left it to stagnate using the old Zeit Now 1.0 framework. This lets you deploy an Express server and spin up compute instances as needed. Zeit used to host the whole API this way. With their new Zeit Now 2.0, they pivoted to a serverless approach. The advantage of this allows the API to scale on a per endpoint basis. Yet, this requires a separate function for each API endpoint. While this was a big rewrite on my part, it made my application API much simpler. One observation I have of my 2019 project is that one learning moment leads to another. A problem or unknown solution in the first project often brought a discovery of a new technology which could help. I just wish I'd done more learning in public as Shawn "SWYX" Wang suggests.
My work life was pretty good for most of the year. The BBC launched one of its big diversity initiatives - the "Step Into Tech" scheme and I became an advocate and advisor for this. It was a 14-week training programme to teach the basics of software engineering to women who were looking for a career change. I helped to mentor four of the 2018 cohort and encouraged them to shadow our team to see what we did. With the help of a senior engineer, all four women made a change to our codebase. They deployed their changes to our live applications, something they should be proud of. One of the women joined us in September, and it's been rewarding to mentor and guide her new journey. I also ended up spending a lot of 2019 hiring and building up my engineering team. By the end of the year, I'd interviewed and hired four fantastic software engineers. Big thanks to my team for their help and support in this. A highlight of my working year was attending the amazing Lead Developer conference in London in June 2019. As a software engineering team lead, it's much harder to see the impact you make on a team as you no longer write code. This brought together some excellent speakers from the engineering teams across the world. It was fantastic to hear presentations from likeminded team leads, and to hear the challenges of building high functioning teams.
One of my biggest wins of the year was to use a habit tracker, a Google Sheet, to see where I was spending my time. I wanted to practice quantified self and so recorded statistics about my life for the whole of 2019. I tracked the parts of my life I thought I should improve, such as when I went to bed, when I exercised (or didn't!) and so on. One of these was reading. I've often found it tricky to stick to a regular reading schedule but by recording when I read, I tricked myself into reading more. I finished ten books in 2019 so that's a personal win for me.
What could have gone better?Permalink to "What could have gone better?"
After my near-death experience in 2014, I knew I should attempt to get more exercise. I've encountered a few health issues following my hospitalisation so I spent 2019 attempting to get fit. This began well but as has happened in the past, I wrestled with more issues with my toe. The amputation of my right great toe creates more pressure on the next toe. This means a greater potential for ulcers (holes) in it. It's a constant balance between more cardio exercise whilst avoiding further complications. My habit tracker showed that I spent 26% of my year exercising. I should have spent more time getting my bike in order and cycling but I didn't prioritise this. This would avoid any major impact on my feet versus running, which my podiatrist advises me to avoid.
Since 2017 I've become an expert at building Messenger chatbots. I acted as a consultant for a London-based travel company based in London at the end of 2018 and the beginning of 2019. This was a side-project which I hoped would lead to more consultancy work. I leveraged the BotKit framework to build a cost-effective bot without the cost of an external platform such as Chatfuel. While this was a great learning experience, I spent a lot of time working on the project to finish the required features. As the company is a startup, it had little spare cash and failed to pay my final invoices. Given the effort I put into the project, this caused frustrations on my part. I had a similar experience in 2018 where I built a Dialogflow and Twilio chatbot for an American entrepreneur and no payment materialised. It's made me realise that I need to become better at negotiating full payment and contracts up-front.
As well as developing a better reading habit, I wanted to build a habit of regular writing. I missed the mark with this with only 11% of my days spent writing. My one success here was writing and releasing a 30-page guide to JSON for chatbots (which you can get here). I failed to find my writing voice so this is a big goal for me in 2020.
Since late 2017 I've had plans to build an online course. I love helping people and want to share my knowledge with us to generate a side income from it. My JSON guide was my initial "lead magnet" to encourage people onto my mailing list but I failed to capitalise on this. I spent too much time thinking about what I should do rather than creating. I should have been releasing early and often and learning what people want. Paralysis by analysis happens far too often so I'd like to avoid this in 2020.
Plans for 2020Permalink to "Plans for 2020"
My main goal for 2020 is being addressed by this blog post as I plan to find my writing "voice". Since school, I've often told myself "I'm not very good at English" and "I'm much better at maths". I often write in my day job, be it technical papers or tickets, or emails to senior stakeholders. But I rarely write for a wider audience. The plan for 2020 is to blog more often and do a lot more learning in public. I'm will endeavour to write about the technologies that I'm learning, how I'm building my online course, and more.
As 2019 wasn't a great year for fitness, I need to get much fitter this year. As I enjoy cycling, I'm going to get outside more on my mountain bike, both alone and with the family. My wife and I are also trying to get the family into a regular habit of getting outside to walk more. We live near some beautiful countryside and it seems a shame not to see more of it. This will combine cardio exercise with fresh air which always helps to clear your head.
Since stomach surgery in 2014, I've had a more difficult relationship with food. I love cooking and have always enjoyed eating great food but I often struggle to eat well. I have to consume much smaller portion sizes and I'm often sick after eating. I now find meat more difficult to digest so I plan to lean towards a more vegetarian diet. This has obvious health benefits for me and also has the potential to help with climate change. I'd love to head towards a mostly plant-based diet but I like cheese too much. I've started the year as more of a flexitarian, with a much-reduced meat diet. I'll see where this year takes me but I may well be completely vegetarian by the end of the year.
This year I want to get some traction on my side projects and aim to make a reasonable side income through it. I'll be publishing more videos on YouTube and this will be part of a marketing push to drive more traffic to my website. I am committing to publishing a short course in the first quarter of 2020. I'll be doing some research in the next couple of weeks and aim to release an outline before the end of January 2020.
As well as spending more time with the family, I want to get back to some of my old hobbies. I spend most of my evenings reading about technology or writing new software. This hasn't allowed me enough time for non-tech related hobbies. I increased my rate of reading in 2019 and the goal for 2020 is to read twenty books. I also want to resurrect my old love of making music. I've not made any new tracks since the early 2010s so it's time to dust off the audio interface and MIDI keyboard and get back to making electronic music. 2020 could be the year I dust off the decks and get DJ Cruze rocking the house again. Watch this space!
I've set myself some audacious goals for 2020 but there's little point in not trying to better myself. I look forward to reviewing them all in 2021 to see how far I've travelled. Will I have achieved most of them? Let's see next year.
This post is inspired Knut Melvær, Jason Lengstorf, Justin Jackson, Steph Smith, and Madison Kanna, while listening to the wonderful French band Phoenix and the album Wolfgang Amadeus Phoenix. A classic from 2009.
I'm Marc Littlemore. I’m a Software Engineering Manager who loves to help developers to build quality software.
I can help you to learn more about software testing and intentional remote work.