Backend & Services
Reliable services, integrations, and clear interfaces.
From estate agency forms to event-driven platforms, here's how I went from googling error messages to building large-scale systems.
I’m a backend focused engineer who enjoys building systems that are reliable, well structured, and clear to reason about.
I work mainly with Scala and TypeScript, and I’m naturally drawn to strongly typed languages like these, as well as Go and Java, because they encourage thoughtful design and help catch problems early.
Mentoring and sharing knowledge are things I genuinely enjoy, and I work best in teams that care about engineering quality, good practices, and building a product they can be proud of. My interests include distributed systems, event driven architectures, integration challenges, and the discovery phase where ideas get shaped into something real.
Reliable services, integrations, and clear interfaces.
Infrastructure, automation, and reliable delivery.
UI engineering with a practical, developer-minded approach.
My journey into software development started somewhere unexpected: a busy estate agency in Hammersmith, West London.
One afternoon, the client system we used (Dezrez) kept throwing an error whenever I tried to save anything. Rather than give up, I went home, Googled the error, and down the rabbit hole I went. That search led me to a YouTube ad for a Java course on Udemy... and the rest is history (well, still in progress).
I enrolled at Kingston College to study Access to Computing, where I got my first real taste of programming with VB.NET, databases, early web development, and algorithms.
From there, I went on to the University of Kent, where things really clicked: Java, Go, Erlang, concurrency, APIs, distributed systems, even early ML concepts. It was the first time I felt like I could see the entire landscape: not just how things work, but why they work.
A year at Eli Lilly gave me my first hands-on exposure to the world of cloud infrastructure: AWS, Docker, Kubernetes, CI/CD pipelines, and the reality of working in a large organisation.
That was followed by a role in software development where I built front-end apps in Vue and React, APIs in Express, and even implemented OIDC single sign-on using Passport.js.
At Profile Pensions, I plunged straight into a microservices world: GraphQL services, Express APIs, Firestore, Mongo with Mongoose hooks, and an increasing number of asynchronous patterns using GCP Pub/Sub and RabbitMQ. I even found myself diving into Helm charts and Terraform whenever a deployment or config chose chaos.
Over time I shifted heavily into the front end, working closely with brand and UI/UX to turn Figma designs into pixel-perfect React apps. That period taught me a lot: attention to detail, the importance of visual polish, and the fact that designers can somehow spot a 1px misalignment from across the room.
The start-up environment gave me autonomy and room to grow; I led projects, experimented with new tech, and worked across the business to help ship key products. I also collaborated closely with DevOps, helping introduce ArgoCD for clearer deployment visibility and learning my way around Kubernetes by debugging whatever strange issue popped up that week.
Today at Moneyfarm, I work as a backend engineer in a larger multi-squad environment where every workflow interacts with something downstream. I build pension and investment features in Scala and TypeScript, and work with versioned and public APIs where decisions have real business impact.
There is a different flavour of complexity here: Kafka-driven events, system boundaries, cross-team ownership, and conversations with software architects that force better reasoning about design and long-term evolution. I am also continually making peace with functional Scala: Cats, type gymnastics, syntactic magic, and the rest. It has been an ongoing exercise in thinking more rigorously, writing more intentionally, and engineering with more awareness.
Looking back, I started out trying to fix one broken form and ended up building systems designed to handle thousands of them. I still haven’t solved that Dezrez error, but maybe that’s what keeps the story going.
Backend Engineer
Working across Scala and TypeScript to build and integrate pension and investment features within a large, multi-squad platform. Contributing to event-driven systems and helping evolve services used across multiple Moneyfarm products.
Full-Stack Engineer
Developed key customer journeys for pension onboarding and transfers, working across Node, React, GraphQL, and cloud services. Helped modernise internal tools and improve platform reliability as the company scaled.
Software Engineer
Engineered internal web and authentication foundations that became widely used across teams, improving consistency and speeding up development throughout the organisation.
BSc Computer Science with Year in Industry
Distinction-level degree focused on functional/OOP programming, web, data structures, and databases; led peer groups and society events.
Access to Computing
Completed a broad computing programme covering programming, databases, web development, and computer architecture, achieving Distinction. This course provided the foundation that enabled me to progress into Computer Science at university.