Full-stack engineer. I build production LLM systems.
Most of my work lives in private repos, so this profile is a description rather than a portfolio. Happy to walk through any of it on a call.
A low-latency agent that trades live against real markets with real capital, running multiple strategies including contract arbitrage and signals analysis.
The trading logic was straightforward. The work that mattered was designing the system around the weaknesses of current frontier models: hallucinations, where they drift, where they'll confidently produce a number that costs money. The guardrails exist because the failure modes are predictable if you look for them.
The second constraint was staying invisible. Competing against Wall Street quant desks means maximizing edge without leaving a footprint they can read and trade against.
flowchart LR
MKT[Market data] --> STRAT
subgraph AGENT [Agent]
direction TB
STRAT[Strategy engine<br/>arbitrage · signals] --> GUARD[Risk & model guardrails]
GUARD --> EXEC[Execution]
end
EXEC --> API[Exchange API]
API --> STATE[(Inventory & state<br/>PostgreSQL)]
STATE --> STRAT
STATE --> DIAG[Diagnostics<br/>consistency checks]
DIAG --> DASH[Monitoring dashboard]
DASH -.- OPS((Operator))
What's in it:
- Inventory management for autonomous API trades, on a PostgreSQL-backed state layer
- A monitoring dashboard and diagnostics stack I built to catch data-consistency bugs before they cost money
- Quant algorithms and risk guardrails designed around frontier-model failure modes The diagnostics piece is the part I'd argue is most transferable. Agents fail quietly. A retrieval regression or a drifting tool contract doesn't throw an exception, it just makes the output slightly worse until someone notices. If you're not instrumenting for that specifically, you won't catch it.
Live since March 2026 | ~700 markets per day
Automated site-inspection reporting for oil refineries. Messy real-world source documents, high cost of being wrong, and no tolerance for a fabricated number in a compliance report. Most of the accuracy problem is solved in how the data pipeline is structured before the model ever sees it.
Application — React / Next.js, Node, Python, Postgres, AWS Model layer — retrieval, tool use, orchestration, evals Everything else — I'll pick up whatever a project actually needs
Most of the value in this kind of work sits at the seam between the application and the model layer, which is why I do both rather than handing off between them.
Currently available for contract work, 40 hrs/week, US-based (PST).