Skip to content

Selected work

Systems for business teams, customers, and developers, plus the open-source tools I maintain.

Production systems

Most were team efforts. Each case study describes the problem, my part, and what shipped.

Bert intake agent

Enterprise AI · SharkNinja

A Flue agent that interviews colleagues in Slack, Teams, or the web, gathers evidence, and turns bug reports and feature requests into reviewed Jira work.

Problem
Turn free-form bug reports and feature requests into complete, correctly routed work, without inventing requirements or letting a model write to Jira unreviewed.
My role
Primary developer and operator, writing most of the code alongside two engineering co-owners. Built the agent workflow and tools, the web, Slack, and Teams experiences, Jira and IT Service Desk routing, and the release process.
Outcome
Live for storefront, order-management, and customer-service requests. More than ten releases since August 2026, with production changes rolled out through staged traffic percentages.

How it works

  1. Slack, Teams, or web
  2. Flue agent interview
  3. Evidence and assessment
  4. Human review
  5. Jira or IT Service Desk

Engineering highlights

  • Infers whether a request is a bug or an enhancement, reads the requestor's directory profile, and asks multiple-choice questions only for requirements that are still missing.
  • Gathers bounded evidence from scoped GitHub repositories, Jira, first-party documentation, Cloudflare traffic data, and opt-in recorded browser reproductions.
  • Runs a mandatory developer assessment as a durable Cloudflare Workflow, citing repository integration points by file and line.
  • Requires the requestor to confirm a schema-validated draft before anything is created. Edits re-run the assessment and the duplicate check.
  • Keeps every conversation in a Durable Object and runs each intake on a failover route across the LiteLLM gateway, OpenAI, and Anthropic.
  • Covered by more than 1,800 automated tests, with production changes rolled out through 5% and 25% traffic stages.

Built with Flue, TypeScript, React, Hono, Cloudflare Workers, Durable Objects, Workflows, D1, R2, Jira, Slack, Microsoft Teams

Consumer intelligence app

Data products · SharkNinja

A web app that brings ratings, sales velocity, and market-share signals together for upcoming product launches.

  1. Snowflake queries
  2. Deterministic scoring
  3. React app
  4. Presentation export
Problem
Turn a large prototype into a dependable app that product teams can use to read ratings, sales velocity, and market signals ahead of a launch.
My role
Migrated a 14,000-line prototype to React on Cloudflare Workers with live Snowflake queries. Built a rating simulator, a SQL inspector for development, presentation export, and fuzzy matching of social data without product keys. Led an intern team on the build.
Outcome
In use for upcoming launches. Day-to-day development has moved to another engineer, and I remain a code owner.

Built with React, TypeScript, Cloudflare Workers, Snowflake, SQL

Internal app platform

Platform engineering · SharkNinja

A standard way to ship internal and AI-built apps on Cloudflare, with single sign-on and a security baseline from day one.

  1. Boilerplate repo
  2. Single sign-on
  3. CI security gate
  4. Production
Problem
Business teams were building useful apps with AI tools, but each one needed hosting, sign-on, data access, and a security review before it could be trusted.
My role
Owned the hosting standard: one Worker for each app and its API, sign-on through Cloudflare Access, a boilerplate repository, a Hono and D1 reference app, runbooks, and go-live guardrails. Led the migration of business-built prototypes onto it.
Outcome
Shipped in October 2026. About ten prototype apps moved onto the platform, including team hubs and insights tools.

Built with Cloudflare Workers, Cloudflare Access, Hono, D1, Wrangler, GitHub Actions, Snowflake

Enterprise AI gateway

AI infrastructure · SharkNinja

A governed gateway that gives teams single sign-on access to multiple model providers, with budgets, routing, and failover.

  1. Single sign-on
  2. Per-user key
  3. Model routing
  4. Provider failover
Problem
Give teams governed access to multiple model providers without a separate integration, key, and budget in every application.
My role
Co-built the Terraform-managed LiteLLM gateway on AWS with infrastructure and AI platform colleagues. Worked on SSO team mapping, per-user keys, complexity-based routing, provider failover, and MCP access.
Outcome
Separate sandbox and production environments on ECS Fargate with Multi-AZ Postgres. Production opened to a limited pilot in October 2026.
  • Maps SSO groups to gateway teams, so access and budgets follow a person's role.
  • Issues per-user keys during sign-in through a bootstrap Worker instead of shared application keys.
  • Routes requests across small, mid, and large models by complexity, with failover between providers.
  • I administer the company's Claude Enterprise organization and rolled out an org-wide MCP connector with per-user OAuth.

Built with Terraform, AWS ECS Fargate, LiteLLM, Postgres, Redis, Entra ID, Cloudflare Workers, MCP

Village client portal

Web and iOS · Village Handcrafted Cabinetry

A shared web and iOS workspace for clients, designers, and engineering teams on custom cabinetry projects.

Problem
Keep room decisions, specifications, approvals, files, and conversations connected through a project's handoff to engineering.
My role
Worked across the React web client, SwiftUI iOS app, and Cloudflare API. Connected business-system data, built collaboration features, and migrated the API to Hono while preserving web and mobile contracts.
Outcome
Shipped web and API releases, and distributed iOS builds to internal testers through TestFlight.

Built with React, SwiftUI, Hono, Cloudflare Workers, D1, R2

Manufacturing data and workflows

Automation · Village Handcrafted Cabinetry

Integrations that keep ERP, CRM, and production tools in step.

  1. On-premises ERP
  2. Incremental mirror
  3. Cloudflare D1
  4. Portal and workflows
Problem
Keep production and customer-facing systems aligned without asking people to re-enter the same information in every tool.
My role
Built an incremental mirror from the on-premises ERP into Cloudflare D1, with cursor-based sweeps, retries, and source-fidelity checks. Connected HubSpot, Smartsheet, the ERP, and internal services through APIs, webhooks, and scheduled jobs.
Outcome
Delivered the data layer behind the client portal and production workflows, plus an internal agent workspace with access-scoped tools and human approval gates.

Built with Python, TypeScript, SQL Server, Cloudflare D1, HubSpot, Smartsheet, n8n

Customer feedback analytics

Data platforms · SharkNinja

An executive customer-feedback analytics application, ported to Palantir Foundry from data imports to the published interface.

  1. Snowflake imports
  2. Spark transforms
  3. Foundry ontology
  4. Validated publication
Problem
Move a Snowflake-backed analytics application to a new platform while preserving its scoring model and the meaning of its data.
My role
Ported the query logic to Spark, connected Foundry data imports and ontology-backed access, and added scheduled builds with data-health checks. The original application and scoring design came from a colleague.
Outcome
Released on Foundry against live data, with publication validation and freshness monitoring. Fixed compatibility issues that appeared only in the deployed build.

Built with Python, SQL, Spark, Snowflake, Palantir Foundry

Current work

Engineering that is underway and not yet a finished launch.

  • Headless commerce

    Salesforce Commerce Cloud and headless storefront work: migration analysis, environments, CI deployment triggers, and regression testing for storefront launches.

  • Data platform governance

    A tiered access-governance plan for a growing group of analytics-platform builders, plus an architecture review of warehouse syncs and virtual tables.

  • Document intelligence

    Turning campaign decks into product-linked planning calendars, with document extraction, evidence-based dates, and replayable pipeline validation.

Developer tools

Published tools for coding agents. Star and download counts come from GitHub and npm when the site is built.

Active

pi-ask-user

TypeScript · 176 stars · 11.8k downloads a month

Decision gates for AI agents. Pauses execution and asks the human, with multiple-choice or freeform answers, before doing anything irreversible.

GitHub ↗npm ↗

amp-acp

JavaScript · 1 star · 40 downloads a month

Bridges the Amp CLI to the Agent Client Protocol so it works inside Zed and other ACP editors.

GitHub ↗npm ↗

Archived

pi-web-tools

Archived · TypeScript · 51 downloads a month

Multi-provider web search, extraction, research, and code-search tools for pi.

GitHub ↗npm ↗

audio-extraction-analysis

Archived · Python

Feed it a recording, get back diarized transcripts, structured notes, and a doc pack. Deepgram, ElevenLabs, or Whisper.

GitHub ↗

Merged contributions

Selected pull requests in projects outside my own repositories.

  • LangChain

    Updated message-buffer formatting to use tool calls instead of the deprecated function-call field.

  • Agno

    Corrected AWS credential validation for the Bedrock Claude model.

  • OpenCode

    Added path-traversal protection to file reading and listing.

  • OpenTUI

    Fixed memory leaks in Zig Unicode encoding and the grapheme pool.

  • Zed

    Fixed inlay-hint hover highlighting for multibyte UTF-8 characters.