<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Victoria&amp;apos;s Code</title>
    <link>https://victoriascode.com</link>
    <atom:link href="https://victoriascode.com/feed.xml" rel="self" type="application/rss+xml" />
    <description>Build logs from three systems built alongside a full-time role — a multi-domain ground control station, an AI SDLC agent platform, and an enterprise knowledge platform. Honest about what didn&amp;apos;t work.</description>
    <language>en</language>
    
    <lastBuildDate>Mon, 24 Aug 2026 00:00:00 GMT</lastBuildDate>
    
    
    <item>
      <title>Whodunit: The Case of the Crashing Computer</title>
      <link>https://victoriascode.com/blog/narra/whodunit-the-crashing-computer/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/narra/whodunit-the-crashing-computer/</guid>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
      <category>Narra</category>
      <category>Honest Failure</category>
      <category>Debugging</category>
      <category>Local LLM</category>
      <category>War Story</category>
      
      <description>An evening of pilot testing where everything kept crashing. The GPU was framed by a ghost, the AI had an alibi with receipts, and the real culprit was me — running every project at once on hardware I&amp;apos;d forgotten was finite. Also: the one-command triage tool this mess earned.</description>
    </item>
    
    
    <item>
      <title>The EMERGENCY button that did nothing</title>
      <link>https://victoriascode.com/blog/gcs/the-emergency-button-that-did-nothing/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/the-emergency-button-that-did-nothing/</guid>
      <pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>Safety</category>
      <category>Adapters</category>
      <category>Human Factors</category>
      
      <description>A command came back REJECTED with no reason given. Chasing it down led me to a button labelled EMERGENCY that had never worked on that aircraft type — not broken, not disabled, just quietly incapable while looking exactly like a working control. The bug was one word in a list.</description>
    </item>
    
    
    <item>
      <title>A number is not a measurement</title>
      <link>https://victoriascode.com/blog/gcs/a-number-is-not-a-measurement/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/a-number-is-not-a-measurement/</guid>
      <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Status</category>
      <category>Telemetry</category>
      <category>Units</category>
      <category>Safety</category>
      
      <description>The console said the drone was at 394. Four hundred what, measured from where, and as of when? A bare number on an operations screen is three questions pretending to be an answer. Today I shipped the unit, the reference frame, and the age — and a test caught me quietly widening a safety limit while converting between them.</description>
    </item>
    
    
    <item>
      <title>Hardware first, AI later</title>
      <link>https://victoriascode.com/blog/drone/blog_phase0_phase1/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/drone/blog_phase0_phase1/</guid>
      <pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate>
      <category>Drone + SDR</category>
      <category>Hardware</category>
      <category>RTL-SDR</category>
      <category>Simulation</category>
      <category>Planning</category>
      
      <description>The plan for a device-agnostic validation framework for autonomous systems. Starting where it matters: can we talk to a drone and listen to the spectrum? Simulation is running; the physical hardware goes on the bench next.</description>
    </item>
    
    
    <item>
      <title>A Dead Drone That Looked Alive</title>
      <link>https://victoriascode.com/blog/gcs/a-dead-drone-that-looked-alive/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/a-dead-drone-that-looked-alive/</guid>
      <pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Build Log</category>
      <category>Safety</category>
      <category>Telemetry</category>
      <category>UX</category>
      
      <description>This is the most important safety bug I&amp;apos;ve fixed on this project, and the scariest kind: the drone lost its link, and the console kept showing it flying. Frozen position, frozen battery — a calm, healthy-looking asset that was no longer talking to anyone. Silence has to look like silence.</description>
    </item>
    
    
    <item>
      <title>A Simulator, and the Five Bugs That Only Showed Up Once I Flew It</title>
      <link>https://victoriascode.com/blog/gcs/flying-it-finds-the-bugs/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/flying-it-finds-the-bugs/</guid>
      <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>Simulator</category>
      <category>Testing</category>
      <category>Honesty</category>
      
      <description>I added the MAVLink adapter and the tests passed. Then I built a tiny simulator so I could actually watch a vehicle fly — and within ten minutes it handed me five real bugs the green test suite never caught. One of them crashed the whole console.</description>
    </item>
    
    
    <item>
      <title>One Port, Many Drones: Teaching the Console to Speak MAVLink</title>
      <link>https://victoriascode.com/blog/gcs/one-port-many-drones/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/one-port-many-drones/</guid>
      <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>MAVLink</category>
      <category>Adapters</category>
      <category>Clean-room</category>
      
      <description>The console could already fly my own simulator. Teaching it MAVLink — the protocol industry autopilots speak — was supposed to be the big job of the week. It was a small one, and that&amp;apos;s the whole point: a new kind of vehicle is a new adapter behind one unchanged seam.</description>
    </item>
    
    
    <item>
      <title>One Map, Eleven Radars: A Whole-Fleet Glance</title>
      <link>https://victoriascode.com/blog/gcs/one-map-eleven-radars/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/one-map-eleven-radars/</guid>
      <pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>UX</category>
      <category>Telemetry</category>
      <category>Multi-Domain</category>
      
      <description>A map answers where everything is. It&amp;apos;s bad at telling you which asset is about to have a problem. So I built the what-view: eleven assets, every critical number, one screen — a grid of identical status cards where trouble literally glows.</description>
    </item>
    
    
    <item>
      <title>Sealing the Black Box: Making the Tape Tamper-Evident</title>
      <link>https://victoriascode.com/blog/gcs/sealing-the-black-box/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/sealing-the-black-box/</guid>
      <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>Recorder</category>
      <category>Cryptography</category>
      <category>Zero-Trust</category>
      
      <description>The recorder is append-only, which makes it honest but not tamper-evident. It still trusts whoever holds the file. This post chains every event to the last, so changing any past entry breaks the whole chain after it. There is no quiet edit.</description>
    </item>
    
    
    <item>
      <title>The Black Box: An Append-Only Record of Everything</title>
      <link>https://victoriascode.com/blog/gcs/the-black-box/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/the-black-box/</guid>
      <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>Recorder</category>
      <category>Audit</category>
      <category>Zero-Trust</category>
      
      <description>I promised the recorder at the end of the pipeline post. Here it is — every operator action, every gate verdict, every command that reached a vehicle, written to a log that only ever grows. After an incident, you replay the tape.</description>
    </item>
    
    
    <item>
      <title>The Day I Mostly Didn&amp;apos;t Build (and Why That Was the Point)</title>
      <link>https://victoriascode.com/blog/knowledge/the-day-i-didnt-build/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/knowledge/the-day-i-didnt-build/</guid>
      <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
      <category>Knowledge Platform</category>
      <category>Build Log</category>
      <category>Documentation</category>
      <category>Research</category>
      
      <description>Some days you ship code. Some days you ship clarity. An audit found six unused dependencies, four frameworks in the docs that the code never imported, and nine capabilities in the pitch deck that lived in no backlog. Today produced no features. It produced a project that knows what it is.</description>
    </item>
    
    
    <item>
      <title>A Cancel Button That Lies, and Retrieval That Returns Garbage Confidently</title>
      <link>https://victoriascode.com/blog/sdlc/defense-in-depth/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/sdlc/defense-in-depth/</guid>
      <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
      <category>SDLC Agent Platform</category>
      <category>Build Log</category>
      <category>Debugging</category>
      <category>RAG</category>
      <category>Patterns</category>
      
      <description>Two problems six weeks apart that turned out to be the same problem. A cancel button that stopped the UI but not the work. A search that confidently returned a table-of-contents fragment. Both fixed by refusing to make the primary mechanism smarter.</description>
    </item>
    
    
    <item>
      <title>Wiring the Command Pipeline: The Ticker Stops Being a Promise</title>
      <link>https://victoriascode.com/blog/gcs/command-pipeline/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/command-pipeline/</guid>
      <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>Security</category>
      <category>Architecture</category>
      <category>Zero-Trust</category>
      
      <description>I&amp;apos;d marked the command pipeline &amp;quot;designed, not wired&amp;quot; and said so plainly. This post closes that gap — every command now traverses RBAC → Safety → ROE → Authorization before anything moves. The architecture that made it a small change instead of a rewrite.</description>
    </item>
    
    
    <item>
      <title>Why TypeScript Now — and When I&amp;apos;d Reach for Rust, Go, or C++</title>
      <link>https://victoriascode.com/blog/gcs/choosing-languages/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/choosing-languages/</guid>
      <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>Languages</category>
      <category>Architecture</category>
      <category>Strategy</category>
      
      <description>Is the stack good, or should the whole thing be rewritten in something faster? For what this software does today, TypeScript isn&amp;apos;t a compromise — it&amp;apos;s the right fit. The other languages have a real place, but at the edges, and only at a concrete trigger.</description>
    </item>
    
    
    <item>
      <title>Thinking Ahead: The Comms Layer, and a Polyglot Edge</title>
      <link>https://victoriascode.com/blog/gcs/comms-roadmap/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/comms-roadmap/</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>Roadmap</category>
      <category>Comms</category>
      <category>Languages</category>
      
      <description>A direction post, not a shipped-feature post. Resilient datalinks, gateways, a mission system, and integration through published standards — plus why the edge goes polyglot (Rust, Go, C/C++) while the core stays TypeScript.</description>
    </item>
    
    
    <item>
      <title>Zero-Trust: What I Actually Enforce, and What I Only Designed</title>
      <link>https://victoriascode.com/blog/gcs/honest-zero-trust/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/honest-zero-trust/</guid>
      <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>Security</category>
      <category>Zero-Trust</category>
      <category>Honesty</category>
      
      <description>Most security write-ups blur the line between what&amp;apos;s enforced in code and what&amp;apos;s on a slide. For a defense-grade console that line IS the deliverable. Here&amp;apos;s mine drawn explicitly — enforced, designed-but-not-wired, and roadmap. Naming the gap is the point.</description>
    </item>
    
    
    <item>
      <title>Talking to Drones Without the Internet</title>
      <link>https://victoriascode.com/blog/gcs/air-gap-comms/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/air-gap-comms/</guid>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>Air-Gap</category>
      <category>Comms</category>
      <category>Adapters</category>
      
      <description>Air-gap means no internet, not no communication. The two-channel model, the local bearers, and the one seam that lets any device plug in — plus the first real hardware adapter, a clean-room Tello driver. (The Tello is the proof, not the plan.)</description>
    </item>
    
    
    <item>
      <title>The Stack — and the Three Rules That Picked It</title>
      <link>https://victoriascode.com/blog/gcs/the-stack/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/the-stack/</guid>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Deep Dive</category>
      <category>Architecture</category>
      <category>Licensing</category>
      <category>TypeScript</category>
      
      <description>TypeScript, Electron, React, MapLibre — and the three hard rules that chose every one of them: license-clean, runs air-gapped, and dangerous parts impossible by type. The stack is downstream of the rules.</description>
    </item>
    
    
    <item>
      <title>One Connector for Every Tool Server (and the Bugs You Only Find by Running It)</title>
      <link>https://victoriascode.com/blog/knowledge/one-connector-for-everything/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/knowledge/one-connector-for-everything/</guid>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
      <category>Knowledge Platform</category>
      <category>Build Log</category>
      <category>MCP</category>
      <category>Connectors</category>
      
      <description>It started as &amp;quot;how do we ingest our wiki?&amp;quot; and ended as a generic, reusable connector. The unit tests passed against a fake server. Then I ran it against a real one, and reality had notes — a Windows subprocess bug and a reference server that didn&amp;apos;t implement the primitive I&amp;apos;d assumed.</description>
    </item>
    
    
    <item>
      <title>Governance, Generated Documents, and a Freeze Hiding in Plain Sight</title>
      <link>https://victoriascode.com/blog/knowledge/governance-and-generated-docs/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/knowledge/governance-and-generated-docs/</guid>
      <pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate>
      <category>Knowledge Platform</category>
      <category>Build Log</category>
      <category>Governance</category>
      <category>RAG</category>
      
      <description>The platform went from &amp;quot;it surfaces problems&amp;quot; to &amp;quot;it helps you decide and produce&amp;quot; — and ended with a bug it had already warned me about. In a document it wrote. About itself. I should read my own generated docs.</description>
    </item>
    
    
    <item>
      <title>Making It Legible: Conflicts You Can Act On, and Knowing Your Own Machine</title>
      <link>https://victoriascode.com/blog/knowledge/making-it-legible/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/knowledge/making-it-legible/</guid>
      <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
      <category>Knowledge Platform</category>
      <category>Build Log</category>
      <category>UX</category>
      <category>Knowledge Graph</category>
      
      <description>A long UX sweep driven entirely by someone poking at the app and asking the questions a real user asks. A wall of 2,773 near-identical rule cards became a navigable tree. The value isn&amp;apos;t the feature — it&amp;apos;s making the feature legible.</description>
    </item>
    
    
    <item>
      <title>GCS Build Log: Days 0–6</title>
      <link>https://victoriascode.com/blog/gcs/gcs-build-log-update/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/gcs-build-log-update/</guid>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Build Log</category>
      <category>Unmanned Systems</category>
      <category>TypeScript</category>
      <category>Electron</category>
      
      <description>The day-by-day journal — what actually happened. Docs, design tokens, the map going live, making it testable, a ghost bug that took three sessions, and why I wrote a design doc instead of code.</description>
    </item>
    
    
    <item>
      <title>Building an Enterprise Knowledge Platform</title>
      <link>https://victoriascode.com/blog/knowledge/knowledge-platform/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/knowledge/knowledge-platform/</guid>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <category>Knowledge Platform</category>
      <category>Build Log</category>
      <category>AI</category>
      <category>RAG</category>
      
      <description>Where it started. Retrieval-augmented generation over enterprise documents, designed to run disconnected. The architecture, the retrieval strategy, and the honest trade-offs.</description>
    </item>
    
    
    <item>
      <title>The Cache Trap: When a System Fails Identically Every Time</title>
      <link>https://victoriascode.com/blog/sdlc/cache-trap/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/sdlc/cache-trap/</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>SDLC Agent Platform</category>
      <category>Build Log</category>
      <category>Debugging</category>
      <category>Strategy</category>
      
      <description>Two runs of the same prompt produced byte-identical test files — both containing a test that asserted a plus sign would lowercase to False. The system wasn&amp;apos;t broken randomly. It was broken reproducibly, which is worse. Plus the architectural decision that removes a whole risk class.</description>
    </item>
    
    
    <item>
      <title>The Failure Mode Wasn&amp;apos;t the LLM — It Was the Contracts Between Agents</title>
      <link>https://victoriascode.com/blog/sdlc/agent-contracts/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/sdlc/agent-contracts/</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>SDLC Agent Platform</category>
      <category>Build Log</category>
      <category>Architecture</category>
      <category>Agents</category>
      
      <description>Codegen wrote source and the tester independently guessed what was in it. The reviewer judged code it couldn&amp;apos;t see. A fallback string became a project requirement and four stages built on top of it. Every implicit assumption between agents was a place a bug could hide.</description>
    </item>
    
    
    <item>
      <title>Most &amp;quot;AI Flakiness&amp;quot; Was Infrastructure Flakiness</title>
      <link>https://victoriascode.com/blog/sdlc/infrastructure-flakiness/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/sdlc/infrastructure-flakiness/</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>SDLC Agent Platform</category>
      <category>Build Log</category>
      <category>Debugging</category>
      <category>Agents</category>
      
      <description>I spent days convinced the model was the problem. Random hangs, empty error messages, runs dying mid-pipeline. It was a file watcher, a timeout, and an event loop policy. When part of your system is non-deterministic, every other bug gets to hide behind it.</description>
    </item>
    
    
    <item>
      <title>Building a Ground Control Station from Scratch</title>
      <link>https://victoriascode.com/blog/gcs/gcs-build-log/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/gcs/gcs-build-log/</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>Ground Control Station</category>
      <category>Build Log</category>
      <category>Unmanned Systems</category>
      <category>TypeScript</category>
      
      <description>Where it started. What a GCS is, why I&amp;apos;m building one from scratch, and why multi-domain and license-clean matter. Civilian, Apache-2.0, my own IP.</description>
    </item>
    
    
    <item>
      <title>Building an AI-Powered SDLC Agent Platform — The Honest Build Log</title>
      <link>https://victoriascode.com/blog/sdlc/build-log/</link>
      <guid isPermaLink="true">https://victoriascode.com/blog/sdlc/build-log/</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>SDLC Agent Platform</category>
      <category>Build Log</category>
      <category>AI Agents</category>
      
      <description>Where it started. The architecture, the agent roster, the war stories. What it takes to build an agent platform for the software development lifecycle — and what I&amp;apos;d do differently.</description>
    </item>
    
  </channel>
</rss>
