Mandarin Forge and Spanish Forge
Language-learning platforms I built from scratch and run myself. They generate stories and sentences from the vocabulary a learner already knows, with audio in regional accents and spaced-repetition review. Built with TypeScript, they include background job processing, text-to-speech generation, LLM integration, and payments. I built Mandarin Forge primarily for my own HSK 3 study and still use it daily; Spanish Forge brings the same approach to Spanish.
mandarinforge.com →
spanishforge.com →
went.place
A private, map-first archive for Foursquare and Swarm check-in history. Upload an account export to map and search every check-in, replay journeys, and view calendar heatmaps and photos. Profiles are private by default, with controls for what to share. Built with SvelteKit and Rust.
went.place →
Jazzity
A jazz theory reference for chords, scales, and progressions in all twelve keys, each written out on the staff with common voicings, playback, and printable practice sheets. You can type in chord changes to get a roman-numeral analysis, or the notes you're holding to see which chords they spell. I first built it in 2010–2012 and rebuilt it in 2026 on Rails 8.
jazzity.com →
github.com/eigenben/jazzity →
Timothy Hughes Rare & Early Newspapers
A rebuild of my longest-running client's Rails application (powering their entire business) onto Rails 8 and modern terraformed infrastructure, plus a full redesign of the storefront. Done largely pro bono, partly as a way to explore the current generation of coding agents.
rarenewspapers.com →
jazz-harmony-embeddings
An embedding model for jazz chord progressions: a small transformer trained with contrastive learning over ~6,900 standards, encoded so a tune and its transpositions map to the same vector. Searching by harmony rather than melody surfaces contrafacts like Countdown and Tune Up. The model and an interactive demo are on Hugging Face.
github.com/eigenben/jazz-harmony-embeddings →
demo on Hugging Face →
python-exercises-generator
A framework for generating programming exercises with LLMs, including LoRA fine-tuning of open models and serving with vLLM.
github.com/eigenben/python-exercises-generator →