Case studies
The long version
I spent fifteen years building things for other people. Banks, defense, automotive retail, healthcare, state records. Some of it was first of its kind, some of it won awards, and one of it was acquired.
Almost none of it can be shown to you.
That work is authentic and now inaccessible. While it is possible to verify that a bank launched a single-page application in 2014—an uncommon achievement at that time—there is no opportunity to review the underlying code, understand my decision-making process, or gain insight into the collaborative challenges that occurred during critical moments of the project. This limitation is a common experience among senior engineers. The more significant the environment, the less of the work can ever be publicly shared.
I had wanted to write open source that entire time and never found anything reasonable enough to build. Not a shortage of ideas — a shortage of problems I actually had, repeatedly, and understood well enough to solve properly. Libraries written for problems you have merely read about come out looking right and being useless.
Then I went and learned the machine-learning side properly, started building my own models, and discovered that most of the job isn’t modeling.
It is data. Arriving from scraped pages and from APIs, in every format there is, none of them agreeing. Pieces of the same record living in different sources under different names, needing to be merged, labeled, and passed up through the pipeline in a form the next stage can trust. Every value point-in-time accurate — as it faithfully stood then, not as it reads now. The opposite side derived when only one side exists. A growing case space deciding whether a datum is usable at all.
So many pieces have to pass through that chain, and each must be correct at all times, because one mistake anywhere degrades the model.
And nothing tells you. That’s the part that reorganized how I build. If a future value leaks backward into training, the model doesn’t get worse — it gets better. Accuracy climbs. The backtest improves. Every number moves the way you were hoping. Nothing fails, nothing alerts, and everything built on top of that measurement is resting on nothing.
That was the problem I had been waiting for, and everything since has been the same problem at a different layer.
The most significant impact of this work was establishing a comprehensive technical infrastructure—spanning development, deployment, and maintenance—that enabled a single individual to run effective and reliable machine learning operations. I developed a suite of tools for complex data tasks and released them as open-source projects. These tools gained widespread adoption through word of mouth, despite my lack of an existing audience. Working independently, I handled all aspects of development: brand creation, documentation, website and backend development, API design, secure data transport, market data integration, and data modeling. I also architected and deployed sixteen production-grade machine learning models, unified within a fully automated end-to-end pipeline maintained by a single person. This deployment demonstrates the project’s technical achievement in both modeling depth and comprehensive management of the software and infrastructure stack.
Then I hit the version of it that scared me. A prediction record is worthless if the person who published it can edit it afterward, and I couldn’t prove I hadn’t done so. Not because I would lie — because a schema migration doesn’t feel like lying, and from the outside those look identical. So I built a ledger that timestamps each day’s Bitcoin claims, which I can’t access.
Six weeks in, a schema migration rewrote an anchor that was already published. I broke my own append-only rule. That day’s timestamp can never be made to bind again, and the record says so, permanently, because a rule that bends when it’s inconvenient for its author isn’t a rule.
The tools are becoming Rust command-line binaries now, for the reason everything else here happened: a pipeline cannot click a menu, and the consumer that matters next isn’t a person.
I have never written about any of this publicly. That was deliberate — I wanted the work standing on its own before I said anything about it. This is the long version.