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.
2021 has now drawn to a close, and here's a retrospective and roundup on the things I'm most proud of:
After making significant contributions as a mobile engineer in the onboarding team at Mettle, I was given the fantastic opportunity to lead on a greenfield project - the Mettle Web Application which was, as you can probably guess, a web version of the Mettle iOS / Android apps.
My role as technical lead was two fold. First, to lead a cross-functional squad of engineers, designers and product managers (in a technical capacity) and secondly to architect and lead the technical development of the web app, including working with the wider Mettle engineering community and senior stakeholders. I built many of the features myself, and mentored junior engineers in my team to become effective contributors to the project.
Having spent the previous 2 years building mobile applications with React Native, I found myself building a web application again. This meant that I had to quickly catch up on the latest web technology patterns, libraries and tools. Those who work in web development will know how much can change in just two years!
As part of the Mettle Web App project, I helped design and implement a bullet proof design system that, once built, enabled developing the rest of the project much, much quicker. The design system was built and showcased in Storybook, supported light/dark themes, had visual regression tests (with Loki) and enabled engineers in my squad to deliver the web application far quicker than originally planned (and, importantly, with design consistency!).
Building a web based banking application has many security implications. One of the biggest aspects was designing a robust, phish resistant authentication flow that was still very user friendly. We took inspiration from other banking web applications to design a simple yet robust authentication mechanism that leveraged the Strong Customer Authentication implementation in the Mettle iOS / Android applications. This project was also the first project where I worked with an external penetration testing company (we passed with flying colours 😅).
One of my primary goals when designing the architecture of the Mettle Web Application was to reduce the reliance on manual QA testing as much as possible. In order to do this, I divised a testing strategy comprised of unit testing (with testing-library), visual regression testing (with storybook and loki), integration testing (with testing-library) and end-to-end testing (with cypress). The result was outstanding - we did not have any bug reports in the first 2 months of use by customers when the app hit production.
I've been dealing with wrist pain from RSI for many years now, and have invested in a number of solutions to help alleviate it. The biggest thing, by far, is the ergonomic design of the keyboard I was using. So... I built myself a split, 34 key, completely custom keyboard. You can read more about it here.
Here's to 2022 🍻