For AI agents: a documentation index is available at /llms.txt — markdown versions of all pages are available by appending index.md to any URL path.
Programming

Programming

I build tools that solve problems I encounter in my own workflow - whether that's managing pull requests across repositories, getting readable diff output, or ensuring code examples actually work.


Developer Tools & Libraries

Tools I've built to solve developer workflow problems.

tokendiff

A Go library and CLI for human-readable, token-level diffing.

Standard diff tools optimize for minimal edit distance, but often produce output that's hard for humans to parse - fragmenting changes across common words like "the" or "for." tokendiff uses a histogram-based algorithm with heuristics tuned for readability.

diffx

A Go implementation of the Myers O(ND) diff algorithm with preprocessing, heuristics, and postprocessing for improved output quality.

Built as the algorithm layer underneath tokendiff, with a clean Element interface for custom diffing beyond strings.

  • Language: Go
  • State: Released
  • Links: GitHub

OASprey

OpenAPI specification validation for Jest. Validates that HTTP responses match their OpenAPI schemas at test time.

Forked and streamlined from OpenAPIValidators to reduce dependencies and improve maintainability.

  • Language: TypeScript
  • State: Published on npm
  • Links: GitHubnpm

fenestro

A Go CLI that ingests HTML and renders it in helpful windows. Built to support diff output visualization.

  • Language: Go
  • State: In development
  • Links: GitHub

afdocs

A CLI tool that tests documentation sites against the Agent-Friendly Documentation Spec. Checks llms.txt discovery, markdown availability, page size risks, content negotiation, URL stability, and more. Point it at a docs URL and it reports how well the site serves AI agent consumers.

agentsummons

A Go library and CLI for invoking agent harnesses (Antigravity CLI, Claude Code, Codex CLI) in headless mode.

Every headless-agent experiment rediscovers the same invocation lore: which binary, which permission-bypass flag, which harness swallows your prompt. agentsummons owns that knowledge once so your scripts and experiments don't have to. Distributed via Homebrew, npm, and PyPI with prebuilt static binaries.

agentminutes

A Go library and CLI that parses native agent harness session transcripts into one unified, comparable event schema.

Every harness invents its own transcript format, and those transcripts are ground truth for how an agent actually behaved: which tools it chose, what it saw back, what it spent. agentminutes makes sessions analyzable and comparable across harnesses. Companion to agentsummons: agentsummons convenes the meeting, agentminutes takes the minutes.

skill-validator

A Go CLI that validates Agent Skills against the agentskills.io specification. Checks directory structure, frontmatter, content quality, cross-contamination risk, and token budget composition. Built to support my ecosystem-scale analysis of 673 skills across 41 repositories.

skillxp

A skill invocation runner: installs an Agent Skill in a fresh fixture, invokes an agent harness headlessly, and reports what actually reached the model.

Skill authors publish for 25+ platforms that each load, present, and manage skills differently, and mostly invisibly. skillxp answers "what did the platform actually do with my skill" from transcript evidence rather than model self-reporting. Builds on agentsummons and agentminutes, and powers the agent-skill-implementation loading benchmark.


Documentation Infrastructure

Tools I built during my time at MongoDB (2021 - 2026), focused on code example quality at scale.

Audit CLI

A Go CLI for analyzing documentation source files - tracking code examples, includes, procedures, and cross-references across large documentation sets with monorepo structure awareness.

Used to audit content and infrastructure to perform maintenance work, product updates, or identify needed process improvements and education opportunities.

  • Language: Go
  • State: In production at MongoDB
  • Scope: 40+ documentation projects, 35,000+ code examples, one zillion documentation source files
  • Links: GitHubDocumentation

GDCD (Great Docs Code Devourer)

Fetches and analyzes documentation data from internal APIs, tracking code examples and page metadata. Used to audit 35,000+ code examples across 40+ repositories, resulting in an 88-page analysis for documentation leadership.

  • Language: Go
  • State: In production at MongoDB

DODEC (Database of Devoured Code)

Query tool for aggregating and reporting on code example data stored in MongoDB. Supports weekly and monthly reporting and trend analysis.

  • Language: Go
  • State: In production at MongoDB

Cross-Language Comparison Frameworks

Testing utilities for validating code example output across programming languages. Each implementation provides a fluent API for comparing actual output against expected results, with support for MongoDB-specific types, ellipsis patterns, and flexible matching.

  • Languages: Go, Java, Python, C#/.NET, JavaScript, MongoDB Shell
  • State: In production at MongoDB
  • Scope: Used across MongoDB's documentation

macOS Apps

Native macOS applications built with SwiftUI.

PR Focus

A native macOS dashboard app for managing pull request activity across GitHub repositories. Helps developers track incoming PRs, review requests, and PR status without context-switching to the browser or having to check many repositories.

Issuenator

Watches GitHub repositories for new issues and surfaces them in a native interface. Built for developers who maintain multiple repositories.

  • Stack: SwiftUI, SwiftData
  • State: TestFlight Alpha ・ Website

Geta

A GM toolkit for tabletop gaming - generates shops, taverns, NPCs, and other elements for game masters.

  • Stack: SwiftUI, SwiftData
  • State: In development

iOS Apps

Native iOS applications built with SwiftUI.

Shattered Ring

A companion app for the video game Elden Ring - helps players track NPCs, Quests, Locations, and Bosses since the game did not provide an in-game system for this.

TeaLixir

A tea-tracking app for tea enthusiasts - save tea details, log preparations with additions and tasting notes, and discover patterns in your preferences.

Pocket Codex

A reference app for video game data - provides searchable, offline access to game information. Includes a custom data pipeline with web crawling, HTML parsing, and automated code generation.

  • Stack: SwiftUI, SwiftData, Go (data pipeline)
  • State: TestFlight Alpha

Coffeelicious

A coffee-and-espresso tracking app for coffee enthusiasts - save bean details, log preparations with additions and tasting notes, and discover patterns in your preferences. (TeaLixir, but for coffee!)

  • Stack: SwiftUI, SwiftData, CloudKit
  • State: In development

Writing & Workshops

Technical content about building software.

Blog

I write about software development, documentation infrastructure, and the tools I build:

Workshops

Training materials for technical writers on code example testing and documentation workflows:

  • Creating Tested Code Examples
  • Working with Tested Code Examples
  • Removing Hard-Coded Code Blocks

Technical Focus

Primary languages: Go, Swift, TypeScript

Domains: Developer tooling, documentation infrastructure, native app development

Approach: I build tools that solve problems I actually have. Everything here started as "I wish this existed" and became "I'll build it myself."