Writing
Notes on software, teams, and companies.
Writing about building software, leading teams, running companies, and where AI actually changes the work. Shaped by building developer-efficiency tooling and machine learning for ads at Facebook, and a stretch in the CEO seat.
The Range Reader, Part 10: Embeddings That Mirror Poker
No flat vocab table - factored additive embeddings built from poker primitives, and bet sizes fed as floats instead of bucketed tokens
The Range Reader, Part 9: Hole Cards as a Translation Problem
Mask the hidden cards, translate the public betting record into a belief over 1,326 combos, and re-read the range at every street
The Range Reader, Part 8: The Arena Deals the Data
Machine learning starts with a dataset. Ours is a deliberately rough v0.1 - over 600,000 arena hands, a shove-happy cast of agents, and every hole card labeled.
The Range Reader, Part 7: An Agent That Solves While It Plays
CFRAgent - budget-driven exploration, regret-based pruning, and board enumeration, wired into the arena
The Range Reader, Part 6: Trees in Rust Without Tears
CFR needs a huge self-referential, multi-threaded game tree - the memory-arena design behind CFRState
The Range Reader, Part 5: little-sorry - The Regret Math, in Rust
A small crate for a big idea: regret matching, CFR+, and the discounted and predictive variants - the numeric core every solver shares
The Range Reader, Part 4: Regret Is All You Need
Counterfactual regret minimization from zero - how tracking what you wish you'd done converges to unexploitable poker
The Range Reader, Part 3: The Arena - Full-Rules Poker and the Agents That Play It
Inside rs-poker's arena - the game state machine, the Agent trait, historians, side pots, invariant-checked fuzzing, and the tournament that crowned a bot
The Range Reader, Part 2: Ranking Hands at Ludicrous Speed
The perfect-hash hand evaluator - how rs-poker ranks poker hands in less than a nanosecond
The Range Reader, Part 1: A Deck of Cards Is a u64
Ten years of representing cards, hands, and decks in Rust - from Vec<Card> to bitsets, and why representation sets your speed ceiling
The Range Reader, Part 0: Teaching a Computer to Read Your Mind at Poker
There is no open source engine for multiway no-limit hold'em. A 13-part series building one - fast cards, a full-rules arena, CFR, and a GPT that reads your hand
RS-Poker V5: The one with self learning Agents
rs-poker v5.0.0 releases with async RL arena, a state-of-the-art CFR agent, and an `rsp` CLI
Welcome to Otter Crew
Welcome, lets discuss what Otter Crew is, and what we're about.