Skip to content

Projects

A modular Java 25 ecosystem, domain demos built on top of it, and a documentation framework alongside.

The *.build ecosystem

A stack. base is the foundation; codemodel depends on base, spawn on those two, serve on those three, and spin on all four. Four I contribute to at Workday; serve.build is mine.

base.build

repo

Foundation utilities across 26 JPMS modules: marshalling, configuration, reactive flow, graph algorithms, query, mereology, retry, telemetry, CLI parsing, version handling. The shared primitives everything else is built on.

codemodel.build

repo

A language-agnostic framework for representing software systems as a structured, serializable model. A CodeModel can be populated from compiled classes or .java source, then enriched, validated, and compiled through a plugin pipeline. The basis for annotation processors and code generation.

spawn.build

repo

Programmatically launch and control processes, JVMs, and Docker containers. One abstraction (Platform, Application, Process) across all three. Define a Specification, launch it, get CompletableFuture lifecycle hooks back.

spin.build

repo

A script-free Java 25 build system. Inspects project structure through pluggable extensions, infers what to build, and runs the resulting dependency graph of tasks. Self-hosting.

serve.build

serve.build · repo

HTTP for Java 25. Virtual threads, structured concurrency, zero magic.

Domain demos

music.build

music.build · repo

MCP server for AI music composition. A typed, immutable music theory library covering pitches, rhythms, harmony, form, and transforms. Agents compose incrementally and export to MIDI and LilyPond.

Documentation

Denote

denote.sh · repo

An AI-native documentation framework. Docs structured so an agent can find what it needs without scraping prose, and so humans reading the same pages get a clear narrative too.

Denote Cloud

denote.cloud

A hosted version I've thought about but am not building right now. Join the waitlist if you want to be told when that changes.