Who I am
I work across the stack in TypeScript, from a startup's first commit to production at enterprise scale. I launch products from zero. I lead platform rewrites. I build infrastructure, observability, and guardrails so small teams ship fast without gambling on reliability.
From first commit to production scale
Most of my work starts greenfield: customer-facing products, internal tools, and stacks still being defined. I own Terraform on AWS, CI/CD, automated tests, and the path from local dev to production.
In larger organizations I have shipped monolith-to-SPA applications at scale. I have built Kubernetes microservices over gRPC and Pub/Sub. I have run real-time WebSocket services. I have led framework migrations that could not break customer workflows. Startups teach speed. Enterprise teaches coordination when traffic and history show up.
What I build
Full-stack product in TypeScript covers Vue and Nuxt SSR apps. I work in React where teams standardize on it. I ship micro-frontends, Node.js services, REST APIs, and GraphQL endpoints.
Integrations include partner APIs, OAuth 2.0, OIDC, SSO, webhooks, and machine-to-machine (M2M) auth for B2B customers. I design versioned public APIs, idempotent handlers, and partner-ready docs.
Platform and data systems cover ETL, data pipelines, background jobs, event-driven processing, billing migrations, durable AI generation pipelines. I design PostgreSQL schemas and migrations.
I optimize for clean handoffs. Decisions should still make sense six months later.
Small teams, clear ownership
I do my best work on focused teams that know the problem and trust each other. I take end-to-end ownership on contract engagements. I mentor engineers on modern frontend platforms. I partner with product, design, and operations while the plan is still being written.
Trust, observability, and standards
Velocity comes from trust. I build it with observability, automation, type safety, CI, and review culture that applies to everyone, including me.
I instrument services with metrics, structured logging, and distributed tracing so incidents show up before customers feel them. Team conventions (AGENTS.md, MCP) keep agentic AI workflows on the same rules as humans.
I apply the same bar externally: developer UIs, honest docs, and APIs with predictable behavior.
Working across the company
Much of my work is customer-facing solutions engineering. I integrate with external teams. I evaluate vendor APIs. I translate constraints for product and leadership. Sales and support get reusable specs from me. I ship reliable endpoints with failure modes they can explain.
Every issue gets a ticket. Every ticket gets triaged. Every pull request gets reviewed.
Building with agentic AI
AI is core to how I build. I have shipped LLM search with RAG over document stores. I use vector search and embeddings. I have built durable generation with queues and Pub/Sub delivery. I ship chat tied to business outcomes, not demos. Prompt design, tool use, and eval loops are part of every release.
How I show up
Kindness, teamwork, and respect are non-negotiable. Colleagues, customers, and partners are people doing their best with incomplete information.
When things go wrong, I fix the problem. I communicate clearly. I keep moving. Don't panic is how I work under pressure, not a joke on my desk.
Open source
I hack on open source tools and patterns that make developers' lives easier.
Community
Based in Central Oregon. I help run the Deschutes Tech Guild, a local tech community. When I am not building software, I am usually outside.