Senior Software Engineer · Remote, across the U.S.

I build software, and the AI systems that build it with me.

I'm a senior software engineer at GiveCampus with over a decade of shipping production web and mobile apps. These days most of my time goes into AI-driven development: giving agents safe access to real systems, shared context, and documentation they can use.

AI-Driven Development

The bottleneck in agentic coding usually isn't the model. It's what the agent can safely see and reach. Most of what I build is that layer, using Claude Code and the Model Context Protocol.

Built at GiveCampus

SolarWinds Observability MCP: debugging production from inside Claude Code

An MCP server that wraps the SolarWinds Observability (Papertrail) API, so Claude Code can query production logs, metrics, entities, and traces directly. Give it a request ID and it pulls every log line for that request. Give it a search and it groups the matching logs by request so the agent can follow a failure end to end. Production debugging used to mean bouncing between a log dashboard and an editor. Now it happens in one session.

Claude Code→ search_logs→ analyze_requests→ get_request_logs→ root cause
Open source

pg-redact-mcp

Lets AI agents query PostgreSQL without exposing PII. It detects sensitive columns using name heuristics and Microsoft Presidio, and masks the results before they reach the model, so john@example.com becomes j***@e***.com. Real values are revealed only with human approval. Encrypted fields can never be unmasked, and the server is read-only by default.

MCP · Python · Postgres · Presidio
On the App Store

ClawTalk

My first shipped iOS app, a native client for self-hosted OpenClaw AI agents, by voice or text. Speech recognition runs on-device on the Apple Neural Engine with WhisperKit, so audio never leaves the phone. Responses stream back as rendered markdown across multi-agent channels. The backend runs on AWS Lightsail and Bedrock, deployed with Terraform. It's open source (GitHub).

Swift · SwiftUI · WhisperKit · Bedrock · Terraform
Built at GiveCampus

CI Patrol

Watches CircleCI on a heavily parallelized suite of 80+ nodes. When a build fails, Claude reads the test output and the PR diff and classifies the failure as flaky, legitimate, or unclear. Flaky jobs rerun automatically, and engineers get a Slack DM only when the failure is real.

Claude API · CircleCI · Slack
Open source

unreal-mcp

An MCP server for Unreal Engine with 127 tools across 16 subsystems and four transport layers. It needs no C++ plugin, so Claude can work with a UE 5.3+ project directly.

MCP · Unreal Engine · Python
Toolbox

More MCP servers

Email on Acid and Mailgun for email QA, pg-pool for working across many Postgres databases, email, image generation, and Lutron home lighting.

MCP · Node · Python
Practice

Documentation as agent memory

A living knowledge base that agents read and write. Reusable workflows are cataloged by pattern (pipeline, parallel fan-out, fan-out + synthesis, loop-until-dry), and handoff docs are written for the next session. One handoff doc let a fresh Claude Code instance on an NVIDIA Jetson finish a hardware bring-up on its own.

Notion MCP · subagents
Claude Code plugins

Context Share and tooling

A plugin that saves a structured snapshot of a session and loads it into another session on any machine, backed by a small Go + SQLite server. Also a context-usage status bar that shows context fill, model, and session cost.

Go · SQLite · plugins · hooks
  • Safe access first. Agents get real data only through guardrails like redaction, read-only modes, and human approval.
  • Give agents real tools. A well-scoped MCP server beats a long prompt every time.
  • Write docs for the next agent. Decisions, current state, and gotchas matter more than polished prose.
  • Orchestrate deliberately. Match the pattern to the task, whether that's a pipeline, a fan-out, or a verify loop.

Experience

Full-stack product engineering, mostly Ruby on Rails, React, and React Native, across higher-ed fundraising, digital health, real estate, and fintech.

Aug 2023 – Present

GiveCampus

Senior Software Engineer · Events & Online Giving · Remote

  • Tech lead across the Events product: event sequences, ticket packages, affiliation-restricted ticket types, reusable form fields, a guest list revamp, backend registrations, multiple constituent IDs, and custom reporting.
  • Led Event Sequences, scheduled outreach to event audiences built on dynamic recipient segments.
  • Led name tag printing, the badge-printing system for on-site check-in. It renders ZPL templates on the server, sends print jobs through Zebra's cloud API to ZD621 printers, and includes a provisioning playbook covering enrollment, firmware, fonts, calibration, and Wi-Fi. It debuted live at GiveCampus's partner conference and drew a wave of beta requests from schools.
  • Led Events permissions, role-based access for large schools, shaped by discovery calls with partner universities.
  • Tech lead on promo codes, requested by hundreds of partners, and on bulk offline registration uploads.
  • Built AI tooling for the engineering team, including a SolarWinds Observability MCP for debugging production logs from Claude Code and CI Patrol for triaging flaky CI.
May 2022 – Aug 2023

Brightside Health

Senior Software Engineer

  • Helped launch a company-wide crisis care program for people in acute need.
  • Built a React Native app that lets in-house pharmacists handle prescription refills.
  • Rebuilt patient–therapist matching on the Rails API to improve treatment outcomes.
  • Mentored mid-level and junior engineers.
Oct 2017 – May 2022

ReferralExchange

Software Engineer · Platform Team

  • Ran experiments on and maintained the lead funnel, which created thousands of leads each month.
  • Built the mobile app thousands of agents use to accept leads, and a three-way calling system on Twilio.
  • Ran AWS infrastructure and Elasticsearch across environments, and led application upgrades.
Aug 2016 – Sep 2017

Infuse

Software Engineer

  • Lead engineer on a point-of-sale product for a car wash chain processing $10M+ a year.
  • Reduced the frontend codebase by 30% by refactoring AngularJS controllers into modular services.
  • Migrated apps from Parse to Heroku and MongoDB, and built an iOS geo-video app on the Twilio Video SDK.
Sep 2015 – Jul 2016

Paid

Software Engineer

  • Built modular OAuth 2.0 connections for Stripe and QuickBooks, and a Handlebars engine customers used to customize their invoices and emails.
  • Built an internal Rails messaging system that cut ticket response time by about a day.
Mar 2015 – Sep 2015

Rentjoy

Full Stack Developer

  • Integrated Stripe into a Rails rental payments platform, cut average clicks by 40%, and raised RSpec coverage to 95%.

Skills

What I reach for today.

AI engineering

Claude CodeModel Context Protocol Agent orchestrationSubagents & skills Context engineeringClaude APIAWS Bedrock

Languages & frameworks

Ruby on RailsJavaScript / TypeScript ReactReact NativeSwift / SwiftUI Node.jsGoPython

Data & infrastructure

PostgreSQLSQLiteElasticsearch AWSTerraformCircleCISolarWinds / Papertrail StripeTwilioZebra / ZPL

Background

I studied Interactive Entertainment (game design) at USC's School of Cinematic Arts, interned at CAA and at Activision on Skylanders, and spent a year and a half underwriting apartment deals as a real estate analyst. After a stint as a product specialist at Tesla, I taught myself web development, went through Dev Bootcamp, and have been shipping production software since 2015. That mix of design, product, and engineering still shapes how I work.

Outside of work: 3D printing, drones, electronics projects, and anything with a motor.

Let's talk

I work remotely across U.S. time zones and I'm open to conversations about AI-driven engineering, developer tooling, and full-stack product work.