Any serious app needs data a general-purpose API can't serve, and shouldn't have to. Secondlayer is the layer underneath: decoded chain data in your own database, backfilled from a signed archive, reorg-safe, kept current.

I live in Austin, TX. Since April 2026 I've been at Texas Sports Academy, building an agent-native course platform. I got there through Gauntlet AI, a three-month engineering fellowship.
From 2023 to 2026 I was at Hiro, building developer tools for Bitcoin infrastructure. Earlier I was Head of Engineering at RabbitHole (2021 to 2022) and Lead Engineer at Sweep (2018 to 2020), where we built conversational products for Anheuser-Busch across MLB and NFL.
I also build and publish open source tools, mostly openpkg and drift, which exist so an agent can read a package's real API instead of guessing at prose.
Any serious app needs data a general-purpose API can't serve, and shouldn't have to. Secondlayer is the layer underneath: decoded chain data in your own database, backfilled from a signed archive, reorg-safe, kept current.

CRDT storage, live cursors, presence, and undo/redo over WebSockets. The open-source alternative to Liveblocks you can actually run yourself. 10 packages, a live demo, six example apps.

Paste a live Stacks contract and get a real read: on-chain source fetched, value-transfer and access-control surface flagged. The full run fans out five adversarially-verified subagents and reproduces confirmed findings in an isolated, airgapped Clarity VM. No mainnet required. Built on secondlayer.

Hand it a PDF or a link and it builds a spaced-repetition deck that cites its source. The grade comes from code checking your answer, not a model deciding to be nice. FSRS-6 scheduling, a keyless demo, and an agentic Studio that builds the tutor from a chat.

I'm also maintaining:
openpkg-ts, the full public API of any TypeScript package as a typed, machine-readable spec. Extract it, diff it, feed it to agents.
drift, a CI gate that fails the build when the docs stop matching the code. Every stale JSDoc, example, and markdown page flagged with file and line.