Senior Software Engineer at ANNA Money (2024-08 – Present)
- Led TypeScript and React architecture across support and customer applications, including a migration from Redux to MobX that reduced boilerplate and helped backend developers build frontend features safely.
- Introduced Protobuf as a shared source of truth for API contracts and built type-generation scripts adopted across all engineering teams. Improved type consistency across backend services, web applications and Swagger documentation, making the chat UI easier to extend and supporting the new Flutter app.
- Contributed to Python backend microservices and guided API contract design to keep frontend integrations aligned with backend behaviour.
- Created concise architecture and convention guides for engineers and AI agents. Built Claude skills that referenced these guides and used structured questions to guide feature creation, test setup and final code review.
- Embedded engineering conventions in automated guardrails and shared packages. Built Node.js and shell tooling to standardise testing, deployment and repeatable development tasks, reducing friction in feature delivery.
- Improved WebSocket communication and introduced event-bus patterns so that actions consistently activated the correct part of the application. Helped investigate and resolve production incidents.
Senior Backend Engineer at Aforza (2023-01 – 2024-08)
- Developed domain-driven microservices in TypeScript (NestJS), using GCP, Kubernetes, PostgreSQL, MongoDB and Pub/Sub to support asynchronous backend integrations.
- Designed and built the backend for an AI chat capability that became a core product feature, using specialist agents and custom tools to answer questions about media assets, metadata and integration results, and compare images within the same tenant when requested.
- Mentored and trained frontend and backend engineers, guiding architecture and testing decisions and helping the team apply engineering conventions consistently.
- Designed event-driven workflows across product features and third-party integrations, connecting image manipulation, watermarking, text detection and shelf scanning, with AI summarisation available at different stages.
- Built custom tools defined with JSON Schema over REST APIs, using Swagger contracts and typed HTTP clients to connect AI actions to application capabilities.
- Shifted backend testing from brittle, mock-heavy snapshots towards behaviour-focused tests, using fakes and simulators for external services and table-driven tests to cover more than the happy path. Reduced test failures from minor changes and time spent maintaining tests, while embedding TDD in new and actively developed services.
Senior Backend Engineer at iCrossing (2021-10 – 2022-12)
- Stabilised a PHP / Laravel monolith for a major UK leisure-sector client, resolving critical bugs and improving performance, reliability and maintainability.
- Acted as the principal technical contact, translating client priorities and constraints into delivery decisions while maintaining high test coverage and reliable releases.
- Helped migrate the application towards microservices to improve developer experience, separate responsibilities and create reliable, testable replacements for legacy functionality, with horizontal scaling as a design goal.
- Delivered TypeScript / Node.js services and React applications for membership sign-up and onboarding as part of the migration.
Software Engineer at Imaginet (2021-04 – 2021-10)
- Owned PHP backend development across unconventional legacy systems, independently planning and delivering critical fixes and new features.
- Implemented a new payment platform end to end across multiple staged environments, taking full ownership of the technical decisions, development and delivery.
- Laid the foundations for an application that wrapped and orchestrated third-party systems, applying pragmatic design patterns to create a maintainable base for further development.
Software Engineer at New Directions (2019-04 – 2021-03)
- Led operational software delivery from stakeholder discovery and solution design through implementation, deployment and ongoing support.
- Built React and Laravel booking systems, management tools and automation that reduced manual work across multiple teams.
- Planned and executed releases to on-premises staging and production environments, scheduling deployments to minimise operational disruption.
Lead Developer at Bigg Media (2018-06 – 2019-03)
- Led full-stack development of a lead-generation SaaS platform, building Node.js APIs and React interfaces for a template-driven landing-page builder integrated with Google Ads.
- Planned work, mentored engineers and provided day-to-day technical support across the SaaS platform, traditional websites and CRM systems.
- Owned code reviews and security fixes across client systems, while coordinating technical decisions with design, project management and the CTO/founder.
Frontend Developer at DDB / Popcode New Media (2017-02 – 2018-03)
- Delivered modern frontend applications for T-Mobile, McDonald's and a national hospital using AngularJS and Angular 2+ with TypeScript.
- Translated professional design assets into pixel-perfect responsive interfaces across mobile, tablet and desktop.
- Owned frontend technical design and implementation decisions, integrating applications with REST APIs backed by varied server-side technologies.
Full-Stack Developer at Travelsoft (2014-11 – 2017-02)
Delivered internationalisation, theming, product features and a JavaScript booking-system integration layer.
Full-Stack Developer at Freelance (2009-06 – 2014-10)
Delivered web and ecommerce solutions for agencies and small businesses, covering development, delivery and ongoing support.