<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>SynthoCore Engineering</title>
    <link>https://synthocore.ca/engineering/</link>
    <description>Writing on how calculations are made, checked, and reviewed. Methodology, not product — each piece is something you can apply with a spreadsheet and a pencil.</description>
    <language>en</language>
    <lastBuildDate>Mon, 07 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://synthocore.ca/engineering/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Merged is not deployed, and deployed is not served</title>
      <link>https://synthocore.ca/engineering/merged-is-not-served/</link>
      <guid isPermaLink="true">https://synthocore.ca/engineering/merged-is-not-served/</guid>
      <pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate>
      <description>A merged change, a deployed change, and a served change are three separate observations, not one. A green pipeline, a resolving hostname, and an HTTP 200 each prove their own small thing — and none of them proves your content is in front of a user. The only verification is fetching the served page as a user would.</description>
    </item>
    <item>
      <title>The Cheapest Decisive Experiment: How We Pick the Next Test</title>
      <link>https://synthocore.ca/engineering/cheapest-decisive-experiment/</link>
      <guid isPermaLink="true">https://synthocore.ca/engineering/cheapest-decisive-experiment/</guid>
      <pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate>
      <description>When two explanations both fit a defect, rank candidate experiments by cost-to-decisiveness, not by how confident you feel. A decisive experiment splits the hypothesis space no matter which way it lands — and the confirmation run never does.</description>
    </item>
    <item>
      <title>Two Accounts, or It Didn't Happen: Proving Isolation With Two-Subject Tests</title>
      <link>https://synthocore.ca/engineering/two-accounts-or-it-didnt-happen/</link>
      <guid isPermaLink="true">https://synthocore.ca/engineering/two-accounts-or-it-didnt-happen/</guid>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      <description>A single-account test shows a subject sees its own data — never that another cannot see it. Isolation is a claim about the boundary between two subjects, so proving it takes two: open two independent subjects and assert one cannot observe the other.</description>
    </item>
    <item>
      <title>A Gate That Has Never Failed Proves Nothing: The Negative-Control Principle</title>
      <link>https://synthocore.ca/engineering/a-gate-that-never-failed/</link>
      <guid isPermaLink="true">https://synthocore.ca/engineering/a-gate-that-never-failed/</guid>
      <pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate>
      <description>A check that has always passed may be structurally unable to fail. The negative-control principle: a passing gate carries no information until it has been seen to fail on a deliberately broken input — and why fixtures should assert sentinels, never the real prohibited string.</description>
    </item>
    <item>
      <title>Fail-Closed by Default: Designing a Sign-In Door That Refuses Politely</title>
      <link>https://synthocore.ca/engineering/fail-closed-sign-in-door/</link>
      <guid isPermaLink="true">https://synthocore.ca/engineering/fail-closed-sign-in-door/</guid>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <description>A sign-in door should deny when it is unsure, not permit. The engineering case for deny-if-absent config, empty allowlists that refuse everyone, separating signed-in from entitled, and error pages that stay quiet while logs stay loud.</description>
    </item>
    <item>
      <title>Opaque Session Handles vs JWTs for a Product Family</title>
      <link>https://synthocore.ca/engineering/opaque-sessions-vs-jwts/</link>
      <guid isPermaLink="true">https://synthocore.ca/engineering/opaque-sessions-vs-jwts/</guid>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <description>Self-contained tokens are fast to verify but hard to revoke. For a family of products under one domain, opaque session handles plus RFC 7662 introspection make logout mean something. A walk through the trade-off.</description>
    </item>
    <item>
      <title>Choosing Storage on the Edge: Strong vs Eventual Consistency</title>
      <link>https://synthocore.ca/engineering/choosing-storage-on-the-edge/</link>
      <guid isPermaLink="true">https://synthocore.ca/engineering/choosing-storage-on-the-edge/</guid>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <description>Edge key-value stores are eventually consistent; edge SQL is strongly consistent. Matching the store to the data's consistency need — and why single-use auth transaction state is the trap case.</description>
    </item>
    <item>
      <title>What a Calculation Has to Show Before It Can Be Checked</title>
      <link>https://synthocore.ca/engineering/what-makes-a-calculation-checkable/</link>
      <guid isPermaLink="true">https://synthocore.ca/engineering/what-makes-a-calculation-checkable/</guid>
      <pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate>
      <description>A reviewer either checks a calculation or trusts it. The difference is a property of the document. Here is the test, with worked examples of an uncheckable calculation and the same one made checkable.</description>
    </item>
  </channel>
</rss>
