I'm a software engineer in San Francisco. I'm on the Platform & Applied AI team at AfterQuery, building the post-training data and RL environments frontier models learn from. Before that I built agents on the Enterprise AI team at Scale AI, and before that I was a founding engineer at Roe (YC), where I ended up leading agent engineering: production agents for ERP, fraud and compliance work, deployed at banks and Fortune 500 companies, in the cloud and on-prem.
I came to software through economics and statistics, with an M.S. from Cal Poly and an undergrad thesis on forecasting bear markets that won the Adam Smith Award. It still shapes how I build: if a claim can be measured, measure it, and write down what it doesn't show.
Your agent's training pipeline may be teaching it to stall. Outcome-only credit pays every step of a winning episode the same, so a step that does nothing earns as much as the step that wins, and doing nothing never fails. I call this loop-action bias. On a controlled benchmark, policies trained this way did worse than the prompted baseline (0.24 vs. 0.79 success); scoring each step by what it actually changed brought success to 1.00. On real ALFWorld, branch-aware scoring separates 2.6 to 9.4 times more states than outcome-only, and the gap is widest for the weaker model.
Branch-Aware Hindsight Credit Assignment for LLM Agents · Paper · Code
Also: Critique-Transport Smoothing, optimal transport for long-horizon credit assignment (in progress) · Predictive Stochastic Modeling for Financial Markets, winner of the Adam Smith Award
An agent platform I'm building on my own time, mostly in Rust. The idea: agents that act in the real world should do it under explicit authority, inside a sandbox, with memory they can cite and a receipt for everything consequential. Every product exposes one OpenAPI contract, and the SDKs, CLIs and MCP tools are generated from it, so nothing drifts.
Linked repos are public; the rest is private for now.
Merged upstream in wild (Mach-O LC_RPATH), Gymnasium, Minigrid, SkyRL and Harbor. I also wrote Roe's Go SDK.
Commits I like
40210c7 Batch-verify BLS signatures with blst multi-pairing
8618e7a Constant-time audit of the VRF and KES code
e07d8a7 A CI gate that's allowed to say inconclusive, and how many more cases it needs
2df8415 Editing the test guard to pass is a fail, not a pass
ad8e6d7 Fix the plasma solve where the electric field crosses zero






