<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>CodeOrigin</title>
  <link>https://codeorigin.online/</link>
  <description>From first principles to working code.</description>
  <language>en</language>
  <lastBuildDate>Tue, 10 Nov 2026 16:18:48 GMT</lastBuildDate>
  <atom:link href="https://codeorigin.online/feed.xml" rel="self" type="application/rss+xml"/>
  <item>
    <title>Beyond the Code Unit: Text Utilities That Survive Real User Input</title>
    <link>https://codeorigin.online/beyond-code-unit-text-utilities-real-user-input/</link>
    <guid isPermaLink="true">https://codeorigin.online/beyond-code-unit-text-utilities-real-user-input/</guid>
    <description>Most text bugs begin with a quiet category error: treating a string as if it were text. This guide starts at bytes, code points, and grapheme clusters, then builds small utilities for truncation, sorting, and search that preserve names and emoji instead of quietly corrupting them.</description>
    <author>CodeOrigin</author>
    <category>Programming Languages</category>
    <pubDate>Tue, 10 Nov 2026 16:18:48 GMT</pubDate>
  </item>
  <item>
    <title>Failure as an Interface: A Taxonomy of Errors Callers Can Act On</title>
    <link>https://codeorigin.online/failure-as-interface-error-taxonomy/</link>
    <guid isPermaLink="true">https://codeorigin.online/failure-as-interface-error-taxonomy/</guid>
    <description>Error responses are read more often than success payloads, usually by someone deciding whether to retry, escalate, or rewrite a request. A practical taxonomy, stable codes, structured details, and a short review checklist turn failure output into a deliberate interface.</description>
    <author>CodeOrigin</author>
    <category>Distributed Systems</category>
    <pubDate>Tue, 10 Nov 2026 08:17:43 GMT</pubDate>
  </item>
  <item>
    <title>The Build That Always Compiles the Same: Tracing Nondeterminism to Its Sources</title>
    <link>https://codeorigin.online/reproducible-builds-tracing-nondeterminism-sources/</link>
    <guid isPermaLink="true">https://codeorigin.online/reproducible-builds-tracing-nondeterminism-sources/</guid>
    <description>A build that agrees with itself across machines is a debugging instrument and a supply-chain control, not a compliance checkbox. This walkthrough isolates the ordinary sources of nondeterminism, fixes them in a small Node project, and proves the result by comparing hashes in CI.</description>
    <author>CodeOrigin</author>
    <category>Software Engineering</category>
    <pubDate>Tue, 10 Nov 2026 08:17:43 GMT</pubDate>
  </item>
  <item>
    <title>When Histories Diverge: Building a Three-Way Merge From the Diff Up</title>
    <link>https://codeorigin.online/when-histories-diverge-three-way-merge-from-diff-up/</link>
    <guid isPermaLink="true">https://codeorigin.online/when-histories-diverge-three-way-merge-from-diff-up/</guid>
    <description>A merge conflict is not a failure of Git; it is the visible edge of an ambiguity that no tool can resolve for you. This article starts with the shortest-edit script behind a diff, derives the common-ancestor comparison that enables three-way merging, and builds a small merger that emits conflict markers.</description>
    <author>CodeOrigin</author>
    <category>Software Engineering</category>
    <pubDate>Tue, 10 Nov 2026 04:25:05 GMT</pubDate>
  </item>
  <item>
    <title>Cursors That Keep Their Word: Stable Pagination Under Concurrent Writes</title>
    <link>https://codeorigin.online/cursors-that-keep-their-word-stable-pagination/</link>
    <guid isPermaLink="true">https://codeorigin.online/cursors-that-keep-their-word-stable-pagination/</guid>
    <description>Offset-based pagination makes a positional promise that a changing table cannot keep. This article derives keyset pagination from the need for a stable total order, implements an opaque-cursor endpoint with tie-breaker columns, and outlines a migration path for APIs still shipping OFFSET and LIMIT.</description>
    <author>CodeOrigin</author>
    <category>Distributed Systems</category>
    <pubDate>Tue, 10 Nov 2026 04:25:05 GMT</pubDate>
  </item>
  <item>
    <title>What Your package.json Is Actually Carrying: An Afternoon Audit for Overgrown JavaScript Trees</title>
    <link>https://codeorigin.online/package-json-audit-overgrown-javascript-trees/</link>
    <guid isPermaLink="true">https://codeorigin.online/package-json-audit-overgrown-javascript-trees/</guid>
    <description>JavaScript dependency trees grow by accumulation rather than intent, and most teams have never read their own. This audit gives small teams a repeatable afternoon routine: measure what is installed versus what is shipped, trace transitive risk, and settle each package with one of three verdicts — remove, replace, or pin.</description>
    <author>CodeOrigin</author>
    <category>Software Engineering</category>
    <pubDate>Tue, 10 Nov 2026 00:23:33 GMT</pubDate>
  </item>
  <item>
    <title>Cron Is Not a Scheduler: Durable Background Jobs From Guarantees Upward</title>
    <link>https://codeorigin.online/cron-is-not-a-scheduler-durable-background-jobs/</link>
    <guid isPermaLink="true">https://codeorigin.online/cron-is-not-a-scheduler-durable-background-jobs/</guid>
    <description>A cron entry is a timer, not a job system — it keeps no record of work, retries nothing, and cannot tell you what failed last night. Starting instead from the guarantees real async work requires, this walkthrough builds a minimal queue-backed worker and shows where observability and failure drills belong.</description>
    <author>CodeOrigin</author>
    <category>Distributed Systems</category>
    <pubDate>Tue, 10 Nov 2026 00:23:33 GMT</pubDate>
  </item>
  <item>
    <title>Dead Switches, Hidden Debt: Engineering Feature Flags That Age Out on Schedule</title>
    <link>https://codeorigin.online/dead-switches-hidden-debt-feature-flag-expiry-2026/</link>
    <guid isPermaLink="true">https://codeorigin.online/dead-switches-hidden-debt-feature-flag-expiry-2026/</guid>
    <description>Feature flags are temporary decisions, but teams often treat them as permanent architecture. This first-principles guide models flag ownership and expiry, then wires overdue flags into CI so cleanup becomes a routine engineering workflow rather than an annual scavenger hunt.</description>
    <author>CodeOrigin</author>
    <category>Software Engineering</category>
    <pubDate>Mon, 09 Nov 2026 20:25:37 GMT</pubDate>
  </item>
  <item>
    <title>The Confident Autocomplete: A Review Protocol for Code Your Team Did Not Type</title>
    <link>https://codeorigin.online/confident-autocomplete-ai-code-review-protocol-2026/</link>
    <guid isPermaLink="true">https://codeorigin.online/confident-autocomplete-ai-code-review-protocol-2026/</guid>
    <description>AI-assisted development changes the review question from whether code compiles to whether a team can explain, test, and own it. This protocol gives US engineering teams concrete checkpoints for provenance, test evidence, security-sensitive paths, and human accountability.</description>
    <author>CodeOrigin</author>
    <category>AI-Assisted Development</category>
    <pubDate>Mon, 09 Nov 2026 20:25:37 GMT</pubDate>
  </item>
  <item>
    <title>Before the Abuse Arrives: A Rate-Limiter Ladder From Naive Counters to Token Buckets</title>
    <link>https://codeorigin.online/before-abuse-arrives-rate-limiter-ladder-2026/</link>
    <guid isPermaLink="true">https://codeorigin.online/before-abuse-arrives-rate-limiter-ladder-2026/</guid>
    <description>Rate limiting is usually added after the first expensive surprise. This article starts with the naive counter, exposes its burst problem, and climbs through fixed windows, sliding logs, and token buckets with middleware code, representative benchmarks, and the distributed-systems caveats US teams should plan for in 2026.</description>
    <author>CodeOrigin</author>
    <category>Software Engineering</category>
    <pubDate>Mon, 09 Nov 2026 16:28:27 GMT</pubDate>
  </item>
  <item>
    <title>One File, Many Truths: A First-Principles Walk Through Append-Only Storage</title>
    <link>https://codeorigin.online/one-file-many-truths-append-only-storage-2026/</link>
    <guid isPermaLink="true">https://codeorigin.online/one-file-many-truths-append-only-storage-2026/</guid>
    <description>A database can look like magic until you reduce it to a file that only grows. This walkthrough builds a small durable key-value store in TypeScript, then adds replay, snapshots, and compaction to show why the append-only log remains such a powerful mental model in 2026.</description>
    <author>CodeOrigin</author>
    <category>Programming Languages</category>
    <pubDate>Mon, 09 Nov 2026 16:28:27 GMT</pubDate>
  </item>
  <item>
    <title>Before the Next Feature: A Legacy JavaScript Audit for Teams That Inherited Speed</title>
    <link>https://codeorigin.online/legacy-javascript-audit-before-next-feature/</link>
    <guid isPermaLink="true">https://codeorigin.online/legacy-javascript-audit-before-next-feature/</guid>
    <description>Shipping quickly is not the problem; shipping without foundations is. This audit framework helps US teams expose hidden assumptions in state, async flow, and dependency boundaries, then refactor one module with tests, types, and observability before adding features.</description>
    <author>CodeOrigin</author>
    <category>Software Engineering</category>
    <pubDate>Mon, 09 Nov 2026 12:33:49 GMT</pubDate>
  </item>
  <item>
    <title>Tokens, Trees, and Scope: Building a Small Interpreter to Understand Languages</title>
    <link>https://codeorigin.online/tokens-trees-scope-small-interpreter/</link>
    <guid isPermaLink="true">https://codeorigin.online/tokens-trees-scope-small-interpreter/</guid>
    <description>A practical, from-scratch interpreter project that turns tokenization, parsing, evaluation, and closures into a working mental model. The result is a compact language you can run, test, and extend without depending on a parser generator.</description>
    <author>CodeOrigin</author>
    <category>Programming Languages</category>
    <pubDate>Mon, 09 Nov 2026 12:33:49 GMT</pubDate>
  </item>
</channel>
</rss>