I make CUDA-shaped machine learning run on Apple Silicon.
It started as a grudge. Nearly every interesting ML project assumes an NVIDIA card, and I have a Mac, so I kept hitting the same wall from different directions — until I got tired of going around it and started going through. That turned into an int8 Metal backend for CTranslate2, an MPS lane for finetrainers, and Open-Sora 2.0 generating video on a laptop.
Sometimes the fix belongs upstream. My favorite so far is
bitsandbytes#1993:
the Lion optimizer was folding weight decay into the gradient before the sign(),
which corrupts the direction of the update, not just its size. It had been sitting
there because the test suite only ever ran Lion with weight_decay=0 — the one
setting where the bug is invisible. Merged.
Fifteen years of web before this (TypeScript, React, Node), and an art degree before that, which is my excuse for caring how a thing feels and not just whether it runs. The music, the synths, and a guitar wired to a Teensy live over at ericeaglstun.com.




