<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tim Urista · Writing</title>
    <link>https://timurista.ai/writing/</link>
    <atom:link href="https://timurista.ai/rss.xml" rel="self" type="application/rss+xml" />
    <description>Field notes on managing AI-assisted software delivery: how I scope the work, what I check before anything ships, and the bugs that got through anyway.</description>
    <language>en-us</language>
    <item>
      <title>Fitting a soccer pitch into your living room: a week of mixed reality on Quest</title>
      <link>https://timurista.ai/writing/overtrain-mixed-reality-week/</link>
      <guid isPermaLink="true">https://timurista.ai/writing/overtrain-mixed-reality-week/</guid>
      <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
      <description>A week building Overtrain, a mixed-reality soccer trainer for Meta Quest, plus a desktop mode and a phone app from the same code. Most of the hard work was spatial: getting the play area to sit on the real floor, inside the boundary you drew, and stay there. Here's what broke, how each fix worked, and what I'd do differently.</description>
    </item>
    <item>
      <title>When the agent finishes yesterday's task</title>
      <link>https://timurista.ai/writing/when-the-agent-finishes-yesterdays-task/</link>
      <guid isPermaLink="true">https://timurista.ai/writing/when-the-agent-finishes-yesterdays-task/</guid>
      <pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate>
      <description>What should a product do when an async agent's result arrives after the user changed or cancelled the goal? A deterministic demo with 11 synthetic schedules and three admission policies, the race a pre-check misses, and the wording for current, pending, cancelled and conflict states.</description>
    </item>
    <item>
      <title>Riding to war on an indoor bike: three.js, WebXR, and a Rust/WASM renderer</title>
      <link>https://timurista.ai/writing/outrider-three-js-wasm-renderer/</link>
      <guid isPermaLink="true">https://timurista.ai/writing/outrider-three-js-wasm-renderer/</guid>
      <pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate>
      <description>Outrider is a Meta Quest game where your indoor bike is the controller. Where to find its best moments, and what I learned when three.js spent too much CPU on draw calls: I wrote a lean draw loop in TypeScript and again in Rust/WASM, benchmarked all three, and the language mattered less than the leanness.</description>
    </item>
    <item>
      <title>When a weekly rebalance runs every minute: debugging a live ETF agent</title>
      <link>https://timurista.ai/writing/trendvesting-debugging-a-rebalance-loop/</link>
      <guid isPermaLink="true">https://timurista.ai/writing/trendvesting-debugging-a-rebalance-loop/</guid>
      <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
      <description>A live ETF agent sold 9 shares of SGOV and bought them back once a minute, 183 times in a day. How I found the loop, the four bugs behind it, the fixes and tests, and the diagnostics call that now catches all of them.</description>
    </item>
    <item>
      <title>Who pays for the KV cache? Designing showback for shared LLM inference</title>
      <link>https://timurista.ai/writing/unalloc-who-pays-for-the-kv-cache/</link>
      <guid isPermaLink="true">https://timurista.ai/writing/unalloc-who-pays-for-the-kv-cache/</guid>
      <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
      <description>A guide for platform and FinOps leads who have to split shared AI spend: which meter to charge by, where idle capacity goes, how to give every dollar one path into the ledger, and what a joined ledger can answer. Backed by measurements from unalloc, my open-source cost-attribution tool.</description>
    </item>
    <item>
      <title>Human in the Loop, Part 9: timurista.ai: rebuilding this website in a day, with sign-off at every step</title>
      <link>https://timurista.ai/writing/timurista-ai-rebuilding-this-website/</link>
      <guid isPermaLink="true">https://timurista.ai/writing/timurista-ai-rebuilding-this-website/</guid>
      <pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate>
      <description>How I scoped, reviewed and shipped the rebuild of this site: a framing I pulled back within the hour, numbers I deleted because I couldn't source them, a form that showed my phone number to the wrong people, and a retired Worker route that quietly shadowed the new API.</description>
    </item>
    <item>
      <title>Human in the Loop, Part 10: unalloc: checking a cost-attribution tool before anyone quotes its numbers</title>
      <link>https://timurista.ai/writing/unalloc-validating-ai-cost-attribution/</link>
      <guid isPermaLink="true">https://timurista.ai/writing/unalloc-validating-ai-cost-attribution/</guid>
      <pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate>
      <description>How I scoped and checked unalloc, an open-source tool that joins Kubernetes and LLM provider bills: nine defects caught before release, a budget-capped H100 run with a verified teardown, a paper build that refuses silent typos, and a headline I softened because no meter is ground truth.</description>
    </item>
    <item>
      <title>Human in the Loop, Part 1: TendForm: managing a solo SaaS build to production quality</title>
      <link>https://timurista.ai/writing/tendform-managing-a-solo-saas-build/</link>
      <guid isPermaLink="true">https://timurista.ai/writing/tendform-managing-a-solo-saas-build/</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
      <description>How I scoped, reviewed and validated a HIPAA-capable form builder I built alone: the rules I wrote down, the checks I trusted, the 14 bugs that got through anyway, and the process I'd change.</description>
    </item>
    <item>
      <title>Human in the Loop, Part 3: TigerMill: quality gates for an AI content pipeline</title>
      <link>https://timurista.ai/writing/tigermill-quality-gates-for-ai-content/</link>
      <guid isPermaLink="true">https://timurista.ai/writing/tigermill-quality-gates-for-ai-content/</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
      <description>How I defined acceptance for a novel-to-webtoon pipeline: a gate after every stage, approvals that name who made them, spend behind a human trigger, and tests that guard the defects I already paid for once.</description>
    </item>
    <item>
      <title>Human in the Loop, Part 2: TrendVesting: validating 2.5 years of production AI</title>
      <link>https://timurista.ai/writing/trendvesting-validating-production-ai/</link>
      <guid isPermaLink="true">https://timurista.ai/writing/trendvesting-validating-production-ai/</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
      <description>How I review and validate an AI trading system I own: change records with production numbers, invariant tests, reconciliation audits and calibration checks, and the numbers they overturned.</description>
    </item>
  </channel>
</rss>
