I build cloud-native backend systems at Wells Fargo — microservices, Kafka event streams, Azure — and instruments for watching AI agents work: audit middleware for the Model Context Protocol, and a generative portrait rendered from a real multi-agent reasoning trace.
A generative portrait of a multi-agent AI mind — a human face made of live code.
SWARMCORE is generative data-art built on a real system. A real multi-agent pipeline ran — an orchestrator model split a task into three roles (research, analyze, write), three sub-agents executed it with live tools (web search + a knowledge base), and a human steered one tool call mid-flight. Every step was captured to a trace, which SWARMCORE replays as a human face rendered entirely from a field of monospace characters: the face resolves out of the noise as the agents work, words from the trace drift through the code, and the human-steering moment flushes the whole face amber.
Not a picture with an overlay — a procedural luminance mask maps per-character brightness on a canvas, so the portrait literally materializes from the swarm's activity.
Orchestrator planning, sub-agent intents, tool_use blocks, and results are captured verbatim from live API calls and replayed in timestamp order.
When the human-steering checkpoint fires, the entire face flushes amber while a side terminal prints the exact edit — the person inside the loop, made visible.
If SWARMCORE is the portrait of agents working, this is the flight recorder.
A transparent middleware proxy for the Model Context Protocol. It sits between any MCP client and any MCP server, forwards every tool call untouched, and records a full audit trail — arguments, response, duration, success/failure — to a local SQLite database. The proxy exposes its own MCP tools, so the agent can query its own call history at runtime.
Connected agents introspect their own history — per-tool stats with p50/p95 latency, error rates, slowest calls, argument search, JSONL/CSV export, retention purge.
One proxy, four backends: Prometheus, Tempo/Jaeger, AlertManager. obs_investigate fans out across all of them concurrently and returns a structured incident summary.
SQLite in WAL mode — no external DB, nothing to operate. Synthesized /metrics, /healthz for k8s probes, bearer auth, Docker image, full CI.
An always-on ecosystem of scheduled AI agents autonomously trading a small, strictly-bounded personal account: an idea-scout hunts candidates across five lanes each morning, an hourly engine manages the book against broker-resident stops, open/close managers bookend the session, and a weekly review grades the process — and evolves its own playbooks inside hard guardrails. Structurally risk-capped: cash account, long-only, no margin, so the worst case is mathematically bounded.
Chrome extension that reads a job description from the active tab, calls the Claude API with structured tool-use output, and generates a tailored, ATS-optimized resume PDF client-side — including keyword gap analysis against a master profile.
Earlier work in Java and Python, plus a full-stack database course project from ASU. The recent work — agents, tracing, generative systems — lives in the repos above.
Two-plus years building regulated, high-throughput financial systems — and changing how the team builds them.
Production experience first — the top rows ship at Wells Fargo or in the open-source work above.
Backend, platform, and AI-agent engineering roles. U.S. citizen, open to remote and relocation.