Full-stack engineer (TypeScript, Node.js, React/Vue, Python) building developer tools and AI-powered products.
My recent work has one theme: make AI workflows accountable. Parallel execution that is typed and cost-tracked, reports where every number comes from code rather than a model, and tools that show how an argument is made instead of guessing whether it is true.
| Project | What it is |
|---|---|
| dagengine | Type-safe DAG execution engine for AI workflows. Define task dependencies, get automatic parallelisation and cost tracking. npm i @dagengine/core |
| smart-schema | Analyse any JSON and produce an AI-enriched semantic schema (field roles, units, PII flags) so LLMs understand data without seeing it. npm i smart-schema |
| rungs | Local-first, agent-native launch tracker for solo products: one goal, the gates to it, evidence-only metrics, stall detection. npx create-rungs |
| inLie | Chrome extension that names the rhetorical and psychological manipulation tactics used in political videos, live as they are spoken. Open-source funding plan in the linked repo. |
| chartgen | Describe a chart in plain English, get a typed, self-contained React component back. |
| cg-ai | Turn git commits between branches into user-facing changelog entries with Claude. |
- TypeScript strict mode, small functions, tests against hand-computed fixtures before real data.
- Numbers come from code, computed two independent ways; the model drafts words around them.
- Local-first and privacy-first by default: personal data is dropped at the boundary, never stored.


