About
I build web apps, iOS apps, and real-time systems, usually on my own, from the first line of code to the server it runs on.
I'm a software engineer in San Francisco. Most of what I make starts because I wanted it to exist and it didn't yet. drpl.co came from wanting to send a file between two devices in a room without uploading it to anyone's cloud first. splitflap.org came from liking the split-flap departure boards in old train stations enough to rebuild one in a browser.
Music Player Offline came from wanting to play my own files on my phone without an account and without ads. It has been on the App Store since December 2025 and is at 8,000 downloads with a 4.7 rating. It plays local audio only, uploads nothing, and tracks nothing. Version 2 added gapless playback, background play, a sleep timer, and switchable library labels so it works for podcasts, audiobooks, and music alike.
I work across the whole stack because the projects need it. Front end in React or plain JavaScript, back ends in Node and Express, iOS in Swift, cross-platform in Flutter, desktop in Electron. I run my own servers on Linux behind Nginx and Cloudflare instead of paying a platform to do it, which means I also handle the deploys, the monitoring, and the fixes at two in the morning when something falls over.
Lately most of my time goes into running models locally rather than calling an API. I trained a 10 million parameter model from scratch mainly to understand what actually happens inside one, and I've been working with Whisper, ONNX, and WebGPU to get inference running in the browser with no server involved at all. It's the same instinct as the rest of my work: figure out how much can happen on the device before you need anyone else's machine.
I'd rather ship one thing that works than ten demos that don't.
What I work with
Languages. JavaScript, TypeScript, Python, Swift, Dart, C, C++, SQL.
Web and app. Node.js, Express, React, Socket.IO, WebRTC, Flutter, Electron, progressive web apps.
Machine learning. PyTorch, CUDA, ONNX, WebGPU, Whisper, Transformers.js, MediaPipe.
Infrastructure. Linux, Docker, Nginx, Cloudflare, FFmpeg, Git.
Certifications
Python fundamentals, data structures, and working with web data. Credential ID MPT1R030XQO9.