Last updated July 28, 2026
Building
I’ve built Belote as a new game in OpenSpiel and still need to get it merged upstream. In the meantime I’m already working on the ML side, training and evaluating agents to play it. Once it takes shape, it’ll show up under projects, with progress tracked week to week in the journal.
Learning
I’m focused on ML infrastructure right now: training pipelines, serving, and the plumbing that makes a model reliable in production. I’m working through the AWS Certified Machine Learning Engineer - Associate (MLA-C01) course on Udemy toward that certification. Anything that sticks will get written up in notes.
Reading
Currently reading The DevOps Handbook. See the reading list for everything else in rotation.
Timeline
- Insta Insight
Always-on Android tablet dashboard showing my wife's Instagram Creator account stats, wake-triggered against the Graph API with a self-refreshing token and no backend.
- Belote AI: an upstream ISMCTS seeding bug
While implementing resample_from_infostate for ISMCTS, found that OpenSpiel's Python ISMCTSBot resampler ignores its random_state seed and falls back to wall-clock time. Filed a fix upstream as open_spiel#1584.
- Belote AI
Game-playing agents for Belote on OpenSpiel, built as a ladder of measured rungs: hand-built rules, Monte Carlo search, networks that replace the search, and a language model at the table.
- Belote AI: random vs random baseline
Got a legal, seedable Belote game running in OpenSpiel and used a uniform-random-vs-random match as the first sanity check on the evaluation harness itself.
- VideoEdit
Local web app that turns a CapCut cooking-video export into bilingual captions and dialogue transcripts, either as SRTs or written straight back into the CapCut draft.
- FastMock
Python middleware that mocks FastAPI endpoints from their own declared response models, with deterministic seeded responses, field-name-aware data, fault injection, and FastAPI-shaped request validation. Published on PyPI.