<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>otter-crew — Writing</title><description>The independent software studio of Elliott Clark. Consulting for teams who need a system made legible again, a few projects of its own, and writing on software, teams, companies, and AI.</description><link>https://ottercrew.group/</link><language>en-us</language><item><title>The Range Reader, Part 10: Embeddings That Mirror Poker</title><link>https://ottercrew.group/blog/range-reader-10-embeddings/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-10-embeddings/</guid><description>No flat vocab table - factored additive embeddings built from poker primitives, and bet sizes fed as floats instead of bucketed tokens</description><pubDate>Thu, 23 Jul 2026 13:00:00 GMT</pubDate></item><item><title>The Range Reader, Part 9: Hole Cards as a Translation Problem</title><link>https://ottercrew.group/blog/range-reader-09-translation/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-09-translation/</guid><description>Mask the hidden cards, translate the public betting record into a belief over 1,326 combos, and re-read the range at every street</description><pubDate>Thu, 23 Jul 2026 12:00:00 GMT</pubDate></item><item><title>The Range Reader, Part 8: The Arena Deals the Data</title><link>https://ottercrew.group/blog/range-reader-08-dataset/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-08-dataset/</guid><description>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.</description><pubDate>Wed, 22 Jul 2026 16:00:00 GMT</pubDate></item><item><title>The Range Reader, Part 7: An Agent That Solves While It Plays</title><link>https://ottercrew.group/blog/range-reader-07-cfr-agent/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-07-cfr-agent/</guid><description>CFRAgent - budget-driven exploration, regret-based pruning, and board enumeration, wired into the arena</description><pubDate>Wed, 22 Jul 2026 15:00:00 GMT</pubDate></item><item><title>The Range Reader, Part 6: Trees in Rust Without Tears</title><link>https://ottercrew.group/blog/range-reader-06-trees/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-06-trees/</guid><description>CFR needs a huge self-referential, multi-threaded game tree - the memory-arena design behind CFRState</description><pubDate>Wed, 22 Jul 2026 14:00:00 GMT</pubDate></item><item><title>The Range Reader, Part 5: little-sorry - The Regret Math, in Rust</title><link>https://ottercrew.group/blog/range-reader-05-little-sorry/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-05-little-sorry/</guid><description>A small crate for a big idea: regret matching, CFR+, and the discounted and predictive variants - the numeric core every solver shares</description><pubDate>Wed, 22 Jul 2026 13:00:00 GMT</pubDate></item><item><title>The Range Reader, Part 4: Regret Is All You Need</title><link>https://ottercrew.group/blog/range-reader-04-regret/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-04-regret/</guid><description>Counterfactual regret minimization from zero - how tracking what you wish you&apos;d done converges to unexploitable poker</description><pubDate>Wed, 22 Jul 2026 12:00:00 GMT</pubDate></item><item><title>The Range Reader, Part 3: The Arena - Full-Rules Poker and the Agents That Play It</title><link>https://ottercrew.group/blog/range-reader-03-arena/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-03-arena/</guid><description>Inside rs-poker&apos;s arena - the game state machine, the Agent trait, historians, side pots, invariant-checked fuzzing, and the tournament that crowned a bot</description><pubDate>Wed, 22 Jul 2026 11:00:00 GMT</pubDate></item><item><title>The Range Reader, Part 2: Ranking Hands at Ludicrous Speed</title><link>https://ottercrew.group/blog/range-reader-02-evaluator/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-02-evaluator/</guid><description>The perfect-hash hand evaluator - how rs-poker ranks poker hands in less than a nanosecond</description><pubDate>Wed, 22 Jul 2026 10:00:00 GMT</pubDate></item><item><title>The Range Reader, Part 1: A Deck of Cards Is a u64</title><link>https://ottercrew.group/blog/range-reader-01-cards/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-01-cards/</guid><description>Ten years of representing cards, hands, and decks in Rust - from Vec&lt;Card&gt; to bitsets, and why representation sets your speed ceiling</description><pubDate>Wed, 22 Jul 2026 09:00:00 GMT</pubDate></item><item><title>The Range Reader, Part 0: Teaching a Computer to Read Your Mind at Poker</title><link>https://ottercrew.group/blog/range-reader-00-intro/</link><guid isPermaLink="true">https://ottercrew.group/blog/range-reader-00-intro/</guid><description>There is no open source engine for multiway no-limit hold&apos;em. A 13-part series building one - fast cards, a full-rules arena, CFR, and a GPT that reads your hand</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate></item><item><title>RS-Poker V5: The one with self learning Agents</title><link>https://ottercrew.group/blog/poker-v5/</link><guid isPermaLink="true">https://ottercrew.group/blog/poker-v5/</guid><description>rs-poker v5.0.0 releases with async RL arena, a state-of-the-art CFR agent, and an `rsp` CLI</description><pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate></item><item><title>Welcome to Otter Crew</title><link>https://ottercrew.group/blog/welcome/</link><guid isPermaLink="true">https://ottercrew.group/blog/welcome/</guid><description>Welcome, lets discuss what Otter Crew is, and what we&apos;re about.</description><pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate></item></channel></rss>