Ship it · Measure it
DocExtract
Turns PDFs and scans into validated, searchable records, with an extraction eval that runs as a CI check.
95.5% weighted field-level score on a 28-fixture offline replay; the CI check fails below a 0.85 floor.
AI Engineer · US remote
Python and FastAPI services around LLMs: extraction, retrieval and tool use, with the eval gates and agent-security checks that catch problems before users do. Open to full-time AI Engineer roles.
01 · Ship it
A paid SMS lead-qualification deployment for Acuity Real Estate, and DocExtract's FastAPI, Claude and pgvector extraction pipeline.
02 · Measure it
DocExtract re-scores committed extraction outputs on every relevant pull request, and the check fails below a floor. llm-reviewer-path shows the same pattern in a 10-minute sample.
03 · Secure it
Pre-registered prompt-injection research showing a defensive prompt stops some payloads and misses others, which points to fixing tool dispatch instead (a recommendation, not yet measured at 70B). Plus an MCP toolkit with auth and a read-only SQL allowlist.
Featured work
Ship it · Measure it
Turns PDFs and scans into validated, searchable records, with an extraction eval that runs as a CI check.
95.5% weighted field-level score on a 28-fixture offline replay; the CI check fails below a 0.85 floor.
Secure it
Pre-registered research on indirect prompt injection through agent tool output, turned into a CI-ready auditor.
With a content-trust prompt scaffold in place, one payload variant still exfiltrated a canary in 10 of 10 runs on Groq-hosted Llama-3.3-70B (one provider, n=10). The recommended fix is in tool dispatch rather than the prompt; it has not been measured at 70B.
Secure it
A library of opt-in decorators that wrap MCP tool logic with auth, a read-only SQL allowlist, caching, rate limits and tracing.
JWT/JWKS auth, a sqlglot read-only SQL allowlist and OpenTelemetry spans, with 627 collected tests.
Measure it
A 10-minute runnable code sample: eval gates, approval-bound writes and idempotent retries.
36 offline tests, no API key. A mutated label set fails the eval gate, and a duplicate retry is suppressed.
SMS lead qualification inside the client's GoHighLevel CRM, with Spanish detection and a bilingual human handoff. Client-reported 500+ inbound leads.
FastAPI and Redis, broker-defined qualification rules, and a kill-check that paused expansion if CRM writes or Spanish handoffs failed.
Read the case study