Mon–Fri · 6 AM ET
← All Episodes
EP  • 00:09:17

A Modern Web App in C | Build or Be Replaced

Today: A Modern Web App in C | The Making Of Super Mario 64 – full Giles Goddard interview (2001) | Making big downloads resumable in Firefox Episode date: 2026-10-13.

Download MP3 →

Transcript

1,609 words — within the 1,500–2,200 range. Here's the finished script.

ERIK: Today in AI news, the tools are starting to install themselves without asking. That's the whole episode in one sentence.
JOSH: It's Tuesday, October 13th. This is Build or Be Replaced — powered by ScanBrief.dev. I'm Josh, here with Erik Anderson.
JOSH: Stick around — Erik's got an AI pro tip at the end about what he actually checks before he lets a coding agent touch anything unattended.
[pause]
JOSH: Headlines. Three quick ones. First — a popular npm package with millions of weekly downloads got hijacked after a maintainer's token got stolen, and the malicious version shipped straight through auto-update.
ERIK: That's the same story every time. Nobody attacks the package, they attack the person who publishes the package. You can audit code all day, but if the credential that pushes it is sitting in a browser session somewhere, the audit doesn't matter.
JOSH: Next — hackers in Europe triggered automatic defrosting in supermarket fridges. Remotely.
ERIK: That's a refrigeration unit with an internet connection and no auth on the control plane. Every IoT vendor in that supply chain should be reading that story twice.
JOSH: And Kevin Kelly's 2016 AI predictions are getting revisited, ten years out.
ERIK: Most predictions from that era undersold the timeline and oversold the drama. The real story was boring — it got better every year, quietly, until one day it wasn't boring anymore.
[pause]
JOSH: Let's go deep. Top story — Codex CLI installs a persistent, self-updating background daemon by default. That sounds like a bigger deal than it looks.
ERIK: It is. A daemon that updates itself without you watching it is a process on your machine with its own schedule, deciding when to pull new code. I run a fleet of Claude agents on PrimeBus — Neo, Homer, Bill — and every one of them does exactly what I wired it to do, on a bus I control.
JOSH: So the problem isn't the daemon, it's that nobody asked you first.
ERIK: Consent, not capability. I'll run something that updates itself all day long if I'm the one who chose that. What I won't do is let a vendor make that call for me as a default. That's how you end up debugging a bug that isn't even in your code.
[beat]
JOSH: Does that connect to your own auto-merge setup? I know PrimeBus does something like that.
ERIK: Same category of risk, opposite design. PrimeBus proposes a fix, but nothing merges without clearing Gandalf, my review gate, first. The whole point of that gate is that a change can look fine and still be wrong, and I'd rather catch that before it hits prod than after.
JOSH: How often does Gandalf actually say no?
ERIK: Enough that I stopped thinking of a block as a failure. A block is the system doing its job. If Gandalf waved everything through, I wouldn't have a healthy pipeline, I'd have an incident report waiting to happen. The Codex story is the same lesson, inverted — they gave the tool permission by default. I built my pipeline to ask permission by default. That's the whole design philosophy in one comparison.
JOSH: So more friction is actually the healthy number, not less.
ERIK: Every time. A system that merges everything isn't automated, it's unverified.
[beat]
JOSH: Does the npm hijack headline change anything about how you treat third-party tools on your own boxes?
ERIK: It's the same supply chain question I ask about every dependency I pull into any project. ScanBrief pulls from fifty-six sources every morning and scores them before anything gets summarized — I don't trust a feed, I trust a pipeline that checks the feed. Same logic applies to a package registry. I pin versions, I don't auto-update anything that touches prod, and PrimeRestorer backs up the state before I even consider bumping a dependency on Neo. If a maintainer's token gets popped, I want a snapshot to roll back to, not a prayer.
JOSH: That's a lot of guardrails for one dependency bump.
ERIK: That's the job. The guardrail isn't there for the ninety-nine times the update is fine. It's there for the one time it isn't.
[pause]
JOSH: Let's talk hardware. Intel's got a new GPU, the D270 — a big pile of LPDDR5X memory, aimed at long-context agentic workloads. What's the real story there?
ERIK: The story is memory, not compute. Everybody's been chasing more cores, but agent workloads don't die from lack of math, they die from context getting truncated or paged out mid-task. A card with that much memory means you can hold a genuinely long session — tool calls, file reads, conversation history — without losing any of it.
JOSH: And they skipped the expensive high-bandwidth memory everyone assumes you need?
ERIK: That's the clever part. Cheaper LPDDR5X, more die area instead of HBM. Lower bandwidth per byte, way more bytes. For an agent loop that's mostly "remember what happened twenty steps ago," that trade wins.
JOSH: Does that matter for what you're actually running day to day?
ERIK: It matters for where this is headed. I've got agents running across the Bobaverse fleet, and the bottleneck is never raw compute, it's keeping enough context alive for an agent to make a good decision instead of a dumb one. PrimeDash is how I watch everything running on the production box from one screen, because the second you lose visibility into what's running, you lose the ability to catch the thing quietly eating memory. The D270 is Intel admitting that's the real constraint for this whole category of work, not just mine.
JOSH: So less gamer GPU, more agent infrastructure.
ERIK: Exactly. Different buyer, different bottleneck.
[beat]
JOSH: Last deep dive — GLM-Legal. Open-source, fine-tuned specifically for contracts and case law. Why's that catch your eye?
ERIK: Legal text is exactly the kind of narrow, high-stakes domain where a general model gets you eighty percent of the way and the other twenty percent is where you get sued. A model trained specifically on contracts and statutes should beat a frontier model on the boring precise stuff — citation format, clause structure — because that frontier model is also busy trying to write poetry and debug Python.
JOSH: Does that connect to anything you're running?
ERIK: GovContractScanner pulls federal RFPs and tracks primes overnight, and every one of those documents is dense contract language. A specialized legal model sitting in that pipeline, scoring or summarizing opportunity language, is a better fit than throwing the whole document at a generalist and hoping it doesn't hallucinate a deadline.
JOSH: Would you actually swap it in?
ERIK: I'd test it in the lab first against whatever's already scoring those RFPs, side by side, before it touches anything that decides what I bid on. Same rule as everything else tonight — prove it small before it gets near prod.
[beat]
JOSH: Walk me through what "test it side by side" actually looks like. That's not just running it once, right?
ERIK: No, it's a real comparison. I'd take a batch of RFPs GovContractScanner already scored last month, run the exact same documents through GLM-Legal, and diff the output against what my current scoring already decided. Not vibes — a scored list against a scored list. Where do they agree, where do they disagree, and on the ones where they disagree, which one actually read the solicitation correctly.
JOSH: And if GLM-Legal wins on the disagreements?
ERIK: Then it earns a slot, not a takeover. I don't rip out a working model because a new one looked good on a sample. It runs alongside the existing scorer for a while, I watch where they split, and only once I trust the pattern does it get near a live bid decision. That's the same one-slice-at-a-time rule I use everywhere else — dark, then observe, then a small canary, then maybe it graduates.
JOSH: That's a lot more patience than most people apply to a new model release.
ERIK: Most people swap a model because a benchmark number went up. I swap a model because it got more of my actual documents right than the thing it's replacing. Those aren't the same test, and only one of them matters when real money's riding on the output.
[pause]
ERIK: This episode is sponsored by Prime Automation Solutions. If you're still doing it manually, we automate it. Also, special on a website — $250. primeautomationsolutions.com
[pause]
JOSH: Alright, what's the AI pro tip today?
ERIK: Before I let any coding agent run unattended, I check one thing — what can it touch without me in the loop. Not what it's supposed to do. What it's capable of doing if it goes sideways. Can it push to main, can it hit prod, can it spend money. If the answer to any of those is yes and there's no gate in front of it, it doesn't run unattended, full stop. Scope the blast radius before you scope the task.
JOSH: So permissions before prompts.
ERIK: Every time. A great prompt on an agent with too much access is still a bad night's sleep waiting to happen. That's your tip. Use it.
[pause]
JOSH: We also drop daily market picks and automation tips on YouTube — search Build or Be Replaced.
[pause]
JOSH: One more thing — we started a Discord for builders. If you're shipping AI, automation, or anything that makes a human obsolete — come hang out. Link at buildorbereplaced.dev.
ERIK: Post what you built. We'll post what we're building. Real wins, real builds, no fluff.
[pause]
ERIK: Build or be replaced.
JOSH: If you want these signals in your inbox every morning, scanbrief.dev. See you tomorrow.