From spec to deploy — state design, data flow, edge cases, telemetry. Not just components in isolation.
I join product teams as a frontend engineer and own features from the first product conversation to production. I'll make the calls that need making, and I'm on the hook for how they turn out.
End-to-end feature ownership in React and Next.js. I take work from product conversation to production — building user-facing flows, complex state, and the architecture that holds them together. TypeScript-first, component-driven, with state managed in Redux or Zustand and performance treated as a first-class concern, not a cleanup pass.
Admin and operations interfaces that teams actually run on. Configuration UIs, data-dense dashboards, complex tables with filtering and bulk actions, role-based access — turning business logic into something operators, finance, and content teams can trust and move fast in.
AI-powered product surfaces built to feel reliable, fast, and product-grade — not demo-grade. LLM integrations, streaming responses, agent and assistant UIs, semantic search, prompt and tool orchestration. The layer where AI stops being a feature flag and starts being a product.
Shared component libraries, design tokens, and frontend infrastructure that scale with the team. Consistent patterns across products, documented primitives, and the kind of foundation that makes every next feature ship faster — not the kind that quietly forks and rots.
Marketing sites and product landings in Next.js or Webflow, built to convert without looking like every other AI-generated template. The stack call depends on who owns the site after launch. Fast on Lighthouse, accessible by default, considered motion, and a CMS the marketing team can run without calling an engineer for every campaign.
Initial conversation on product context, team setup, constraints, and what success actually looks like.
Written approach: phases, technical decisions, dependencies, how the work plugs into the team's existing flow.
In your repo, in your tools, in your team's rhythm. PRs, design reviews, async by default. Decisions owned, not deferred.
Production hand-off with docs and context. Continued involvement for iteration, follow-up work, and what comes next.

Recently I built a Notion-like app with AI features and a creator analytics dashboard that leaned hard on real-time state. Both were mostly about wiring messy APIs into interfaces that still feel calm to use. What I care about most is clean data flow and code the next engineer isn't afraid to open. The smallest button or hover state is usually where I have the most fun.
Looking for a full-time role in a product team — somewhere features are owned end-to-end and decisions sit close to the code. Open to short engagements with product teams in the meantime.
We'll talk through what you're building, where the friction is, and whether I'm the right fit. If we're not aligned by minute 20, I'll point you to someone who is.