OP-1 Lab
Blackfin assembly, Python, GNU bfin toolchain, op1repacker
Mapping the closed Blackfin firmware of the original OP-1 synthesizer to see how it works, then writing an oscillator in assembly that runs on the hardware itself — every modification byte-verified before flashing, so the stock firmware can always be restored. The firmware work stays in a private repo; the write-up is the public artifact.
armak.tech
Vite, EJS, Vanilla JS, HTML Canvas
Live production website for a Southern California low-voltage & networking firm. A static Vite + EJS build with hand-written Canvas animations — a mouse-reactive particle network and an animated SVG service-area map — lazy-loaded per viewport, a backend-less contact form, and WebP hero images that load early.
Incighder
Next.js, TypeScript, Python, MySQL, Gemini 2.5 Flash
Artist-scouting tool built around one question that turned out to be the hard part: are these accounts actually the same artist? Search-backed discovery finds candidate profiles, Gemini verifies the ambiguous ones, and patient scraping (24-hour caches, jittered backoff) turns six platforms’ metrics into growth history and one traction score.
Beatpack
Electron, React, Node.js, ffmpeg
Started as scripts for my own music workflow, grew into a desktop app that automates the release grind for beat producers: stem zipping, MP3 encoding, cover-art overlay, and ffmpeg-driven video assembly. Dropping in a folder does the export work I used to do by hand.
Expert
React, Node.js, Express, JSON store (MySQL optional), WASM OCR
Personal-knowledge tool that makes everything you’ve read searchable by content: image-only scans are detected and run through a background WASM OCR pipeline, so even text-less PDFs join one searchable collection. Searching across sources is the next piece.
Ezzy Shop
AWS EC2, Nginx, Redis, PostgreSQL, Node.js, Express, React, Docker
200 → 800 req/s
230 → 70 ms
Chased bottlenecks through the whole stack of an e-commerce product service — application, database schema, and infrastructure — with every change measured under load (K6, Loader.io).
write-up on request
Portboard
Node.js (zero dependencies)
A single-file dashboard that lists a Mac’s listening ports as tappable links, so a phone on the same network or tailnet can jump straight into a local dev server. LAN-only, no hosted demo.
Delegate
Shell, Python
A shell wrapper that hands a task to another model and keeps one readable transcript per run, with a terminal and web viewer for browsing runs and watching them live.
Termdeck
Python, iTerm2 Python API
Mirrors iTerm2 sessions to a phone over Tailscale: read scrollback, type into a session, and share one read-only with a link.
Deckhand
Node.js
Read-only collectors snapshot a Mac into files, with a small web UI and a local-model question box over the snapshot.