Work
The Korg monologue has a great voice architecture, but it is monophonic and lives in hardware.
Playing chords on that sound means buying more hardware or settling for an approximation.
Built a polyphonic software synth on the monologue's architecture: two oscillators with sync and ring mod, a drive filter, two envelopes, and an LFO, with original branding and sounds.
A JUCE 8 / C++20 plugin (VST3, AU, standalone) with PLAY macros, a full EDIT panel, and MIDI learn on every control.
Surge XT has hundreds of parameters across oscillators, filters, FX, and modulation—impossible to keep in working memory during a session.
Asking an AI for help with sound design means the model is guessing from training data, not reading the actual parameter documentation.
Built an MCP server that ingests and chunks the official Surge XT docs, exposing search, section fetch, and parameter lookup as tools AI models can call directly.
AI assistants can now look up exact knob behaviour and guide patch recreation with authoritative documentation.
Stacking vocal harmonies means recording take after take, or renting a harmonizer that turns the singer into a chipmunk.
Pitch shifting that ignores the voice's formants destroys the character of the singer.
Built an open-source C++ vocal harmonizer plugin that uses time-domain PSOLA to turn one mono line into eight harmonies.
VST3, AU, and standalone on macOS, Windows, and Linux, with diatonic stacks, pedal drones, MIDI chords, and doubling.
Document extraction is often brittle, lossy with images, or prohibitively expensive at scale.
Generic OCR ignores structure; most "AI study tools" quietly fail on diagrams, equations, and screenshot-heavy slides.
Built an opinionated document intelligence CLI that uses vision LLMs and config-driven RAG to turn arbitrary slides, papers, and textbooks into clean, full-context markdown.
Static PDFs become queryable, refinable knowledge—ready for RAG, notes, flashcards, and assessment pipelines.
Writing Rust extensions for Python means maintaining a C FFI layer, a Python wrapper, and keeping both in sync with the Rust API.
Every type change requires updates in three places. The binding layer is always a commit behind the implementation.
Built a compiler that reads Rust source, reflects the public type surface, and emits the FFI layer, native extension, and .pyi stubs automatically.
Bindings become a compiler output. Change the Rust signature, run ferryx, done.
LLM pipelines stitch together inference servers, vector stores, and orchestration layers across multiple process boundaries.
The model is fast; the glue is slow. Every HTTP hop and subprocess call adds latency the user feels but the benchmark doesn't capture.
Built a C++ execution runtime that compiles LLM and ML pipelines into static graphs—embed, retrieve, and generate as typed first-class operations with no interpreter overhead.
Single binary, no orchestration daemons. Pipelines run as compiled programs.
Adding semantic search to a small project means standing up Pinecone, Weaviate, or a Postgres extension—infra for something that should be trivial.
Hosted vector databases are overkill for local tools; rolling your own HNSW index is a week of work that has nothing to do with the actual project.
Built an embedded Rust vector store with a single-file persistence model—same mental model as SQLite, but for approximate nearest-neighbour search.
Drop-in semantic search with no server, no daemon, no connection pool.
Note-taking tools optimise for writing, not retrieval. Months later, the note you need is buried and keyword search returns 40 results.
Semantic search requires a vector store and embedding pipeline; RAG synthesis requires an LLM—both are heavy to wire up just for personal notes.
Built a Rust CLI and TUI that embeds notes locally, retrieves by meaning, and synthesises answers from your own knowledge base—nothing leaves your machine.
Ask questions in plain English. Get answers drawn from your own notes.
ADHD attention doesn't follow timers—it fluctuates. Productivity tools that ping on a schedule create alarm fatigue and break focus.
Most assistants are either voice-only chatbots or rigid schedulers. Neither understands what's on your screen or whether you're actually focused.
Built a macOS desktop companion that uses on-device vision to detect when you drift, then nudges you with shame-free, adaptive voice — all local-first.
A floating orb that watches your screen, talks to you, and remembers things — with neurodivergence-aware nudging that respects hyperfocus and quiet hours.