Specs before code, AI agents driven by oracles, tested against real infrastructure, shipped through automated gates.
TypeScript
Edge/Cloud
CI/CD
Type-safe
Specify before building
Before implementation starts, I write the domain model, constraints, and a decidable definition of done. An AI coding agent implements against that written contract — not a vague prompt. Types, lint, and schema validation act as fast oracles that drive the agent's loop as it works.Learn more →
Oracles & AI-assisted build
Types, lint, and schema validation are oracles — mechanisms that say "this is wrong" without a person inspecting the diff. They drive the agent while it works; the expensive real-infrastructure suite gates the merge last. Independent pieces of work run in parallel, each with its own cloned repo, spec, agent, and single verification command.Learn more →
Typed end to end
One schema flows to API and client with no hand-written drift. Types are the cheapest check in the stack; at runtime boundaries, schema validation (Zod) rejects malformed external input before it reaches domain logic.Learn more →
Explicit error handling
Errors are typed and attributed at the exact boundary where they occur — status and category decided at the point of failure, not inferred later from a caught exception's message.Learn more →
Clear architecture
Thin API layer, domain services, transactional orchestration with automatic rollback on failure.Learn more →
Real-infrastructure testing
Types, lint, and schema validation run on every change; the four-figure suite against live services runs last, once cheaper checks have already caught what they can.Learn more →
Automated delivery
Every change passes lint, format, type-check, tests, and migrations before it ships. A check written for one piece of work is folded into the standing lint rules and test suite so every future change inherits it automatically.Learn more →
Documented decisions
We chose Drizzle ORM over Prisma because the runtime executes V8, not Node — documented so the next maintainer inherits the reasoning, not just the result.Learn more →
Specify→
AI + oracles→
Type-safe contracts→
Build→
Test (real infra)→
Automated gates→
Staged deploy
See it in practice: payment flow with automatic rollback
Languages
TypeScript
AI agents
GraphQL
SQL
Rust
Cloud
Cloudflare Workers
D1
R2
KV
Data
Drizzle ORM
SQLite/D1
Vector Search
Stripe
CI/CD
GitHub Actions
Vitest
ESLint
Drizzle Kit
This is how I built Tekel, Lucra's audited protocol, and a municipal RAG platform for local government.