Skip to content

Open Source

Tools for language processing, music generation, and search infrastructure.

MygramDB

In-memory full-text search engine with MySQL replication. Sub-80ms queries, even when 75% of your data matches.

Full-text search broke on a 100M-pageview/month project. Built this, shipped it to production. Problem solved.

C++RPMDEBDocker

Suzume

Japanese tokenizer for the browser. Under 400 KB, zero dictionary files.

A design I’d had in mind for years, finally built with AI pinning it down through massive test suites. MeCab was no oracle—it had its own bugs. Language is endlessly hard.

C++WASMLibrary

MIDI Sketch

Pop music MIDI generator grounded in music theory. 9 tracks, seed-based, deterministic.

Built for my day job—briefing composers on song ideas. Watching music emerge from C++ was a strange and fascinating feeling.

C++WASM

MIDI Sketch Bach

Bach instrumental works generator. Fugues, chorales, cello suites, the Chaconne.

Thought counterpoint was just logic. I was wrong. Every generated piece reminds me how great Bach was. Music is endlessly hard.

C++WASM

nvecd

In-memory vector recommendation engine. Aiming for real-time personalization speed.

Wanted to build a real-time recommendation engine like the ones behind modern feeds. Went in-memory to handle the transaction volume.

C++

libsonare

librosa-compatible audio analysis for C++ and browsers. BPM, key, chords, beats.

A tool as great as librosa being Python-only felt unfair to every other language. So I built one as a WASM project.

C++PythonWASMLibrary

mysql-event-stream

MySQL binlog CDC engine with C ABI. Real-time row-level change events for Node.js and Python.

Built to kill the MySQL-to-Redis sync batches. No native dependencies — just npm install and go.

C++TypeScriptPythonLibrary

Coverwise

Combinatorial test generation engine. Pairwise / t-wise coverage in browsers, Node.js, and native C++.

Wanted pairwise coverage computation entirely in the browser. Built it in C++/WASM — though in hindsight, TypeScript alone might have been enough.

C++WASMLibrary

Mejiro

Japanese vertical text layout engine. Line breaking, kinsoku shori, hanging punctuation, ruby, pagination — zero DOM dependencies.

Was planning a novel publishing platform. Realized the viewer’s line breaking had to be solved first. Built this as the foundation.

TypeScriptLibrary

node-cli

Zero-dependency, batteries-included CLI framework for Node.js / TypeScript. Interactive shell, tab completion, colors, tables, prompts — all built in.

Loved Vorpal for wrapping complex REST API servers into interactive CLIs, but it went unmaintained. Built my own so I could keep shipping.

TypeScriptLibrary

coredns-dynresolve

CoreDNS plugin for REST API-driven DNS failover. No etcd, no Consul — just HTTP and A records.

Needed a failover switch for Valkey Sentinel at the IDC. Nothing fit, so I wrote a CoreDNS plugin.

GoRPMDEB

node-ascii-eyedrops

True visual programming for JavaScript. Transform your code into executable ASCII art.

My favorite Perl module, ported to Node.js.

TypeScriptLibrary

BPM Detector

Comprehensive music analysis. Tempo, key, chords, structure, timbre — all from audio.

Needed to put music into words when commissioning tracks at work. Python because librosa was the only option back then.

PythonDocker

Playground

Side projects shipped as web apps. Not open source — just playable.

Formetra

Stage formation design tool for idol and dance groups. 3D visualization, beat-synced animation, and auto-placement solver.

Built on the hypothesis that visualizing parts of choreographers' tacit knowledge and processes could streamline commercial production and help performers learn more efficiently.

Vue 3Three.jsTypeScript
Formetra screenshot