Expertise
Fullstack isn't a label for me — it's how I think. Most of the interesting problems sit on the boundary between the front end and the back end: a form that has to validate the same way in two places, an optimistic UI update that has to roll itself back gracefully when the server disagrees, a permission model that has to make sense to both the API and the UI. Working across the whole stack means I don't have to throw the problem over a wall to solve it — and the data layer gets the same care as the UI: sane indexing, query plans that hold up, migrations that survive real scale.
Most of that last decade has been in eCommerce, and the part I know coldest is payment integration: wiring up gateways and PSPs, taming webhooks that arrive out of order or twice, and building idempotent checkout flows that never double-charge. I've lived in the parts that get genuinely hairy — recurring billing with proration and failed-payment retries, and marketplace split payouts across sellers, with chargebacks and disputes to reconcile after the fact. Money is the one place where "mostly works" isn't good enough — it's where a security-first mindset stops being a talking point and starts being the whole job.
Not all of it is heavy machinery. I build the surface people actually see and touch — scroll-driven landing pages, media-heavy galleries that don't choke on a slow connection, dashboards that turn a wall of numbers into something an operator can act on without scheduling a meeting about it — on top of boring, well-supported infrastructure where the interesting decisions live in the application code, not in arguing with the deploy.
AI is part of how I work now — not a novelty bolted on. I use it to draft, to refactor, to argue against my own assumptions before I commit to a design. The judgment still comes from a human who's done the work for years, but the gap between an idea and a working prototype has never been smaller.