What the ten years were spent building
Seven systems that were harder than they looked, each given by the problem it had to solve and the stack it was solved in. No performance percentages, because a number nobody outside a project can check is not evidence, it is a claim wearing a decimal point.
A national social welfare programme, on a phone
A mobile application built from nothing, plus the custom back-office modules behind it, so field staff could record the health, nutrition, and education conditions that release payments to poor households. Node.js, Vue, TypeScript, Capacitor, and Odoo.
Field data that syncs when there is no signal
A synchronisation library for both client and server, built on event sourcing, so household and beneficiary records could be created and changed with no connectivity at all and reconcile later with the audit trail intact. Node.js and TypeScript.
A citizen entitlement app moved onto a new backend
A live application refactored onto a replacement backend without a rewrite, against legacy code and a fixed date, while the people who depended on it carried on using it. Vue, TypeScript, and Capacitor.
A video platform for the financial services sector
Acting team lead, from the first architectural decisions on both sides of the stack through search and into delivery. React, Redux, Socket.IO, Fastify, MongoDB, Elasticsearch, and AWS.
Lending, inside a retail bank
Features in a bank's lending platform, where a conflict between two requirements is a compliance question, not a preference, and the requirement has to be resolved with the product owner before a line of it is worth writing. Plus the internal tool that let engineers jump straight to any application state, which took most of the manual clicking out of regression testing.
A geospatial application already in trouble
Map rendering stabilised under a live feed of real-time points, then front-end code refactored across the two different frameworks that were sharing one codebase. The first legacy rescue, and the reason that service exists here at all. OpenLayers, React, and Angular.
Mobile products carried through breaking upgrades
Four applications taken up to current framework versions, including the breaking changes in the native Android and iOS libraries that upgrades like that always uncover, and crashes traced down into the native bridge. The unglamorous work that decides whether software is still alive in three years.