I learn something, then I build with it.
Self-taught since a TI-84 calculator told me it could run Python, back in 6th grade math class. Five years later, still mostly Python and TypeScript, still more interested in what's happening underneath the UI than the UI itself.
About
It started with a Python option buried in a TI-84 calculator menu in 6th grade. I had no idea calculators ran anything besides calculator programs, so I went home and installed it on my laptop. Never really stopped.
No bootcamp, no degree yet, just a long line of projects that didn't work until they did. These days that's mostly Python and TypeScript, but I keep ending up back in backend, I like being the layer nobody sees.
Outside of the keyboard: the gym, and right now, my ebike. Just swapped the whole thing from 48v to 52v, new controller, full rewire from scratch. Different kind of debugging, still satisfying when it actually works.
# archetype query, no reflection, no per-entity branching
def query(world, *components):
for archetype in world.archetypes_with(components):
yield from archetype.iter_rows(components)Work
netfault
Wanted an actual excuse to learn async Rust instead of just reading tokio docs, so I built something I'd genuinely use, a proxy that injects latency, drops, corruption, and dead connections so I can see how anything I ship actually behaves on a bad network, not just a good one.
keel
A Python game engine on archetype ECS, ModernGL, and GLFW. 2D and 3D rendering, physics, hot reload, an ImGui inspector. Built because most Python game libraries either stop at hobby scope or stop being maintained. 451 tests, published on PyPI as keelpy.
vigil
Got curious about how antivirus software actually detects malware, past the marketing, so I built one from scratch to find out: ML-based PE analysis, rule scanners for scripts and documents, real-time filesystem and process monitoring, quarantine, all of it. The classifier ended up hitting 97.51% accuracy at 2% false-positive rate on EMBER 2018.
venvsnap
Snapshots a Python virtual environment into a single lockfile and rehydrates it from a local cache. The version of pip freeze I actually wanted, since installs are slow and requirements files drift.
multi-source-reconciliation-engine
A friend was complaining about how much manual work goes into reconciling data across systems that describe the same customers but never agree on field names or formats. I'd been meaning to test my Python skills on something outside of tutorials, so I built the whole pipeline, including a hand-rolled OOXML reader/writer (no openpyxl) and a from-scratch PDF byte-stream generator, since I wanted to understand the actual file formats instead of just calling a library.