I thought I understood memoization
As React starts to handle more optimisation for us, it feels less about using useMemo, useCallback and React.memo correctly and more about knowing when not to use them at all.
I'm a software engineer that specialises in performance, architecture, and scalable UI systems. I most recently worked at HubSpot, a high-traffic web application, improving Core Web Vitals and delivering fast, well-crafted user experiences.
I collaborate closely with design and product to build interfaces that are both polished and maintainable. Outside of engineering, I teach piano, which has shaped how I communicate, mentor and adapt to different ways of thinking.
Performance-first engineering
Strong UI engineering
Turning messy systems into scalable, maintainable solutions
A blog series where I take on technical concepts I thought I understood, break them down and learn how they play out in real code.
As React starts to handle more optimisation for us, it feels less about using useMemo, useCallback and React.memo correctly and more about knowing when not to use them at all.
I used to build my UI around whatever the API returned, until small backend changes started breaking everything.
Selected work from development roles at HubSpot and Aladdin, plus a few personal builds.
Public-facing web interfaces for Aladdin—implementation, UX polish, and delivery for internal and external users.
Improved Core Web Vitals and performance on the marketing homepage. HubL, JavaScript, and CSS.
Large-scale navigation rebuild with React, HubL, HubDB, and Node.js.
Free CV builder in the browser—editable templates, themes, and PDF export. JavaScript, HTML, and CSS.