I build AI systems that must not guess. I focus on compliance, safety and cloud operations, where a wrong answer has a real cost.
My background is solutions architecture, customer-facing engineering and engineering management at startups and enterprise organizations. Most recently, I owned a SOC 2 Type 2 program from gap analysis to the issued report. I built the tooling that turned controls into audit evidence, and I worked directly with the auditors. grc-evidence is a clean-room rebuild of that idea: code decides, the LLM drafts, a person signs.
My current projects use the same four rules:
- Ground. Facts come from a deterministic source that a person has reviewed.
- Bound. Code, not the prompt, sets how much authority the AI has. The AI decides what to do. Code decides whether it may.
- Prove. Every output shows its source, or the system refuses.
- Measure. I evaluate the AI and publish the misses.
| Project | Domain | What it shows | Where the AI is, and what checks it | Status |
|---|---|---|---|---|
| grounded-context · JVM port | Retrieval for agents | Exact facts are looked up, never ranked. Gaps refuse. Elasticsearch, MCP. | Semantic search only for exploration; below a measured relevance floor it refuses. A 20-question eval checks the answer and the route. | Complete (Elasticsearch version), write-up |
| grc-evidence | Compliance evidence | Turns scans, repo settings and change history into SOC 2 Type 2 evidence over an audit window. Code decides status. An LLM drafts prose. A person signs. | An LLM drafts report text and proposes controls for unmapped findings. Held-out eval, cost log. The scan has no LLM. | Released v2 |
| grc-evidence-boutique | Adoption on real code | grc-evidence on Google's Online Boutique: 422 findings mapped, a gate on every PR, nightly hash-chained Type 2 evidence. | Claude Haiku proposed a control for each gap rule ($0.04). A person decided all 47: 42 mapped, 5 left as gaps. | Worked example |
| drone-mission-plan | Civil drone missions | Flight plans checked against EASA SORA 2.5. GO, NO-GO or HOLD. Flown in PX4 simulation. | Optional LLM steps with their own eval. The plan, the checks and the risk score have no LLM. A person signs. | Released v1.0 |
| agentic-patterns-catalog | Agent design | 288 agentic design patterns (11 public; the rest rebuilt locally under the source license), served to agents over MCP behind a policy layer, with provenance on every field. | LLM-drafted enrichment stays marked unreviewed until a person reviews it. Golden-set eval. | Active: enrichment in progress |
grc-evidence and drone-mission-plan include a "How this was built" page with the specs, the human review gates and the failures.
Stack: Python, Java/Spring, Elasticsearch, MCP, Postgres, OPA, OSCAL, PX4, GCP.
Next: Agentic DevSecOps. An agent proposes patches within a policy, with preview, rollback and an audit trail. The agent proposes, policy code decides, a person approves.
LinkedIn · Based in the San Francisco Bay Area