I'm a product engineer working across commerce platforms and developer tooling. Most of my time goes to Shopify Plus storefronts for a portfolio of global brands; the rest goes to open-source tools for working with LLMs.
Day to day I build and maintain commerce storefronts on a shared Shopify Plus theme framework, where a change to a common component has to hold up across every brand that inherits it. That constraint shapes how I work: shared abstractions earn their place by surviving contact with brands that each want something slightly different.
Alongside the storefronts I build internal platforms: operations tooling with real-time features, deployment pipelines, and the monitoring that tells you when something has quietly stopped working. This is the less visible half of commerce engineering and usually the half that determines whether a team can move quickly without breaking things.
I prefer to ship something small and real, then let what I learn from it decide the next step. Most of the architecture decisions I'm happy with came from building a rough version first and finding out which parts actually mattered.
I care about the boring parts: error paths, cache behavior, what happens on the slow connection or the failed request. That's where systems actually break, and it's rarely what a demo covers.
Where an AI tool genuinely helps, I use it and say so. Where it produces something plausible that I can't verify, I don't ship it. This site's own agent-facing surfaces (a machine-readable API, an OpenAPI contract, an MCP manifest) exist because I'd rather build the thing than write about wanting to.
Outside of client work I build developer tools, mostly around LLM workflows: MCP servers, log compression for context windows, and utilities for the parts of AI-assisted development that are still rough. They start as things I wanted and couldn't find.
Everything I publish is source-available and documented well enough that you can run it without asking me questions first.
The claims on this site are meant to be verifiable rather than taken on trust. Employment history, skills, and project details are available as structured JSON, described by an OpenAPI contract, and the main pages plus every blog post and case study can be read as Markdown. If you're evaluating me for work, or you're an agent doing that on someone's behalf, those endpoints are the authoritative source, not the marketing copy.
Open to consulting, speaking, open-source collaboration. Send a message, or read the machine-readable version at /api/profile.