Expertise: product engineering, platforms, and production AI
The stack is a means. What I am actually good at is putting a system into a shape a team can change, under constraints that do not care about fashion. The list below is where that has been applied, not a list of logos I once compiled.
Frontend and product surfaces
React and Next.js for product UI that editors and users actually run — including design-system work and CMS-driven components (Sitecore XM Cloud, Contentful, and similar). TypeScript as the default. I treat the front end as part of the system: preview, performance, and failure, not only layout.
React · Next.js · TypeScript · design systems · headless CMS fronts
Backend, APIs, and data
Node.js services — NestJS, Express, tRPC — with typed contracts, PostgreSQL, MongoDB, Redis, and the integration work that usually is the project. I have designed microservice paths where the load was conversational and the budget was not infinite; I will not split a monolith for sport.
Node.js · NestJS · GraphQL · tRPC · PostgreSQL · MongoDB · Redis
Cloud, delivery, and operations
AWS, Google Cloud, Docker, Kubernetes where the team can operate them, Vercel for front-end delivery, Azure DevOps and GitHub for the path to production. CI/CD and observability are part of building, not a later discipline.
AWS · GCP · Docker · Kubernetes · Vercel · CI/CD
AI and LLM systems
Integration of models into existing products: structured outputs, retrieval, tool use, evaluation, and cost. I have worked on an enterprise LLM benchmarking platform and on AI-native GTM and retrieval products. I will argue against a model when rules are enough.
LLM integration · RAG · agents · evals · inference cost
Content platforms and live migrations
Headless architecture and staged moves off ageing CMS and commerce stacks — Sitecore, Umbraco, Magento — onto current fronts without switching the site off. Data integrity is the unfashionable centre of that work.
Sitecore XM Cloud · Contentful · Strapi · WordPress · migration pipelines