Software engineers are familiar with the process of retrospection at the end of a sprint of work, it helps to keep ourselves honest with how we're performing and it acts as an opportunity to look back on what we're proud of achieving.
2020 has now drawn to a close, and here's a retrospective and roundup on the things I'm most proud of:
Like many in 2020, the COVID pandemic meant that I had to quickly adjust to working remotely. Fortunately being a software engineer means most of my work and communcation was already asynchronous and it was relatively effortless transitioning to working fully remotely.
It's ironic. When I was young, I was convinced I would never work a standard 9-to-5, let alone at a "stuffy" bank. I could not be more wrong. I joined NatWest as a senior mobile engineer building React Native applications in a cross-functional product team 😎 working on some of the coolest stuff I've ever worked on.
Volatility in start ups is a certainly a thing that you often hear about. However, I was under the naive assumption that working for a big banking insitution resulted in some level of responsiblity. I was shocked to hear that just 5 months in to my stint at Bo, the decision was made to shut it down. I was involved in the process of updating the website to notify our customers of the news (something that I had to do just hours after the news was announced to internal staff).
After Bo, I joined Mettle as a senior mobile engineer. Although Mettle was another venture bank within NatWest, the culture, tech stack and ways of working were very different! I joined a cross-functional product team improving the Onboarding experience for Mettle's mobile application.
I quickly learned GraphQL (both server and client) including code generation, schemas, dealing with breaking changes and the ins-and-outs of contract testing using PACT.
Mettle's onboarding journey is super complex, and it had a proprietary state machine implementation powering it. This state machine operated on a blob of JSON data to determine which screen to show the customer based on the information they have entered, and supported rehydration so that the customer could quit and app and return later where they left off. Very cool!
I became obsessed with how to implement such a state machine (particularly because the implementation at Mettle was overly complex) and as a result, I built Machi.
Mettle's mobile application was written in FlowType. Most engineers there didn't like it, and would have preferred to use TypeScript instead. I took the lead on planning and executing a codebase-wide migration from FlowType to TypeScript at the end of the year.
Here's to 2021 🍻