About
I build software because I want it to exist.
Web apps, AI and computer-vision tooling, interactive experiments, and the infrastructure under them — end to end, with a bias toward actually finishing things. Lately a lot of that energy goes into making local AI dependable.
How I got here
I started building things because I wanted them to exist.
Not for a class, not because someone asked. I needed a tool, couldn't find one, and built it. A synthesizer in the browser. An interactive floor-plan editor. A pipeline that turns intake forms into scored project requests. That happened again, and again — and somewhere along the way the building became the point.
I got good at going from idea to deployed software across the whole stack: front-ends, backends, databases, CI/CD, the infrastructure underneath. The same curiosity pulls me sideways a lot — into computer vision, generative art, game loops, agent workflows. Right now the thing I can't put down is local AI: the math is simple, but the software layer between a GPU and a model is where everything breaks, so I fix it upstream and write down what I learn.
How I work
A few rules I actually keep.
Simple until proven otherwise
SQLite before Postgres. Vanilla JS before frameworks. A single server before microservices. Complexity has to earn its place.
Own the whole stack
Frontend, backend, database, deployment. If it runs in production, I can debug it in production.
Fixes ship upstream
When I hit a bug in a tool I use, the work isn't done until there's a pull request. The contributions page is the record.
Finish the last 20%
Most ideas die at 80%. The polish, the edge cases, the deploy — that's where the work becomes real.
Toolkit
What I build with.
Frontend
React and server-rendered Django templates, vanilla JS and Canvas/WebAudio when the work calls for it. Responsive, accessible, fast.
Backend
Django as the daily driver, FastAPI for high-performance APIs. Python for almost everything, TypeScript when the frontend demands it.
AI & vision
LLM and agent workflows, RAG pipelines, OpenCV and MediaPipe for vision — and contributions to local-AI engines like Lemonade.
Infrastructure
Docker, GitHub Actions for CI/CD, Nginx out front, SQLite or Postgres behind. Deployed to real Linux VMs, not to abstractions.