I build tools and knowledge systems where software engineering meets AI — making AI-era software trustworthy through specified, certified components, making enterprise codebases answerable without hallucination, and applying the right geometry to the structure of code. Along the way I write books about what I learn and occasionally point the same machinery at storytelling.
Author of Vector Databases (O'Reilly).
When AI writes a growing share of the world's code, "trust it because someone read the source" stops scaling. Trust has to attach to the component instead, the way the IC industry attaches it to chips: datasheets with behavioral contracts, exhaustive failure taxonomies, declared side effects, certification tiers, sandboxed runtimes.
Industrial Software Assembly (early-stage, not yet public) is that program: a component catalog applying IC datasheet practices to software — datasheet generation, gap analysis, and substitutability mapping over Apache Spark's Java ecosystem — with WebAssembly as the sandboxed runtime target for certified components, and an assurance model that runs from language-level guarantees up through machine-checked proofs (Lean 4, Dafny/Z3).
Retrieval that engineers can trust: grounded answers over large private codebases, with hallucination treated as a defect, not a personality trait.
- Vector Databases (O'Reilly) — the book on the storage layer that makes this possible
Current work: tri-modal code search — lexical, semantic, and structural signals over enterprise-scale codebases — and zero-hallucination retrieval, where answers come from retrieved evidence or not at all (not yet public).
Package hierarchies are trees, and trees don't embed well in flat space. I apply hierarchy-aware geometry to Apache-scale codebases (Spark and 19 other Apache projects) — measuring exactly when it wins over standard embeddings and how few dimensions you can get away with. First numbers land with the writeup — see Independent research below.
The story-shapes trifecta — Kurt Vonnegut observed that stories have shapes: emotional arcs you can graph as fortune vs. time.
- kurt — generative storytelling from Vonnegut's 8 shapes: LLM pipeline, corpus curation, 295 curated stories
- flatoons — semantic animation: expressive 2D characters rendered from semantic descriptions as resolution-independent SVG (118 tests)
Shapes → stories → pictures. Same engineering discipline, different muse.
The mathematics underneath the geometry work above — hyperbolic embeddings of code structure — plus the tools I had to build to do it on a Mac:
- mlx-manopt — Riemannian optimization on Apple Silicon: MLX-native PyManopt port, full API parity, 15 manifolds, 5 optimizers
- mlx-hyperbolic — hyperbolic neural-net primitives (Poincaré + Lorentz) on Apple Silicon — 122× over PyManopt
An empirical finding is emerging from this work on how floating-point precision — not geometry — sets the usable dimension floor of hyperbolic embeddings. Writeup in progress; numbers land there first.
Also in the record: mechanistic interpretability of small LMs with sparse autoencoders (emotion features in Qwen3.5-2B), Matryoshka embeddings for knowledge bases, and one carefully documented negative result on ReLU attention — because those count too.
Writing: Vector Embeddings: A practical approach — in progress, first of a three-book series on embeddings and mechanistic interpretability.
A grab bag of things I built because I needed them:
- mcpmon — "Wireshark for MCP": traffic observability for the Model Context Protocol (147 tests)
- claudetools — safety-hook system for Claude Code: guardrails that intercept destructive agent actions before they execute
- tandc — Terms & Conditions risk analyzer — CLI + web UI, Claude-powered, MIT
- embedding_tools — backend-agnostic embedding ops across NumPy / MLX / PyTorch — on PyPI
- aishell — intelligent CLI with 5-provider LLM integration and MCP support
Full project portfolio: what-hath-claude-wrought


