<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by scripts/generate-sitemap.mjs from content/posts.ts. Do not edit. -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mobile Byte Sensei — Journal</title>
    <link>https://mobilebytesensei.com/journal</link>
    <description>Mobile Byte Sensei builds apps, games, web platforms, desktop software, AI and custom products to your requirements, with dedicated teams across every platform.</description>
    <language>en</language>
    <atom:link href="https://mobilebytesensei.com/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Offline-first is a data model, not a cache</title>
      <link>https://mobilebytesensei.com/journal/offline-first-is-a-data-model</link>
      <guid isPermaLink="true">https://mobilebytesensei.com/journal/offline-first-is-a-data-model</guid>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <description>Most &quot;offline support&quot; is a cache with optimistic writes, and it fails the first time two people edit the same record on a train. What actually works is treating the local database as the source of truth — including the part nobody enjoys, which is deciding who wins a conflict and how a human can audit it.</description>
      <category>Mobile</category>
    </item>
    <item>
      <title>We quantised a model to 31ms and lost almost nothing</title>
      <link>https://mobilebytesensei.com/journal/quantised-to-31ms</link>
      <guid isPermaLink="true">https://mobilebytesensei.com/journal/quantised-to-31ms</guid>
      <pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate>
      <description>What INT8 quantisation actually cost on a production defect-detection model, measured rather than assumed — including the two classes where it did cost something, and why we shipped anyway.</description>
      <category>AI</category>
    </item>
    <item>
      <title>A performance budget you can actually hold</title>
      <link>https://mobilebytesensei.com/journal/a-performance-budget-you-can-hold</link>
      <guid isPermaLink="true">https://mobilebytesensei.com/journal/a-performance-budget-you-can-hold</guid>
      <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
      <description>Setting the target against a five-year-old mid-range phone instead of the developer laptop, wiring it into CI, and what happens politically when the build fails for being 200ms slow.</description>
      <category>Engineering</category>
    </item>
    <item>
      <title>Kotlin Multiplatform, two years in</title>
      <link>https://mobilebytesensei.com/journal/kotlin-multiplatform-two-years-in</link>
      <guid isPermaLink="true">https://mobilebytesensei.com/journal/kotlin-multiplatform-two-years-in</guid>
      <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
      <description>Where sharing code paid for itself, where it cost more than two native codebases would have, and the rule we now use to decide before writing anything.</description>
      <category>Mobile</category>
    </item>
    <item>
      <title>Designing every state, including the ugly ones</title>
      <link>https://mobilebytesensei.com/journal/designing-every-state</link>
      <guid isPermaLink="true">https://mobilebytesensei.com/journal/designing-every-state</guid>
      <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
      <description>Empty, loading, partial, stale, offline, error and permission-denied. The states nobody puts in the Figma file are the ones users hit on their worst day.</description>
      <category>Design</category>
    </item>
    <item>
      <title>What a paid trial task is actually testing</title>
      <link>https://mobilebytesensei.com/journal/what-a-paid-trial-tests</link>
      <guid isPermaLink="true">https://mobilebytesensei.com/journal/what-a-paid-trial-tests</guid>
      <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
      <description>We changed our hiring exercise three times. Here is what each version measured, what it accidentally selected for, and why we now pay for it.</description>
      <category>Team</category>
    </item>
  </channel>
</rss>
