Projects
-
ChordBoy
A MIDI chord controller for playing jazz voicings from a computer keyboard. React, TypeScript, Web MIDI, Tone.js
-
Patch Boy
A chord instrument with eight sample voices, each with its own MIDI port and channel. React, TypeScript, Web Audio, Web MIDI
-
kitboy
Builds drum kits and exports them for the MPC, M8, SP-404 MK2, and Ableton. React, TypeScript, Web Audio, JSZip
-
SplitBoy
A desktop app that splits songs into stems with Demucs. Electron, FastAPI, PyTorch
-
SquidMaps
A shared map of squid sightings, with photos. React, Google Maps, Supabase
-
Radio SquidMaps
One stream everyone hears at the same time, with chat. It's also the player in the top bar. WebSockets, audio streaming
-
Ski Conditions
Weather and lift status for resorts in the Pacific Northwest, Colorado, the Northeast, and Japan. React, Leaflet, Express, Open-Meteo
-
Stupid
A multiplayer climbing card game for phones. Bots fill empty seats. React, Socket.io, Fastify
-
Blink Drive
Multiplayer space combat in the browser, with gamepad support. Python, FastAPI, WebSockets, Canvas
-
Wandering Cat
A Chrome extension that sets a pixel cat loose on any web page, like the one walking around this one. JavaScript
Work
Sirona Medical · Staff Software Engineer
2021 – presentI'm the main engineer on Sirona's diagnostic image viewer and own its imaging code, the layer that turns DICOM data into pixels.
- Replaced a licensed third-party renderer with our own VTK.js viewport.
- Built the core reading tools: window/level, measurements, ROI annotations, MPR, linked scrolling, and localizers.
- Designed composite stacks and prior-study matching, which make fused PET/CT possible.
- Led a multi-year DICOM conformance effort on the windowing and VOI LUT pipeline.
- Own the viewer's memory use and speed, from a 50 GB LRU pixel cache to a 53% cut in main-thread time when priors load.
Music
-
No tracks yet.
/music
Photos
No photos yet.
/photos