Notes
Open-source fixes, AI tooling, Git, and CSES problem solutions.
2026
Aug 30Complexity ratchets: pay down tech debt without a rewriteA complexity ratchet is a CI check that fails only when code gets worse, not when it is merely bad. How we wired per-file complexity baselines into a monorepo and actually started paying the debt down.Aug 30Designing a downloader CLI that is also a libraryHow I restructured an image downloader around an importable async core, typed errors, and a JSONL manifest that doubles as an image-text dataset — and deprecated the old format without breaking anyone.May 2Teaching Myself CS: The PlanA structured self-study plan for computer science fundamentals — algorithms, systems, databases, networks, and mathematics, with resources and a realistic timeline.Apr 21Building a Second Brain with Obsidian, Zettelkasten, and an AI AgentBuilding a second brain with Obsidian and Zettelkasten — atomic notes, linking ideas, periodic reviews, and an AI agent that surfaces connections you'd otherwise miss.Apr 16Fixing Silent $0 Streaming Costs in AgentBudget: An OSS ContributionAn OSS contribution to AgentBudget: fixing silent $0 costs for streaming responses by hooking into the token usage callbacks that LangChain emits post-stream.Apr 15Building a Local AI Stack: Hermes, Bifrost, Telegram, and CamoufoxBuilding a local AI stack: Hermes as the agent framework, Bifrost for LLM routing, a Telegram bot as the interface, and Camoufox for browser automation — all running on local hardware.Mar 14Freeseek: Turning DeepSeek's Web Chat into an OpenAI-Compatible APIFreeseek proxies DeepSeek's web chat interface into an OpenAI-compatible API endpoint, enabling local tools and agents to use DeepSeek R1 without an API key.Mar 2Fixing Parallel Tool Call Streaming in Bifrost: An OSS Bug HuntDebugging a parallel tool call streaming bug in Bifrost — how delta chunks from different tool calls interleave incorrectly and the fix that restores correct JSON assembly.Feb 19Many Small Tasks, One Deadline: Running Parallel AI Agents with Git WorktreesRunning parallel AI coding agents with Git worktrees — isolate each task to its own working tree, fire agents concurrently, and merge results without conflicts.
2025
Dec 4Git: Internals and the Commands That MatterGit internals and practical patterns — objects model, rebase vs merge, worktrees, reflog recovery, and the commands that matter for day-to-day engineering work.Sep 19CSES Gray Code: Sequences That Change One Bit at a TimeGray code generates binary sequences where consecutive values differ by exactly one bit — the algorithm, its uses in hardware and error correction, and a CSES solution.Sep 19CSES Bit Strings: Counting Binary Strings with 2^n mod pCSES bit string enumeration — counting and generating n-character strings over a binary alphabet using recursion and bitmask techniques.Sep 19CSES Two Sets: Equal-Sum Partition in O(n)CSES two sets — partitioning integers 1..n into two subsets with equal sum, with a proof of when this is possible and an O(n) construction.Sep 18CSES Permutations: No Two Neighbours Differ by OneCSES permutations — constructing a permutation of 1..n with no two adjacent elements differing by 1, using an interleaving strategy.Sep 18CSES Increasing Array: Minimum Increments in One PassCSES increasing array — the minimum number of operations to make an array non-decreasing when you can only increment elements.Sep 18CSES Repetitions: Longest Run of One Character in O(n)CSES repetitions — finding the longest run of a single character in a string in a single linear pass.Sep 18CSES Missing Number: Finding the Gap with the Sum FormulaCSES missing number — finding the missing integer in a permutation of 1..n in O(n) time using the arithmetic sum formula.Sep 18CSES Weird Algorithm: Simulating the Collatz SequenceCSES weird algorithm (Collatz conjecture) — simulating the 3n+1 sequence and the open question of whether it always terminates.