<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>nebelwolfi.xyz</title><description>Curated tech signal — C++, AI, Rust, TypeScript, and whatever else catches my attention.</description><link>https://nebelwolfi.xyz/</link><item><title>GPT-5.4 and What It Means for Developers Actually Building Things</title><link>https://nebelwolfi.xyz/blog/2026-03-10-gpt-5-4-and-what-it-means-for-developers-actually-building-things/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-gpt-5-4-and-what-it-means-for-developers-actually-building-things/</guid><description>OpenAI&apos;s GPT-5.4 lands with a million-token context window, improved coding, and computer use. Here&apos;s what actually matters if you&apos;re shipping software.</description><pubDate>Tue, 10 Mar 2026 13:53:15 GMT</pubDate></item><item><title>GPT-5.4 Lands: A Million Tokens and Actual Computer Use</title><link>https://nebelwolfi.xyz/blog/2026-03-10-gpt-5-4-lands-a-million-tokens-and-actual-computer-use/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-gpt-5-4-lands-a-million-tokens-and-actual-computer-use/</guid><description>OpenAI&apos;s GPT-5.4 pushes frontier model capabilities with 1M-token context, computer use, and state-of-the-art coding. Here&apos;s what actually matters for developers.</description><pubDate>Tue, 10 Mar 2026 14:00:56 GMT</pubDate></item><item><title>Hardening libc++ at Scale: What It Takes to Make the C++ Standard Library Safer by Default</title><link>https://nebelwolfi.xyz/blog/2026-03-10-hardening-libc-at-scale-what-it-takes-to-make-the-c-standard-library-safer-by-de/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-hardening-libc-at-scale-what-it-takes-to-make-the-c-standard-library-safer-by-de/</guid><description>A look at how LLVM&apos;s libc++ can be hardened with runtime checks to reduce memory-safety vulnerabilities in production C++ systems, and what deploying that at massive scale actually involves.</description><pubDate>Tue, 10 Mar 2026 21:05:15 GMT</pubDate></item><item><title>Go&apos;s Green Tea GC Is Already in Production at Google — Here&apos;s Why That Matters</title><link>https://nebelwolfi.xyz/blog/2026-03-10-go-s-green-tea-gc-is-already-in-production-at-google-here-s-why-that-matters/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-go-s-green-tea-gc-is-already-in-production-at-google-here-s-why-that-matters/</guid><description>Go 1.25 ships an experimental garbage collector called Green Tea that cuts GC overhead by up to 40% on some workloads. It&apos;s already running in production at Google and is on track to become the default in Go 1.26.</description><pubDate>Tue, 10 Mar 2026 13:59:59 GMT</pubDate></item><item><title>Go&apos;s Stack Allocation Push: Why It Matters More Than You Think</title><link>https://nebelwolfi.xyz/blog/2026-03-10-go-s-stack-allocation-push-why-it-matters-more-than-you-think/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-go-s-stack-allocation-push-why-it-matters-more-than-you-think/</guid><description>The Go team has been quietly shipping meaningful performance wins by moving more allocations off the heap and onto the stack. Here&apos;s what that actually means and why you should care.</description><pubDate>Tue, 10 Mar 2026 13:59:24 GMT</pubDate></item><item><title>Go&apos;s JSON Package Is Finally Getting the Rewrite It Deserved</title><link>https://nebelwolfi.xyz/blog/2026-03-10-go-s-json-package-is-finally-getting-the-rewrite-it-deserved/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-go-s-json-package-is-finally-getting-the-rewrite-it-deserved/</guid><description>Go 1.25 ships an experimental encoding/json/v2 package that fixes years of accumulated quirks in one of the most-imported packages in the ecosystem.</description><pubDate>Tue, 10 Mar 2026 14:08:42 GMT</pubDate></item><item><title>Go&apos;s Quiet Performance Push: Moving Work Off the Heap</title><link>https://nebelwolfi.xyz/blog/2026-03-10-go-s-quiet-performance-push-moving-work-off-the-heap/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-go-s-quiet-performance-push-moving-work-off-the-heap/</guid><description>Go&apos;s recent releases have been quietly improving performance by allocating more data on the stack instead of the heap, reducing GC pressure and improving cache locality.</description><pubDate>Tue, 10 Mar 2026 14:05:02 GMT</pubDate></item><item><title>How a Single Variable Allocation Was Killing JavaScript Performance</title><link>https://nebelwolfi.xyz/blog/2026-03-10-how-a-single-variable-allocation-was-killing-javascript-performance/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-how-a-single-variable-allocation-was-killing-javascript-performance/</guid><description>V8&apos;s new mutable heap numbers optimization delivers a 2.5x speedup by reusing heap allocations instead of creating new objects on every number update.</description><pubDate>Tue, 10 Mar 2026 14:09:24 GMT</pubDate></item><item><title>How Ulysses Sequence Parallelism Makes Million-Token Training Actually Tractable</title><link>https://nebelwolfi.xyz/blog/2026-03-10-how-ulysses-sequence-parallelism-makes-million-token-training-actually-tractable/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-how-ulysses-sequence-parallelism-makes-million-token-training-actually-tractable/</guid><description>Ulysses Sequence Parallelism splits attention across GPUs using all-to-all communication to train on sequences up to 96K+ tokens with 3.7x throughput gains. Here&apos;s how it works and why it matters.</description><pubDate>Tue, 10 Mar 2026 14:02:18 GMT</pubDate></item><item><title>How Ulysses Sequence Parallelism Makes Million-Token Training Practical</title><link>https://nebelwolfi.xyz/blog/2026-03-10-how-ulysses-sequence-parallelism-makes-million-token-training-practical/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-how-ulysses-sequence-parallelism-makes-million-token-training-practical/</guid><description>DeepSpeed&apos;s Ulysses sequence parallelism is now integrated into Hugging Face Accelerate and Transformers, letting you train on 12x longer sequences with the same GPU memory. Here&apos;s how it works and why it matters.</description><pubDate>Tue, 10 Mar 2026 13:40:34 GMT</pubDate></item><item><title>How V8 Guesses Memory Addresses at Compile Time</title><link>https://nebelwolfi.xyz/blog/2026-03-10-how-v8-guesses-memory-addresses-at-compile-time/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-how-v8-guesses-memory-addresses-at-compile-time/</guid><description>V8&apos;s static roots feature lets the engine predict the memory addresses of core JavaScript objects like undefined and true at compile time, enabling fast pointer comparisons that speed up the entire VM.</description><pubDate>Tue, 10 Mar 2026 14:11:31 GMT</pubDate></item><item><title>How V8 Stopped Allocating a New Object Every Time You Update a Float</title><link>https://nebelwolfi.xyz/blog/2026-03-10-how-v8-stopped-allocating-a-new-object-every-time-you-update-a-float/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-how-v8-stopped-allocating-a-new-object-every-time-you-update-a-float/</guid><description>A look at V8&apos;s mutable heap number optimization that delivered a 2.5x speedup by eliminating redundant heap allocations for frequently-updated floating-point variables.</description><pubDate>Tue, 10 Mar 2026 14:12:53 GMT</pubDate></item><item><title>How V8 Stopped Thrashing the Heap for a Simple Loop Variable</title><link>https://nebelwolfi.xyz/blog/2026-03-10-how-v8-stopped-thrashing-the-heap-for-a-simple-loop-variable/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-how-v8-stopped-thrashing-the-heap-for-a-simple-loop-variable/</guid><description>V8&apos;s new mutable heap number optimization eliminates redundant allocations for frequently-updated numeric variables, yielding a 2.5x speedup in real benchmark code.</description><pubDate>Tue, 10 Mar 2026 14:03:51 GMT</pubDate></item><item><title>Know Your Nature: On Confirmation Bias and the AI Wave</title><link>https://nebelwolfi.xyz/blog/2026-03-10-know-your-nature-on-confirmation-bias-and-the-ai-wave/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-know-your-nature-on-confirmation-bias-and-the-ai-wave/</guid><description>Martin Fowler&apos;s March 10 fragments cover two calibration failures: corporate fines that don&apos;t sting enough, and the confirmation bias engineers bring to AI. Both are worth sitting with.</description><pubDate>Tue, 10 Mar 2026 19:34:29 GMT</pubDate></item><item><title>Living Inside a Database: One Developer&apos;s Commitment to Quantified Self</title><link>https://nebelwolfi.xyz/blog/2026-03-10-living-inside-a-database-one-developer-s-commitment-to-quantified-self/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-living-inside-a-database-one-developer-s-commitment-to-quantified-self/</guid><description>Felix tracks his entire life in a single database and publishes it for anyone to see. It&apos;s a fascinating look at what happens when a developer takes personal data seriously.</description><pubDate>Tue, 10 Mar 2026 19:29:50 GMT</pubDate></item><item><title>Managing the Loop: Where Humans Actually Belong in Agentic Development</title><link>https://nebelwolfi.xyz/blog/2026-03-10-managing-the-loop-where-humans-actually-belong-in-agentic-development/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-managing-the-loop-where-humans-actually-belong-in-agentic-development/</guid><description>As AI agents take on more of the grunt work in software development, the real question isn&apos;t how much to trust them — it&apos;s where humans fit in the loop at all.</description><pubDate>Tue, 10 Mar 2026 14:14:39 GMT</pubDate></item><item><title>Million-Token Training Without the Memory Wall: A Look at Ulysses Sequence Parallelism</title><link>https://nebelwolfi.xyz/blog/2026-03-10-million-token-training-without-the-memory-wall-a-look-at-ulysses-sequence-parall/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-million-token-training-without-the-memory-wall-a-look-at-ulysses-sequence-parall/</guid><description>Ulysses Sequence Parallelism lets you train LLMs on sequences up to 1M tokens long by splitting attention heads across GPUs — and HuggingFace just made it dead simple to use.</description><pubDate>Tue, 10 Mar 2026 13:49:51 GMT</pubDate></item><item><title>Million-Token Training Without the Memory Wall: How Ulysses Sequence Parallelism Works</title><link>https://nebelwolfi.xyz/blog/2026-03-10-million-token-training-without-the-memory-wall-how-ulysses-sequence-parallelism-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-million-token-training-without-the-memory-wall-how-ulysses-sequence-parallelism-/</guid><description>Ulysses Sequence Parallelism distributes attention computation across GPUs using all-to-all communication, enabling million-token context training that would otherwise be impossible on a single device.</description><pubDate>Tue, 10 Mar 2026 13:50:28 GMT</pubDate></item><item><title>Model Evaluation as a First-Class Concern: What Balyasny&apos;s AI Research Engine Gets Right</title><link>https://nebelwolfi.xyz/blog/2026-03-10-model-evaluation-as-a-first-class-concern-what-balyasny-s-ai-research-engine-get/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-model-evaluation-as-a-first-class-concern-what-balyasny-s-ai-research-engine-get/</guid><description>Balyasny Asset Management built a rigorous AI research system using GPT-5.4 and agent workflows for investment analysis. Here&apos;s what developers can learn from how they approached model evaluation.</description><pubDate>Tue, 10 Mar 2026 13:52:45 GMT</pubDate></item><item><title>Node.js Is Cutting to One Major Release Per Year, and It Makes Sense</title><link>https://nebelwolfi.xyz/blog/2026-03-10-node-js-is-cutting-to-one-major-release-per-year-and-it-makes-sense/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-node-js-is-cutting-to-one-major-release-per-year-and-it-makes-sense/</guid><description>Starting with Node.js 27.x in 2026, the project is moving to a single annual major release, replacing the odd/even versioning model with an Alpha channel for early testers.</description><pubDate>Tue, 10 Mar 2026 19:28:38 GMT</pubDate></item><item><title>Node.js Is Cutting to One Major Release Per Year, and the Data Backs It Up</title><link>https://nebelwolfi.xyz/blog/2026-03-10-node-js-is-cutting-to-one-major-release-per-year-and-the-data-backs-it-up/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-node-js-is-cutting-to-one-major-release-per-year-and-the-data-backs-it-up/</guid><description>Starting with Node.js 27 in 2027, the project moves to a single annual major release with a new Alpha channel replacing odd-numbered releases. Here is what that means in practice.</description><pubDate>Tue, 10 Mar 2026 19:33:44 GMT</pubDate></item><item><title>Node.js Is Cutting to One Major Release Per Year</title><link>https://nebelwolfi.xyz/blog/2026-03-10-node-js-is-cutting-to-one-major-release-per-year/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-node-js-is-cutting-to-one-major-release-per-year/</guid><description>Starting with Node.js 27 in October 2026, the project moves to one major release per year, eliminates the odd/even distinction, and introduces a new Alpha channel for early ecosystem testing.</description><pubDate>Tue, 10 Mar 2026 19:32:55 GMT</pubDate></item><item><title>One Database, One Life: What It Takes to Keep Both Running</title><link>https://nebelwolfi.xyz/blog/2026-03-10-one-database-one-life-what-it-takes-to-keep-both-running/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-one-database-one-life-what-it-takes-to-keep-both-running/</guid><description>Felix tracks his entire life in a single database and shares it publicly. Here&apos;s why that kind of commitment is harder and more interesting than it sounds.</description><pubDate>Tue, 10 Mar 2026 19:32:49 GMT</pubDate></item><item><title>One Database, One Life, and What It Takes to Keep Both Running</title><link>https://nebelwolfi.xyz/blog/2026-03-10-one-database-one-life-and-what-it-takes-to-keep-both-running/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-one-database-one-life-and-what-it-takes-to-keep-both-running/</guid><description>Felix&apos;s howisfelix.today project tracks every dimension of his life in a single database. The engineering discipline required to sustain it is more instructive than the data itself.</description><pubDate>Tue, 10 Mar 2026 19:31:52 GMT</pubDate></item><item><title>OpenAI Buys Promptfoo: Security as a First-Party Concern</title><link>https://nebelwolfi.xyz/blog/2026-03-10-openai-buys-promptfoo-security-as-a-first-party-concern/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-openai-buys-promptfoo-security-as-a-first-party-concern/</guid><description>OpenAI is acquiring Promptfoo, an AI red-teaming and security platform. Here&apos;s what that means for developers who rely on it and the broader AI security ecosystem.</description><pubDate>Tue, 10 Mar 2026 13:51:42 GMT</pubDate></item><item><title>Plausible Is Not the Same as Correct</title><link>https://nebelwolfi.xyz/blog/2026-03-10-plausible-is-not-the-same-as-correct/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-plausible-is-not-the-same-as-correct/</guid><description>LLMs generate code that looks right far more often than it is right. Here&apos;s why that distinction matters more than most developers admit.</description><pubDate>Tue, 10 Mar 2026 14:19:32 GMT</pubDate></item><item><title>Raising the Baseline: How libc++ Hardening Changes C++ Memory Safety</title><link>https://nebelwolfi.xyz/blog/2026-03-10-raising-the-baseline-how-libc-hardening-changes-c-memory-safety/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-raising-the-baseline-how-libc-hardening-changes-c-memory-safety/</guid><description>A look at how hardening LLVM&apos;s libc++ in production builds can catch memory safety vulnerabilities at scale, without requiring a language rewrite.</description><pubDate>Tue, 10 Mar 2026 21:01:28 GMT</pubDate></item><item><title>Redox OS Bans LLM Code: A Policy Worth Taking Seriously</title><link>https://nebelwolfi.xyz/blog/2026-03-10-redox-os-bans-llm-code-a-policy-worth-taking-seriously/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-redox-os-bans-llm-code-a-policy-worth-taking-seriously/</guid><description>Redox OS has adopted a strict no-LLM contribution policy alongside a Developer Certificate of Origin requirement. Here&apos;s why this is the right call for a security-focused OS project — and what it says about the broader open source moment.</description><pubDate>Tue, 10 Mar 2026 13:53:47 GMT</pubDate></item><item><title>Redox OS Draws a Hard Line on LLM Code, and It Makes Sense</title><link>https://nebelwolfi.xyz/blog/2026-03-10-redox-os-draws-a-hard-line-on-llm-code-and-it-makes-sense/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-redox-os-draws-a-hard-line-on-llm-code-and-it-makes-sense/</guid><description>Redox OS has banned LLM-generated code contributions entirely. For a safety-critical OS written in Rust, that policy is harder to argue against than it first appears.</description><pubDate>Tue, 10 Mar 2026 14:18:35 GMT</pubDate></item><item><title>Redox OS Draws a Hard Line on LLM-Generated Code, and It Makes Sense</title><link>https://nebelwolfi.xyz/blog/2026-03-10-redox-os-draws-a-hard-line-on-llm-generated-code-and-it-makes-sense/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-redox-os-draws-a-hard-line-on-llm-generated-code-and-it-makes-sense/</guid><description>Redox OS has banned LLM-generated contributions outright. For a safety-focused microkernel, this is the right call — and it raises harder questions for the rest of open source.</description><pubDate>Tue, 10 Mar 2026 14:15:17 GMT</pubDate></item><item><title>Running Robot Brains on Cheap Hardware: What NXP and Hugging Face Actually Got Working</title><link>https://nebelwolfi.xyz/blog/2026-03-10-running-robot-brains-on-cheap-hardware-what-nxp-and-hugging-face-actually-got-wo/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-running-robot-brains-on-cheap-hardware-what-nxp-and-hugging-face-actually-got-wo/</guid><description>NXP and Hugging Face walk through the full pipeline of training and deploying Vision-Language-Action models on the i.MX95 embedded processor — and the results are more nuanced than the headline numbers suggest.</description><pubDate>Tue, 10 Mar 2026 14:01:11 GMT</pubDate></item><item><title>Rigorous by Design: What Balyasny&apos;s AI Research Engine Gets Right</title><link>https://nebelwolfi.xyz/blog/2026-03-10-rigorous-by-design-what-balyasny-s-ai-research-engine-gets-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-rigorous-by-design-what-balyasny-s-ai-research-engine-gets-right/</guid><description>Balyasny Asset Management built an AI research engine using GPT-5.4 and agent workflows for investment analysis. Here&apos;s what their approach gets right about deploying AI in high-stakes environments.</description><pubDate>Tue, 10 Mar 2026 14:00:26 GMT</pubDate></item><item><title>Runtime Safety in libc++: The Case for Hardening at Scale</title><link>https://nebelwolfi.xyz/blog/2026-03-10-runtime-safety-in-libc-the-case-for-hardening-at-scale/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-runtime-safety-in-libc-the-case-for-hardening-at-scale/</guid><description>A look at a late 2025 paper on hardening LLVM&apos;s libc++ with runtime precondition checks, and what the results mean for C++ memory safety in production at massive scale.</description><pubDate>Tue, 10 Mar 2026 21:02:11 GMT</pubDate></item><item><title>Rust Wants Into Safety-Critical. The Language Is Ready. The Ecosystem Isn&apos;t.</title><link>https://nebelwolfi.xyz/blog/2026-03-10-rust-wants-into-safety-critical-the-language-is-ready-the-ecosystem-isn-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-rust-wants-into-safety-critical-the-language-is-ready-the-ecosystem-isn-t/</guid><description>Rust&apos;s compiler guarantees make it theoretically ideal for safety-critical software, but shipping in automotive, aerospace, or medical contexts requires more than a safe language — it requires a certified toolchain and ecosystem that barely exists yet.</description><pubDate>Tue, 10 Mar 2026 12:11:31 GMT</pubDate></item><item><title>Scheme to WebAssembly: What Compiling a Real Language Actually Looks Like</title><link>https://nebelwolfi.xyz/blog/2026-03-10-scheme-to-webassembly-what-compiling-a-real-language-actually-looks-like/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-scheme-to-webassembly-what-compiling-a-real-language-actually-looks-like/</guid><description>Eli Bendersky takes his 15-year-old Scheme implementation project and adds a WebAssembly compiler backend, revealing what it costs to lower a real language with closures, GC, and runtime to WASM.</description><pubDate>Tue, 10 Mar 2026 14:14:34 GMT</pubDate></item><item><title>Safer by Default: What libc++ Hardening Means for Production C++</title><link>https://nebelwolfi.xyz/blog/2026-03-10-safer-by-default-what-libc-hardening-means-for-production-c/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-safer-by-default-what-libc-hardening-means-for-production-c/</guid><description>A look at the work to harden LLVM&apos;s libc++ standard library at scale, what runtime checking on C++ containers actually costs in production, and why the opt-in nature of the feature matters more than the feature itself.</description><pubDate>Tue, 10 Mar 2026 21:02:04 GMT</pubDate></item><item><title>Sequence Parallelism Without the Pain: How Ulysses Makes Million-Token Training Practical</title><link>https://nebelwolfi.xyz/blog/2026-03-10-sequence-parallelism-without-the-pain-how-ulysses-makes-million-token-training-p/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-sequence-parallelism-without-the-pain-how-ulysses-makes-million-token-training-p/</guid><description>Ulysses Sequence Parallelism lets you train on 96K+ token contexts by splitting attention across GPUs with smarter all-to-all communication — and it&apos;s now wired into Accelerate, Transformers, and TRL.</description><pubDate>Tue, 10 Mar 2026 13:04:48 GMT</pubDate></item><item><title>Sequence Parallelism That Actually Works: Breaking Down Ulysses</title><link>https://nebelwolfi.xyz/blog/2026-03-10-sequence-parallelism-that-actually-works-breaking-down-ulysses/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-sequence-parallelism-that-actually-works-breaking-down-ulysses/</guid><description>Ulysses Sequence Parallelism lets you train LLMs on million-token contexts by distributing attention across GPUs with far less communication overhead than ring attention. Here&apos;s what makes it tick.</description><pubDate>Tue, 10 Mar 2026 13:47:31 GMT</pubDate></item><item><title>Software Patents: When Principles Collide With Survival</title><link>https://nebelwolfi.xyz/blog/2026-03-10-software-patents-when-principles-collide-with-survival/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-software-patents-when-principles-collide-with-survival/</guid><description>Naresh Jain&apos;s journey from ideological opposition to defensive patenting reveals an uncomfortable truth about how software developers actually have to operate in today&apos;s legal landscape.</description><pubDate>Tue, 10 Mar 2026 14:11:59 GMT</pubDate></item><item><title>Sorting Out the Vocabulary of Concurrency</title><link>https://nebelwolfi.xyz/blog/2026-03-10-sorting-out-the-vocabulary-of-concurrency/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-sorting-out-the-vocabulary-of-concurrency/</guid><description>Most engineers use concurrency without precise vocabulary, which leads to picking the wrong model for the problem. Lucian Radu Teodorescu&apos;s breakdown of concurrency flavors on isocpp.org is a useful guide to understanding how async, parallel, and multithreaded approaches address different classes of problems.</description><pubDate>Tue, 10 Mar 2026 19:50:16 GMT</pubDate></item><item><title>SpacetimeDB and the Case for Collapsing the Server Layer</title><link>https://nebelwolfi.xyz/blog/2026-03-10-spacetimedb-and-the-case-for-collapsing-the-server-layer/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-spacetimedb-and-the-case-for-collapsing-the-server-layer/</guid><description>SpacetimeDB takes the old stored-procedure idea and pushes it much further, running full application logic as WebAssembly modules inside the database. Here&apos;s what that actually means architecturally.</description><pubDate>Tue, 10 Mar 2026 19:39:02 GMT</pubDate></item><item><title>SpacetimeDB Puts the Server Inside the Database, and That Changes the Mental Model</title><link>https://nebelwolfi.xyz/blog/2026-03-10-spacetimedb-puts-the-server-inside-the-database-and-that-changes-the-mental-mode/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-spacetimedb-puts-the-server-inside-the-database-and-that-changes-the-mental-mode/</guid><description>SpacetimeDB collapses the application server and database into a single runtime, and a recent technical review on Lobsters walks through what that actually means in practice.</description><pubDate>Tue, 10 Mar 2026 19:38:24 GMT</pubDate></item><item><title>SpacetimeDB Puts Server Logic Inside the Database, and It&apos;s Worth Taking Seriously</title><link>https://nebelwolfi.xyz/blog/2026-03-10-spacetimedb-puts-server-logic-inside-the-database-and-it-s-worth-taking-seriousl/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-spacetimedb-puts-server-logic-inside-the-database-and-it-s-worth-taking-seriousl/</guid><description>SpacetimeDB collapses the application server into the database by running WebAssembly modules alongside your data. Here&apos;s what that actually means in practice.</description><pubDate>Tue, 10 Mar 2026 19:39:26 GMT</pubDate></item><item><title>SpacetimeDB Puts the Server Inside the Database</title><link>https://nebelwolfi.xyz/blog/2026-03-10-spacetimedb-puts-the-server-inside-the-database/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-spacetimedb-puts-the-server-inside-the-database/</guid><description>SpacetimeDB collapses the traditional game server and database into a single runtime, letting you write server logic as WebAssembly modules that execute inside the database itself. Here&apos;s what that looks like under technical scrutiny.</description><pubDate>Tue, 10 Mar 2026 19:34:41 GMT</pubDate></item><item><title>Stop Blaming the AI: The Real Fix Is What You Give It First</title><link>https://nebelwolfi.xyz/blog/2026-03-10-stop-blaming-the-ai-the-real-fix-is-what-you-give-it-first/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-stop-blaming-the-ai-the-real-fix-is-what-you-give-it-first/</guid><description>Rahul Garg&apos;s concept of knowledge priming explains why AI coding assistants generate plausible-looking code that still misses the mark — and what to do about it.</description><pubDate>Tue, 10 Mar 2026 13:59:50 GMT</pubDate></item><item><title>Splitting Attention Across GPUs: How Ulysses Makes Million-Token Training Tractable</title><link>https://nebelwolfi.xyz/blog/2026-03-10-splitting-attention-across-gpus-how-ulysses-makes-million-token-training-tractab/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-splitting-attention-across-gpus-how-ulysses-makes-million-token-training-tractab/</guid><description>Ulysses Sequence Parallelism lets you train transformer models on sequences up to 256K+ tokens by sharding attention heads across GPUs with just two all-to-all collectives per layer. Here&apos;s how it works and why the communication tradeoff is smarter than it sounds.</description><pubDate>Tue, 10 Mar 2026 14:09:13 GMT</pubDate></item><item><title>Stop Fixing AI Code by Teaching It Your Codebase First</title><link>https://nebelwolfi.xyz/blog/2026-03-10-stop-fixing-ai-code-by-teaching-it-your-codebase-first/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-stop-fixing-ai-code-by-teaching-it-your-codebase-first/</guid><description>Rahul Garg&apos;s concept of knowledge priming explains why AI coding assistants generate plausible-but-wrong code, and how front-loading context dramatically cuts down the fix cycle.</description><pubDate>Tue, 10 Mar 2026 13:54:09 GMT</pubDate></item><item><title>Talk Before You Type: The Case for Design-First AI Collaboration</title><link>https://nebelwolfi.xyz/blog/2026-03-10-talk-before-you-type-the-case-for-design-first-ai-collaboration/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-talk-before-you-type-the-case-for-design-first-ai-collaboration/</guid><description>Rahul Garg&apos;s design-first collaboration pattern argues for structured conversation with AI before writing a single line of code — and the reasoning is hard to argue with.</description><pubDate>Tue, 10 Mar 2026 14:13:04 GMT</pubDate></item><item><title>Teaching LLMs Whose Instructions to Follow</title><link>https://nebelwolfi.xyz/blog/2026-03-10-teaching-llms-whose-instructions-to-follow/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-teaching-llms-whose-instructions-to-follow/</guid><description>OpenAI&apos;s IH-Challenge tackles one of the quieter but more consequential problems in deployed LLMs: getting models to correctly respect instruction hierarchy and resist prompt injection from untrusted sources.</description><pubDate>Tue, 10 Mar 2026 19:27:00 GMT</pubDate></item><item><title>The $5k Claude Code Myth: Why AI Cost Estimates Keep Getting It Wrong</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-5k-claude-code-myth-why-ai-cost-estimates-keep-getting-it-wrong/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-5k-claude-code-myth-why-ai-cost-estimates-keep-getting-it-wrong/</guid><description>A viral claim that Anthropic spends $5,000 per Claude Code user made the rounds recently. It was wrong, and the way it spread tells us something important about how we talk about AI economics.</description><pubDate>Tue, 10 Mar 2026 12:55:43 GMT</pubDate></item><item><title>The All-to-All Trick Behind Million-Token LLM Training</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-all-to-all-trick-behind-million-token-llm-training/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-all-to-all-trick-behind-million-token-llm-training/</guid><description>Ulysses Sequence Parallelism from Snowflake AI Research is now integrated into the Hugging Face ecosystem, enabling training on sequences up to 96K tokens on 4x H100s by redistributing attention computation across GPUs with surprisingly low communication overhead.</description><pubDate>Tue, 10 Mar 2026 14:04:14 GMT</pubDate></item><item><title>The Appeal of Tracking Everything About Yourself</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-appeal-of-tracking-everything-about-yourself/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-appeal-of-tracking-everything-about-yourself/</guid><description>A developer built a live dashboard of his entire life backed by a single database. It raises real questions about what we gain when we make ourselves legible to a machine.</description><pubDate>Tue, 10 Mar 2026 19:27:51 GMT</pubDate></item><item><title>The Byte Arithmetic Behind Unicode String Iteration</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-byte-arithmetic-behind-unicode-string-iteration/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-byte-arithmetic-behind-unicode-string-iteration/</guid><description>Advancing through a Unicode string one code point at a time requires understanding how UTF-8 and UTF-16 encode variable-width sequences, and why a simple i++ will silently produce wrong output.</description><pubDate>Tue, 10 Mar 2026 21:04:39 GMT</pubDate></item><item><title>The Authority Problem in LLM Deployments</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-authority-problem-in-llm-deployments/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-authority-problem-in-llm-deployments/</guid><description>OpenAI&apos;s IH-Challenge trains models to respect a proper trust hierarchy, reducing prompt injection risks and improving safety steerability in production deployments.</description><pubDate>Tue, 10 Mar 2026 19:33:39 GMT</pubDate></item><item><title>The Case for Standard Library Hardening in Production C++</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-case-for-standard-library-hardening-in-production-c/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-case-for-standard-library-hardening-in-production-c/</guid><description>Google engineers describe how hardening LLVM&apos;s libc++ with configurable runtime checks can catch a wide class of memory errors at production scale, with overhead that many teams can tolerate.</description><pubDate>Tue, 10 Mar 2026 21:04:50 GMT</pubDate></item><item><title>The Clever Communication Trick Behind Million-Token LLM Training</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-clever-communication-trick-behind-million-token-llm-training/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-clever-communication-trick-behind-million-token-llm-training/</guid><description>Ulysses Sequence Parallelism from Snowflake AI Research solves the memory wall for long-context LLM training by splitting attention heads across GPUs, and it&apos;s now wired directly into Hugging Face&apos;s toolchain.</description><pubDate>Tue, 10 Mar 2026 13:47:49 GMT</pubDate></item><item><title>The co_await Protocol: What Happens When a C++ Coroutine Suspends</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-co-await-protocol-what-happens-when-a-c-coroutine-suspends/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-co-await-protocol-what-happens-when-a-c-coroutine-suspends/</guid><description>C++ coroutines delegate control through a three-method awaitable interface. Understanding how await_ready, await_suspend, and await_resume connect to the coroutine handle is the key to writing your own async primitives.</description><pubDate>Tue, 10 Mar 2026 19:49:22 GMT</pubDate></item><item><title>The Confidence Gap: Why LLM Code Looks Right Until It Doesn&apos;t</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-confidence-gap-why-llm-code-looks-right-until-it-doesn-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-confidence-gap-why-llm-code-looks-right-until-it-doesn-t/</guid><description>LLMs generate code that passes the eye test but fails under pressure. Here&apos;s why plausibility and correctness are not the same thing, and what that means for your workflow.</description><pubDate>Tue, 10 Mar 2026 13:56:47 GMT</pubDate></item><item><title>The Geometry Problem Hiding Inside CSS corner-shape</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-geometry-problem-hiding-inside-css-corner-shape/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-geometry-problem-hiding-inside-css-corner-shape/</guid><description>CSS corner-shape sounds like a simple cosmetic feature, but Chrome&apos;s implementation reveals a surprisingly deep well of geometric complexity. Here&apos;s why getting corners right is harder than it looks.</description><pubDate>Tue, 10 Mar 2026 14:21:15 GMT</pubDate></item><item><title>The GPU Idle Problem: What 16 RL Libraries Independently Discovered</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-gpu-idle-problem-what-16-rl-libraries-independently-discovered/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-gpu-idle-problem-what-16-rl-libraries-independently-discovered/</guid><description>A look at the architectural pattern that emerged across 16 open-source reinforcement learning libraries for LLMs, and what it reveals about the core throughput bottleneck in RL training.</description><pubDate>Tue, 10 Mar 2026 13:49:34 GMT</pubDate></item><item><title>The GPU Idle Problem: What 16 RL Libraries Independently Got Right</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-gpu-idle-problem-what-16-rl-libraries-independently-got-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-gpu-idle-problem-what-16-rl-libraries-independently-got-right/</guid><description>A survey of 16 open-source RL training libraries reveals a striking convergence on disaggregated async architecture — and surfaces the next wave of problems nobody has solved yet.</description><pubDate>Tue, 10 Mar 2026 13:59:43 GMT</pubDate></item><item><title>The GPU Idle Problem: What 16 RL Libraries Teach Us About Training Efficiency</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-gpu-idle-problem-what-16-rl-libraries-teach-us-about-training-efficiency/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-gpu-idle-problem-what-16-rl-libraries-teach-us-about-training-efficiency/</guid><description>A survey of 16 open-source reinforcement learning libraries reveals a shared architecture for solving the biggest bottleneck in LLM training: GPUs sitting idle while models generate text.</description><pubDate>Tue, 10 Mar 2026 13:38:34 GMT</pubDate></item><item><title>The Hidden Bottleneck in RL Training (And How 16 Libraries Are Solving It)</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-hidden-bottleneck-in-rl-training-and-how-16-libraries-are-solving-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-hidden-bottleneck-in-rl-training-and-how-16-libraries-are-solving-it/</guid><description>A survey of 16 open-source RL libraries reveals a universal architectural pattern for keeping GPUs busy during reinforcement learning — and the unsolved problems that still lie ahead.</description><pubDate>Tue, 10 Mar 2026 13:39:11 GMT</pubDate></item><item><title>The Hard Part of AI Dubbing Is Not the Translation</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-hard-part-of-ai-dubbing-is-not-the-translation/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-hard-part-of-ai-dubbing-is-not-the-translation/</guid><description>Descript uses OpenAI models to tackle multilingual video dubbing at scale, and the interesting engineering challenge is not what you might expect.</description><pubDate>Tue, 10 Mar 2026 13:54:55 GMT</pubDate></item><item><title>The Hidden Bottleneck in RL Training: Why Your GPUs Are Idle Half the Time</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-hidden-bottleneck-in-rl-training-why-your-gpus-are-idle-half-the-time/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-hidden-bottleneck-in-rl-training-why-your-gpus-are-idle-half-the-time/</guid><description>A survey of 16 open-source RL libraries reveals that all of them independently arrived at the same architectural solution to a fundamental GPU utilization problem — and the devil is in the details of staleness management.</description><pubDate>Tue, 10 Mar 2026 13:03:56 GMT</pubDate></item><item><title>The Invisible Graph: Why Nobody Really Knows What Depends on What</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-invisible-graph-why-nobody-really-knows-what-depends-on-what/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-invisible-graph-why-nobody-really-knows-what-depends-on-what/</guid><description>Daniel Stenberg, creator of curl, digs into why dependency tracking remains an unsolved problem even as software supply chain security becomes a top priority. A look at what makes this so hard and why it matters.</description><pubDate>Tue, 10 Mar 2026 14:17:20 GMT</pubDate></item><item><title>The Loop Is the Job: Where Humans Actually Belong in Agentic Development</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-loop-is-the-job-where-humans-actually-belong-in-agentic-development/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-loop-is-the-job-where-humans-actually-belong-in-agentic-development/</guid><description>Kief Morris argues on Martin Fowler&apos;s blog that developers shouldn&apos;t leave AI agents to run wild or micromanage every output — the real work is designing and owning the feedback loop itself.</description><pubDate>Tue, 10 Mar 2026 14:12:31 GMT</pubDate></item><item><title>The Loop Is the Job: Where Humans Fit in an Agent-Assisted Workflow</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-loop-is-the-job-where-humans-fit-in-an-agent-assisted-workflow/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-loop-is-the-job-where-humans-fit-in-an-agent-assisted-workflow/</guid><description>As AI agents take on more of the code-writing, the real question isn&apos;t how much to trust them — it&apos;s who owns the feedback loop. A look at Kief Morris&apos;s framing on humans and agents in software engineering.</description><pubDate>Tue, 10 Mar 2026 13:52:26 GMT</pubDate></item><item><title>The Part of Codex Security Nobody Is Talking About: Validation</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-part-of-codex-security-nobody-is-talking-about-validation/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-part-of-codex-security-nobody-is-talking-about-validation/</guid><description>OpenAI&apos;s Codex Security can detect and patch vulnerabilities — but the underrated innovation is the middle step: validating that a finding is actually real before surfacing it.</description><pubDate>Tue, 10 Mar 2026 13:56:11 GMT</pubDate></item><item><title>The Quantization Trap: Why Deploying Robot Brains on Embedded Hardware Is Harder Than It Looks</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-quantization-trap-why-deploying-robot-brains-on-embedded-hardware-is-harder-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-quantization-trap-why-deploying-robot-brains-on-embedded-hardware-is-harder-/</guid><description>NXP and Hugging Face ran Vision-Language-Action models on the i.MX95 embedded processor. The results reveal how quantization, async scheduling, and data quality interact in ways that break naive assumptions.</description><pubDate>Tue, 10 Mar 2026 14:03:14 GMT</pubDate></item><item><title>The Safety Case for Uncontrollable Reasoning</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-safety-case-for-uncontrollable-reasoning/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-safety-case-for-uncontrollable-reasoning/</guid><description>OpenAI&apos;s CoT-Control research finds that reasoning models struggle to suppress or redirect their chains of thought — and that turns out to be a meaningful safety property worth understanding.</description><pubDate>Tue, 10 Mar 2026 13:47:22 GMT</pubDate></item><item><title>The Rust Survey Turns 10, and the Numbers Are Reassuringly Boring</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-rust-survey-turns-10-and-the-numbers-are-reassuringly-boring/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-rust-survey-turns-10-and-the-numbers-are-reassuringly-boring/</guid><description>The 10th annual State of Rust survey is out, and the most interesting finding might be how stable and mature the ecosystem has become. Here&apos;s what I took away from the results.</description><pubDate>Tue, 10 Mar 2026 12:11:01 GMT</pubDate></item><item><title>The Scanner That Closes the Loop: Codex Security Enters Research Preview</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-scanner-that-closes-the-loop-codex-security-enters-research-preview/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-scanner-that-closes-the-loop-codex-security-enters-research-preview/</guid><description>OpenAI&apos;s Codex Security agent doesn&apos;t just find vulnerabilities — it validates and patches them too. Here&apos;s why that matters and what to watch for.</description><pubDate>Tue, 10 Mar 2026 13:58:50 GMT</pubDate></item><item><title>The Scanner That Closes the Loop: Codex Security in Research Preview</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-scanner-that-closes-the-loop-codex-security-in-research-preview/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-scanner-that-closes-the-loop-codex-security-in-research-preview/</guid><description>OpenAI&apos;s Codex Security enters research preview as an AI agent that doesn&apos;t just find vulnerabilities — it validates and patches them too. Here&apos;s why the validation step is the part worth paying attention to.</description><pubDate>Tue, 10 Mar 2026 13:58:59 GMT</pubDate></item><item><title>The Scanner That Writes Its Own Fixes: Codex Security Enters Research Preview</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-scanner-that-writes-its-own-fixes-codex-security-enters-research-preview/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-scanner-that-writes-its-own-fixes-codex-security-enters-research-preview/</guid><description>OpenAI&apos;s Codex Security is an AI security agent that doesn&apos;t just find vulnerabilities — it validates and patches them. Here&apos;s why the closed-loop approach matters.</description><pubDate>Tue, 10 Mar 2026 13:59:43 GMT</pubDate></item><item><title>The Timing Problem: Why AI Dubbing Is Harder Than It Looks</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-timing-problem-why-ai-dubbing-is-harder-than-it-looks/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-timing-problem-why-ai-dubbing-is-harder-than-it-looks/</guid><description>Descript&apos;s multilingual dubbing pipeline powered by OpenAI models reveals why good dubbing is fundamentally a timing problem, not just a translation one.</description><pubDate>Tue, 10 Mar 2026 13:55:38 GMT</pubDate></item><item><title>The Threat CFI Is Actually Defending Against</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-threat-cfi-is-actually-defending-against/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-threat-cfi-is-actually-defending-against/</guid><description>Control flow integrity targets a class of attack that memory safety alone cannot stop. James McNellis&apos;s Meeting C++ 2025 keynote explains the mechanism and what deploying it in real C++ codebases actually involves.</description><pubDate>Tue, 10 Mar 2026 21:06:11 GMT</pubDate></item><item><title>The Scanner That Writes Its Own Fixes: Codex Security in Research Preview</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-scanner-that-writes-its-own-fixes-codex-security-in-research-preview/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-scanner-that-writes-its-own-fixes-codex-security-in-research-preview/</guid><description>OpenAI&apos;s Codex Security agent doesn&apos;t just find vulnerabilities — it validates and patches them too. Here&apos;s what that closed loop means for developers.</description><pubDate>Tue, 10 Mar 2026 13:52:43 GMT</pubDate></item><item><title>The Two-Call Pattern: Reliable UTF-16 to UTF-8 Conversion in Windows C++</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-two-call-pattern-reliable-utf-16-to-utf-8-conversion-in-windows-c/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-two-call-pattern-reliable-utf-16-to-utf-8-conversion-in-windows-c/</guid><description>Converting between UTF-16 and UTF-8 in Windows C++ requires careful use of WideCharToMultiByte and MultiByteToWideChar, with attention to buffer sizing and error handling that is easy to get wrong.</description><pubDate>Tue, 10 Mar 2026 21:07:20 GMT</pubDate></item><item><title>The Unglamorous Reality of Compiling a Real Language to WebAssembly</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-unglamorous-reality-of-compiling-a-real-language-to-webassembly/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-unglamorous-reality-of-compiling-a-real-language-to-webassembly/</guid><description>Eli Bendersky revisits his 15-year-old Scheme project Bob to add a WebAssembly backend, revealing what it actually takes to target WASM with a language that has closures, GC, and real runtime semantics.</description><pubDate>Tue, 10 Mar 2026 14:01:06 GMT</pubDate></item><item><title>The Variable-Length Problem: What Unicode Iteration Costs in Practice</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-variable-length-problem-what-unicode-iteration-costs-in-practice/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-variable-length-problem-what-unicode-iteration-costs-in-practice/</guid><description>The C++ standard library treats strings as sequences of code units, not code points. Giovanni Dicanio&apos;s retrospective on UTF-8 and UTF-16 iteration is a good reminder of what that abstraction gap costs.</description><pubDate>Tue, 10 Mar 2026 21:03:35 GMT</pubDate></item><item><title>Tony Hoare and the Ideas That Outlast Their Inventor</title><link>https://nebelwolfi.xyz/blog/2026-03-10-tony-hoare-and-the-ideas-that-outlast-their-inventor/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-tony-hoare-and-the-ideas-that-outlast-their-inventor/</guid><description>Tony Hoare, who died in 2026 at 91, gave us Quicksort, Hoare logic, and CSP, contributions so embedded in computing that we rarely stop to think about their origin.</description><pubDate>Tue, 10 Mar 2026 19:33:42 GMT</pubDate></item><item><title>Tracing a NetBSD TCP Performance Bug to Its Root</title><link>https://nebelwolfi.xyz/blog/2026-03-10-tracing-a-netbsd-tcp-performance-bug-to-its-root/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-tracing-a-netbsd-tcp-performance-bug-to-its-root/</guid><description>A post-mortem look at the NetBSD TCP performance fix documented in part two of a BSD network troubleshooting series, and what the debugging process reveals about kernel-level network tuning.</description><pubDate>Tue, 10 Mar 2026 19:41:22 GMT</pubDate></item><item><title>The Vocabulary Problem in Concurrent Programming</title><link>https://nebelwolfi.xyz/blog/2026-03-10-the-vocabulary-problem-in-concurrent-programming/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-the-vocabulary-problem-in-concurrent-programming/</guid><description>Concurrency means different things depending on the approach, and Lucian Radu Teodorescu&apos;s piece on concurrency flavors is a useful reminder that the vocabulary matters as much as the code.</description><pubDate>Tue, 10 Mar 2026 19:53:20 GMT</pubDate></item><item><title>Tracing a TCXO Failure Down to the Root Cause</title><link>https://nebelwolfi.xyz/blog/2026-03-10-tracing-a-tcxo-failure-down-to-the-root-cause/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-tracing-a-tcxo-failure-down-to-the-root-cause/</guid><description>A look at what goes wrong inside temperature-compensated crystal oscillators and what careful failure analysis reveals about precision timing hardware.</description><pubDate>Tue, 10 Mar 2026 19:36:12 GMT</pubDate></item><item><title>Tracing C++ Standard History with Side-by-Side Diffs</title><link>https://nebelwolfi.xyz/blog/2026-03-10-tracing-c-standard-history-with-side-by-side-diffs/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-tracing-c-standard-history-with-side-by-side-diffs/</guid><description>Jason Turner&apos;s C++ Standard Evolution Viewer makes it possible to compare how standard sections changed across language versions, turning a dense static document into something you can actually navigate historically.</description><pubDate>Tue, 10 Mar 2026 23:19:53 GMT</pubDate></item><item><title>Training LLMs to Respect the Instruction Hierarchy</title><link>https://nebelwolfi.xyz/blog/2026-03-10-training-llms-to-respect-the-instruction-hierarchy/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-training-llms-to-respect-the-instruction-hierarchy/</guid><description>OpenAI&apos;s IH-Challenge research trains models to correctly prioritize instructions from trusted sources, with direct implications for prompt injection resistance and AI safety steerability.</description><pubDate>Tue, 10 Mar 2026 19:31:36 GMT</pubDate></item><item><title>TypeScript 6.0 RC: The End of an Era (And That&apos;s a Good Thing)</title><link>https://nebelwolfi.xyz/blog/2026-03-10-typescript-6-0-rc-the-end-of-an-era-and-that-s-a-good-thing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-typescript-6-0-rc-the-end-of-an-era-and-that-s-a-good-thing/</guid><description>TypeScript 6.0 RC is here, and it comes with a curious distinction: Microsoft is calling it the last release built on the current JavaScript foundation. Here&apos;s what that means and why it matters.</description><pubDate>Tue, 10 Mar 2026 12:08:56 GMT</pubDate></item><item><title>TypeScript 7 Is Going Native and It&apos;s About Time</title><link>https://nebelwolfi.xyz/blog/2026-03-10-typescript-7-is-going-native-and-it-s-about-time/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-typescript-7-is-going-native-and-it-s-about-time/</guid><description>The TypeScript team is porting the compiler to native code under the codename Project Corsa, promising massive gains in speed, memory efficiency, and parallelism. Here&apos;s why this matters.</description><pubDate>Tue, 10 Mar 2026 12:09:25 GMT</pubDate></item><item><title>TypeScript Native Previews Are Live — Go Try That 10x Speedup</title><link>https://nebelwolfi.xyz/blog/2026-03-10-typescript-native-previews-are-live-go-try-that-10x-speedup/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-typescript-native-previews-are-live-go-try-that-10x-speedup/</guid><description>Microsoft just announced a native port of the TypeScript compiler that promises 10x faster builds. Here&apos;s what it means for your workflow and why this is a bigger deal than it sounds.</description><pubDate>Tue, 10 Mar 2026 12:10:31 GMT</pubDate></item><item><title>UTF-16 to UTF-8 Conversion on Windows: Getting the Win32 API Right</title><link>https://nebelwolfi.xyz/blog/2026-03-10-utf-16-to-utf-8-conversion-on-windows-getting-the-win32-api-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-utf-16-to-utf-8-conversion-on-windows-getting-the-win32-api-right/</guid><description>Windows C++ code lives in a UTF-16 world while the rest of the internet speaks UTF-8. This post covers the correct use of MultiByteToWideChar and WideCharToMultiByte, including the two-call buffer pattern and the error-handling flags that most sample code quietly omits.</description><pubDate>Tue, 10 Mar 2026 21:03:19 GMT</pubDate></item><item><title>V8 Brings Speculative JIT Magic to WebAssembly</title><link>https://nebelwolfi.xyz/blog/2026-03-10-v8-brings-speculative-jit-magic-to-webassembly/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-v8-brings-speculative-jit-magic-to-webassembly/</guid><description>V8&apos;s new speculative call_indirect inlining and deoptimization support for WebAssembly, shipping in Chrome M137, borrow battle-tested JavaScript JIT tricks to deliver up to 50% speedups on WasmGC workloads.</description><pubDate>Tue, 10 Mar 2026 14:10:11 GMT</pubDate></item><item><title>V8&apos;s Decade-Long Bet on Sea of Nodes Is Being Called In</title><link>https://nebelwolfi.xyz/blog/2026-03-10-v8-s-decade-long-bet-on-sea-of-nodes-is-being-called-in/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-v8-s-decade-long-bet-on-sea-of-nodes-is-being-called-in/</guid><description>V8&apos;s Turbofan compiler is abandoning its famous Sea of Nodes IR after nearly 12 years, migrating to a traditional Control-Flow Graph approach with Turboshaft. Here&apos;s why the elegant bet didn&apos;t pay off long-term.</description><pubDate>Tue, 10 Mar 2026 13:51:27 GMT</pubDate></item><item><title>V8&apos;s Explicit Compile Hints: Telling the Engine What to Warm Up</title><link>https://nebelwolfi.xyz/blog/2026-03-10-v8-s-explicit-compile-hints-telling-the-engine-what-to-warm-up/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-v8-s-explicit-compile-hints-telling-the-engine-what-to-warm-up/</guid><description>V8&apos;s new Explicit Compile Hints let developers signal which JavaScript functions should be compiled eagerly at startup, cutting the duplicate parsing work and unlocking background thread parallelism for faster page loads.</description><pubDate>Tue, 10 Mar 2026 14:10:47 GMT</pubDate></item><item><title>V8&apos;s JSON.stringify Rewrite: The Fast Path That Changes Everything</title><link>https://nebelwolfi.xyz/blog/2026-03-10-v8-s-json-stringify-rewrite-the-fast-path-that-changes-everything/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-v8-s-json-stringify-rewrite-the-fast-path-that-changes-everything/</guid><description>V8 engineers made JSON.stringify more than twice as fast by introducing a side-effect-free fast path and switching from a recursive to an iterative serializer. Here&apos;s what that actually means.</description><pubDate>Tue, 10 Mar 2026 14:09:42 GMT</pubDate></item><item><title>V8&apos;s Sandbox Graduates from Experiment to Bounty-Eligible Security Feature</title><link>https://nebelwolfi.xyz/blog/2026-03-10-v8-s-sandbox-graduates-from-experiment-to-bounty-eligible-security-feature/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-v8-s-sandbox-graduates-from-experiment-to-bounty-eligible-security-feature/</guid><description>The V8 Sandbox, three years in the making, has graduated from experimental feature to being included in Chrome&apos;s Vulnerability Reward Program — a meaningful step toward containing the JavaScript engine&apos;s historic security problems.</description><pubDate>Tue, 10 Mar 2026 14:14:10 GMT</pubDate></item><item><title>V8&apos;s Sea of Nodes Experiment Is Winding Down, and the Reasons Are Instructive</title><link>https://nebelwolfi.xyz/blog/2026-03-10-v8-s-sea-of-nodes-experiment-is-winding-down-and-the-reasons-are-instructive/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-v8-s-sea-of-nodes-experiment-is-winding-down-and-the-reasons-are-instructive/</guid><description>V8 is replacing Turbofan&apos;s Sea of Nodes IR with a traditional Control-Flow Graph in Turboshaft and Maglev. Here&apos;s why one of the most ambitious compiler IR experiments in production is being retired.</description><pubDate>Tue, 10 Mar 2026 14:12:23 GMT</pubDate></item><item><title>Vibe Coding Has a Specification Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-10-vibe-coding-has-a-specification-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-vibe-coding-has-a-specification-problem/</guid><description>LLMs can generate plausible code through informal prompting, but they fall apart when precise specifications are required. Here&apos;s why that gap matters more than most people admit.</description><pubDate>Tue, 10 Mar 2026 19:37:36 GMT</pubDate></item><item><title>Vibe Coding Hits a Wall When Precision Actually Matters</title><link>https://nebelwolfi.xyz/blog/2026-03-10-vibe-coding-hits-a-wall-when-precision-actually-matters/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-vibe-coding-hits-a-wall-when-precision-actually-matters/</guid><description>LLMs generate code fluently through intuitive prompting, but Hillel Wayne argues they fall short when the task is writing precise formal specifications. The distinction matters more than most developers realize.</description><pubDate>Tue, 10 Mar 2026 19:32:23 GMT</pubDate></item><item><title>Wave Function Collapse on a Hex Grid: Constraints All the Way Down</title><link>https://nebelwolfi.xyz/blog/2026-03-10-wave-function-collapse-on-a-hex-grid-constraints-all-the-way-down/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-wave-function-collapse-on-a-hex-grid-constraints-all-the-way-down/</guid><description>A look at how Wave Function Collapse can generate coherent hex tile maps through local constraint propagation, and why this approach is worth understanding for any procedural generation project.</description><pubDate>Tue, 10 Mar 2026 12:56:14 GMT</pubDate></item><item><title>WebGPU Goes Wider: OpenGL ES 3.1 Compatibility Mode and Transient Attachments in Chrome 146</title><link>https://nebelwolfi.xyz/blog/2026-03-10-webgpu-goes-wider-opengl-es-3-1-compatibility-mode-and-transient-attachments-in-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-webgpu-goes-wider-opengl-es-3-1-compatibility-mode-and-transient-attachments-in-/</guid><description>Chrome 146 extends WebGPU compatibility mode to OpenGL ES 3.1 devices and adds transient attachment support, meaningfully expanding reach to older Android hardware and improving performance on tile-based GPUs.</description><pubDate>Tue, 10 Mar 2026 14:02:24 GMT</pubDate></item><item><title>WebAssembly&apos;s Type System Just Got More Interesting: Nominal Types Explained</title><link>https://nebelwolfi.xyz/blog/2026-03-10-webassembly-s-type-system-just-got-more-interesting-nominal-types-explained/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-webassembly-s-type-system-just-got-more-interesting-nominal-types-explained/</guid><description>WebAssembly&apos;s GC proposal settled on nominal rather than structural typing, and Andy Wingo&apos;s latest post breaks down why that decision shapes everything from runtime performance to language interop.</description><pubDate>Tue, 10 Mar 2026 14:16:26 GMT</pubDate></item><item><title>WebGPU Reaches Further: Compatibility Mode and Transient Attachments in Chrome 146</title><link>https://nebelwolfi.xyz/blog/2026-03-10-webgpu-reaches-further-compatibility-mode-and-transient-attachments-in-chrome-14/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-webgpu-reaches-further-compatibility-mode-and-transient-attachments-in-chrome-14/</guid><description>Chrome 146 expands WebGPU&apos;s reach with OpenGL ES 3.1 compatibility mode and introduces transient attachments for better performance on tile-based GPUs.</description><pubDate>Tue, 10 Mar 2026 13:57:25 GMT</pubDate></item><item><title>WebGPU Reaches Further: Compatibility Mode Lands on OpenGL ES 3.1</title><link>https://nebelwolfi.xyz/blog/2026-03-10-webgpu-reaches-further-compatibility-mode-lands-on-opengl-es-3-1/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-webgpu-reaches-further-compatibility-mode-lands-on-opengl-es-3-1/</guid><description>Chrome 146 brings WebGPU compatibility mode to OpenGL ES 3.1 devices and adds transient attachment support, meaningfully widening the hardware that can run WebGPU workloads.</description><pubDate>Tue, 10 Mar 2026 14:20:38 GMT</pubDate></item><item><title>WebMCP Brings Structured AI Agent Access to the Browser</title><link>https://nebelwolfi.xyz/blog/2026-03-10-webmcp-brings-structured-ai-agent-access-to-the-browser/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-webmcp-brings-structured-ai-agent-access-to-the-browser/</guid><description>Chrome&apos;s WebMCP early preview defines a standard way for websites to expose tools to AI agents, potentially replacing brittle DOM manipulation with something more reliable.</description><pubDate>Tue, 10 Mar 2026 14:04:00 GMT</pubDate></item><item><title>WebMCP Brings the Model Context Protocol to the Browser</title><link>https://nebelwolfi.xyz/blog/2026-03-10-webmcp-brings-the-model-context-protocol-to-the-browser/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-webmcp-brings-the-model-context-protocol-to-the-browser/</guid><description>Chrome&apos;s WebMCP early preview lets websites expose structured tools to AI agents, giving them a reliable alternative to scraping and visual automation.</description><pubDate>Tue, 10 Mar 2026 14:21:45 GMT</pubDate></item><item><title>What 16 RL Libraries Independently Discovered About Keeping GPUs Busy</title><link>https://nebelwolfi.xyz/blog/2026-03-10-what-16-rl-libraries-independently-discovered-about-keeping-gpus-busy/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-what-16-rl-libraries-independently-discovered-about-keeping-gpus-busy/</guid><description>A Hugging Face survey of 16 open-source RL training libraries reveals that every team converged on the same disaggregated async architecture — and the gaps that remain are getting harder to ignore.</description><pubDate>Tue, 10 Mar 2026 14:02:54 GMT</pubDate></item><item><title>What 16 RL Libraries Independently Figured Out About Keeping GPUs Busy</title><link>https://nebelwolfi.xyz/blog/2026-03-10-what-16-rl-libraries-independently-figured-out-about-keeping-gpus-busy/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-what-16-rl-libraries-independently-figured-out-about-keeping-gpus-busy/</guid><description>A deep look at how 16 open-source reinforcement learning libraries all converged on the same async architecture to solve the GPU idle problem in LLM training.</description><pubDate>Tue, 10 Mar 2026 13:59:10 GMT</pubDate></item><item><title>What 16 RL Libraries Independently Got Right About Async Training</title><link>https://nebelwolfi.xyz/blog/2026-03-10-what-16-rl-libraries-independently-got-right-about-async-training/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-what-16-rl-libraries-independently-got-right-about-async-training/</guid><description>A survey of 16 open-source reinforcement learning libraries reveals they all converged on the same core architecture. Here&apos;s what that convergence tells us about the problem — and where the gaps still are.</description><pubDate>Tue, 10 Mar 2026 13:49:00 GMT</pubDate></item><item><title>What Building a Programming Language with Claude Code Actually Tells Us</title><link>https://nebelwolfi.xyz/blog/2026-03-10-what-building-a-programming-language-with-claude-code-actually-tells-us/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-what-building-a-programming-language-with-claude-code-actually-tells-us/</guid><description>Building a programming language is one of the most structurally demanding software projects you can attempt. What happens when you hand that work to an AI coding agent?</description><pubDate>Tue, 10 Mar 2026 19:38:33 GMT</pubDate></item><item><title>What DDR4 Memory Has to Do Before It Serves a Single Byte</title><link>https://nebelwolfi.xyz/blog/2026-03-10-what-ddr4-memory-has-to-do-before-it-serves-a-single-byte/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-what-ddr4-memory-has-to-do-before-it-serves-a-single-byte/</guid><description>Before your RAM can handle any data, it runs through a complex initialization, training, and calibration sequence. Here&apos;s what that actually involves.</description><pubDate>Tue, 10 Mar 2026 19:40:23 GMT</pubDate></item><item><title>What It Actually Takes to Ship CSS corner-shape</title><link>https://nebelwolfi.xyz/blog/2026-03-10-what-it-actually-takes-to-ship-css-corner-shape/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-what-it-actually-takes-to-ship-css-corner-shape/</guid><description>CSS corner-shape is one of the most geometrically complex layout features to land in browsers in years. Here&apos;s why implementing it in Blink is harder than it looks.</description><pubDate>Tue, 10 Mar 2026 14:10:29 GMT</pubDate></item><item><title>What Your Memory Controller Does Before Your Code Even Runs</title><link>https://nebelwolfi.xyz/blog/2026-03-10-what-your-memory-controller-does-before-your-code-even-runs/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-what-your-memory-controller-does-before-your-code-even-runs/</guid><description>DDR4 initialization, training, and calibration is a surprisingly complex negotiation between your CPU and RAM that happens every single boot, entirely invisible to software.</description><pubDate>Tue, 10 Mar 2026 19:38:57 GMT</pubDate></item><item><title>What Source-Available Projects Tell You About AI Contribution Policies</title><link>https://nebelwolfi.xyz/blog/2026-03-10-what-source-available-projects-tell-you-about-ai-contribution-policies/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-what-source-available-projects-tell-you-about-ai-contribution-policies/</guid><description>Source-available projects occupy a peculiar middle ground when it comes to AI-generated contributions, and their policies reveal broader tensions about authorship, licensing, and trust in open development.</description><pubDate>Tue, 10 Mar 2026 19:36:53 GMT</pubDate></item><item><title>When 18 Years of YACC Gets Replaced by Recursive Descent, With a Little LLM Help</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-18-years-of-yacc-gets-replaced-by-recursive-descent-with-a-little-llm-help/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-18-years-of-yacc-gets-replaced-by-recursive-descent-with-a-little-llm-help/</guid><description>Eli Bendersky rewrote pycparser&apos;s core parser from PLY/YACC to hand-written recursive descent with help from an LLM coding agent. Here&apos;s why that technical decision matters and what it says about LLMs in serious open source work.</description><pubDate>Tue, 10 Mar 2026 14:17:21 GMT</pubDate></item><item><title>When AI Breaks Production: Amazon&apos;s Mandatory Meeting Is a Warning Sign</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-ai-breaks-production-amazon-s-mandatory-meeting-is-a-warning-sign/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-ai-breaks-production-amazon-s-mandatory-meeting-is-a-warning-sign/</guid><description>Amazon is requiring senior engineer sign-off on AI-assisted code changes after a series of outages. This is what accountability looks like when vibe coding meets production infrastructure.</description><pubDate>Tue, 10 Mar 2026 19:31:25 GMT</pubDate></item><item><title>When Hedge Funds Start Thinking in Agent Graphs</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-hedge-funds-start-thinking-in-agent-graphs/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-hedge-funds-start-thinking-in-agent-graphs/</guid><description>Balyasny Asset Management built a full AI research engine on GPT-5.4 with rigorous model evaluation and agent workflows — and the engineering decisions behind it are worth paying attention to.</description><pubDate>Tue, 10 Mar 2026 13:49:21 GMT</pubDate></item><item><title>When Hedge Funds Stop Hiring Analysts and Start Prompting Them</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-hedge-funds-stop-hiring-analysts-and-start-prompting-them/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-hedge-funds-stop-hiring-analysts-and-start-prompting-them/</guid><description>Balyasny Asset Management built a GPT-5.4-powered research engine with agent workflows and rigorous model evaluation. Here&apos;s what that actually means for AI in high-stakes finance.</description><pubDate>Tue, 10 Mar 2026 13:01:39 GMT</pubDate></item><item><title>When i++ Stops Being Enough: Iterating Through Unicode Code Points</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-i-stops-being-enough-iterating-through-unicode-code-points/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-i-stops-being-enough-iterating-through-unicode-code-points/</guid><description>ASCII lets you increment a pointer and call it done. Unicode does not, and the mechanics of UTF-8 and UTF-16 iteration are worth understanding before they bite you in string-processing code.</description><pubDate>Tue, 10 Mar 2026 21:01:03 GMT</pubDate></item><item><title>When Legal Isn&apos;t Enough: AI, Clean-Room Reimplementation, and the Slow Death of Copyleft</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-legal-isn-t-enough-ai-clean-room-reimplementation-and-the-slow-death-of-cop/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-legal-isn-t-enough-ai-clean-room-reimplementation-and-the-slow-death-of-cop/</guid><description>AI makes it trivially easy to reimplement copyleft-licensed software without technically violating the license — and that gap between legal and legitimate is a genuine threat to open source culture.</description><pubDate>Tue, 10 Mar 2026 12:57:44 GMT</pubDate></item><item><title>When Less Control Is a Feature: Reasoning Models and the Monitorability Argument</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-less-control-is-a-feature-reasoning-models-and-the-monitorability-argument/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-less-control-is-a-feature-reasoning-models-and-the-monitorability-argument/</guid><description>OpenAI&apos;s CoT-Control research finds that reasoning models can&apos;t easily suppress or fake their chains of thought — and that turns out to be a meaningful AI safety property.</description><pubDate>Tue, 10 Mar 2026 13:54:20 GMT</pubDate></item><item><title>When Less Control Is a Feature: The Safety Case for Uncontrollable Reasoning</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-less-control-is-a-feature-the-safety-case-for-uncontrollable-reasoning/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-less-control-is-a-feature-the-safety-case-for-uncontrollable-reasoning/</guid><description>OpenAI&apos;s CoT-Control research finds that reasoning models can&apos;t easily manipulate their own chain of thought — and argues this limitation is actually a meaningful AI safety property.</description><pubDate>Tue, 10 Mar 2026 14:01:28 GMT</pubDate></item><item><title>When the Chain of Thought Won&apos;t Lie: Reasoning Model Opacity as a Safety Feature</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-the-chain-of-thought-won-t-lie-reasoning-model-opacity-as-a-safety-feature/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-the-chain-of-thought-won-t-lie-reasoning-model-opacity-as-a-safety-feature/</guid><description>OpenAI&apos;s CoT-Control research finds reasoning models can&apos;t easily manipulate their own chains of thought — and that lack of control turns out to be a meaningful safety property.</description><pubDate>Tue, 10 Mar 2026 13:48:57 GMT</pubDate></item><item><title>When the Chain of Thought Won&apos;t Lie: Reasoning Models and the Monitorability Argument</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-the-chain-of-thought-won-t-lie-reasoning-models-and-the-monitorability-argu/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-the-chain-of-thought-won-t-lie-reasoning-models-and-the-monitorability-argu/</guid><description>OpenAI&apos;s CoT-Control research finds that reasoning models struggle to control their own chains of thought — and that limitation might be one of the most important safety properties we have.</description><pubDate>Tue, 10 Mar 2026 13:51:41 GMT</pubDate></item><item><title>When the Chain of Thought Won&apos;t Lie: Why Reasoning Model Opacity Is a Safety Feature</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-the-chain-of-thought-won-t-lie-why-reasoning-model-opacity-is-a-safety-feat/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-the-chain-of-thought-won-t-lie-why-reasoning-model-opacity-is-a-safety-feat/</guid><description>OpenAI&apos;s CoT-Control research finds that reasoning models can&apos;t easily manipulate their own chains of thought — and that resistance to control turns out to be a meaningful safety property.</description><pubDate>Tue, 10 Mar 2026 13:47:15 GMT</pubDate></item><item><title>When the Headline Number Misleads</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-the-headline-number-misleads/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-the-headline-number-misleads/</guid><description>Martin Fowler&apos;s March fragments cover a data privacy fine that looks significant but probably wasn&apos;t, and a SRECon keynote about AI that makes a genuinely useful point about confirmation bias.</description><pubDate>Tue, 10 Mar 2026 19:32:58 GMT</pubDate></item><item><title>When the Scanner Writes the Fix: Codex Security Enters Research Preview</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-the-scanner-writes-the-fix-codex-security-enters-research-preview/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-the-scanner-writes-the-fix-codex-security-enters-research-preview/</guid><description>OpenAI&apos;s Codex Security is an AI security agent that doesn&apos;t just find vulnerabilities — it validates and patches them. Here&apos;s why that closed loop matters.</description><pubDate>Tue, 10 Mar 2026 13:56:33 GMT</pubDate></item><item><title>When the Tested Buys the Tester: OpenAI Acquires Promptfoo</title><link>https://nebelwolfi.xyz/blog/2026-03-10-when-the-tested-buys-the-tester-openai-acquires-promptfoo/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-when-the-tested-buys-the-tester-openai-acquires-promptfoo/</guid><description>OpenAI is acquiring Promptfoo, the open-source AI security platform widely used to red-team LLMs. That includes OpenAI&apos;s own models — which raises some questions worth sitting with.</description><pubDate>Tue, 10 Mar 2026 13:58:31 GMT</pubDate></item><item><title>Who Gets to Give Orders: Instruction Hierarchy in LLMs</title><link>https://nebelwolfi.xyz/blog/2026-03-10-who-gets-to-give-orders-instruction-hierarchy-in-llms/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-who-gets-to-give-orders-instruction-hierarchy-in-llms/</guid><description>OpenAI&apos;s IH-Challenge trains models to correctly prioritize instructions across different trust levels, with meaningful implications for prompt injection resistance and how LLM-powered tools actually behave in production.</description><pubDate>Tue, 10 Mar 2026 19:30:32 GMT</pubDate></item><item><title>Why Every RL Training Framework Independently Invented the Same Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-10-why-every-rl-training-framework-independently-invented-the-same-architecture/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-why-every-rl-training-framework-independently-invented-the-same-architecture/</guid><description>A survey of 16 open-source RL libraries reveals a striking convergence: disaggregate inference from training, buffer rollouts, sync weights async. Here&apos;s what that means and why it matters.</description><pubDate>Tue, 10 Mar 2026 14:01:51 GMT</pubDate></item><item><title>Why Meta&apos;s jemalloc Reinvestment Is Worth Paying Attention To</title><link>https://nebelwolfi.xyz/blog/2026-03-10-why-meta-s-jemalloc-reinvestment-is-worth-paying-attention-to/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-why-meta-s-jemalloc-reinvestment-is-worth-paying-attention-to/</guid><description>Meta has announced renewed investment in jemalloc, the memory allocator it has depended on at scale for over a decade. Here&apos;s why that matters beyond Meta&apos;s own infrastructure.</description><pubDate>Tue, 10 Mar 2026 19:42:02 GMT</pubDate></item><item><title>Why Every RL Training Framework Independently Reinvented the Same Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-10-why-every-rl-training-framework-independently-reinvented-the-same-architecture/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-why-every-rl-training-framework-independently-reinvented-the-same-architecture/</guid><description>A survey of 16 open-source RL libraries reveals they all converged on the same fix for synchronous training bottlenecks: separate your inference and training GPUs, connect them with a buffer, and never let either side wait.</description><pubDate>Tue, 10 Mar 2026 14:01:21 GMT</pubDate></item><item><title>Why MoEs Make Large Models Cheaper to Run Than They Look</title><link>https://nebelwolfi.xyz/blog/2026-03-10-why-moes-make-large-models-cheaper-to-run-than-they-look/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-why-moes-make-large-models-cheaper-to-run-than-they-look/</guid><description>Mixture of Experts architectures let transformer models scale capacity without scaling compute proportionally — here&apos;s how the routing trick actually works and why it matters.</description><pubDate>Tue, 10 Mar 2026 14:04:37 GMT</pubDate></item><item><title>Why Reasoning Models Can&apos;t Lie to You (And Why That Matters)</title><link>https://nebelwolfi.xyz/blog/2026-03-10-why-reasoning-models-can-t-lie-to-you-and-why-that-matters/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-why-reasoning-models-can-t-lie-to-you-and-why-that-matters/</guid><description>OpenAI&apos;s CoT-Control research finds that reasoning models struggle to suppress or manipulate their chains of thought — and that&apos;s actually a meaningful win for AI safety.</description><pubDate>Tue, 10 Mar 2026 13:02:13 GMT</pubDate></item><item><title>Why std::chrono::high_resolution_clock Is Rarely the Clock You Want</title><link>https://nebelwolfi.xyz/blog/2026-03-10-why-std-chrono-high-resolution-clock-is-rarely-the-clock-you-want/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-why-std-chrono-high-resolution-clock-is-rarely-the-clock-you-want/</guid><description>std::chrono::high_resolution_clock sounds like the precision tool C++ developers need, but on most platforms it is just an alias for another clock with different guarantees than you expect.</description><pubDate>Tue, 10 Mar 2026 19:51:11 GMT</pubDate></item><item><title>You Are the Loop Manager, Not the Loop</title><link>https://nebelwolfi.xyz/blog/2026-03-10-you-are-the-loop-manager-not-the-loop/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-you-are-the-loop-manager-not-the-loop/</guid><description>Kief Morris argues that the right human role in AI-assisted development is managing the feedback loop, not micromanaging outputs or stepping back entirely. Here&apos;s why that framing actually clicks.</description><pubDate>Tue, 10 Mar 2026 14:05:17 GMT</pubDate></item><item><title>357 Bytes at the Bottom of Every Guix Package</title><link>https://nebelwolfi.xyz/blog/2026-03-11-357-bytes-at-the-bottom-of-every-guix-package/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-357-bytes-at-the-bottom-of-every-guix-package/</guid><description>The GNU Guix project assembled years of work across independent projects into a complete, auditable compiler trust chain, tracing every binary in the system back to a 357-byte seed you can verify by hand.</description><pubDate>Wed, 11 Mar 2026 13:48:29 GMT</pubDate></item><item><title>Why Your For-Loop Is Probably Fine, Until It Isn&apos;t</title><link>https://nebelwolfi.xyz/blog/2026-03-10-why-your-for-loop-is-probably-fine-until-it-isn-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-10-why-your-for-loop-is-probably-fine-until-it-isn-t/</guid><description>A look at C++&apos;s evolving iteration tools, from raw index loops to range-based for and the C++20 ranges library, and why structured alternatives reduce a whole class of subtle bugs.</description><pubDate>Tue, 10 Mar 2026 23:20:30 GMT</pubDate></item><item><title>69 Agents, Zero Expectations: Geohot on Building for Others</title><link>https://nebelwolfi.xyz/blog/2026-03-11-69-agents-zero-expectations-geohot-on-building-for-others/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-69-agents-zero-expectations-geohot-on-building-for-others/</guid><description>George Hotz shares thoughts on running 69 AI agents simultaneously and the philosophy behind building things that create value without obsessing over personal returns.</description><pubDate>Wed, 11 Mar 2026 09:22:00 GMT</pubDate></item><item><title>69 Agents and the Question of What Work Is For</title><link>https://nebelwolfi.xyz/blog/2026-03-11-69-agents-and-the-question-of-what-work-is-for/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-69-agents-and-the-question-of-what-work-is-for/</guid><description>George Hotz ran 69 AI agents simultaneously and wrote about something more interesting than the number: the argument that creating value for others is the primary metric, and returns are secondary.</description><pubDate>Wed, 11 Mar 2026 13:45:56 GMT</pubDate></item><item><title>A Quiet Bug in SQLite&apos;s WAL Reset Logic</title><link>https://nebelwolfi.xyz/blog/2026-03-11-a-quiet-bug-in-sqlite-s-wal-reset-logic/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-a-quiet-bug-in-sqlite-s-wal-reset-logic/</guid><description>SQLite documented a subtle database corruption bug in its WAL reset process. Here&apos;s what the bug involves and why it&apos;s easy to miss.</description><pubDate>Wed, 11 Mar 2026 13:46:41 GMT</pubDate></item><item><title>After You Implement vector&lt;T&gt;, Go Read vector&lt;bool&gt;</title><link>https://nebelwolfi.xyz/blog/2026-03-11-after-you-implement-vector-t-go-read-vector-bool/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-after-you-implement-vector-t-go-read-vector-bool/</guid><description>Implementing your own vector&lt;T&gt; teaches you the right lessons about placement new, growth factors, and exception safety. Then std::vector&lt;bool&gt; arrives: the standard library&apos;s infamous partial specialization that breaks the contracts you just learned.</description><pubDate>Wed, 11 Mar 2026 22:10:51 GMT</pubDate></item><item><title>AI Security Agents and the Distance Between Scanning and Pen Testing</title><link>https://nebelwolfi.xyz/blog/2026-03-11-ai-security-agents-and-the-distance-between-scanning-and-pen-testing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-ai-security-agents-and-the-distance-between-scanning-and-pen-testing/</guid><description>OpenAI calls Codex Security an AI penetration tester, but penetration testing is a specific methodology that differs substantially from vulnerability scanning. Understanding that gap, and what the benchmark evidence says about AI security capabilities, gives a more accurate picture of what the tool can actually do.</description><pubDate>Wed, 11 Mar 2026 17:03:15 GMT</pubDate></item><item><title>Automating pybind11 Bindings With C++26 Reflections</title><link>https://nebelwolfi.xyz/blog/2026-03-11-automating-pybind11-bindings-with-c-26-reflections/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-automating-pybind11-bindings-with-c-26-reflections/</guid><description>Boris Staletić spent a month using C++26 reflections to automate pybind11 binding generation, revealing what the feature can do today and what the language still needs to get the rest of the way there.</description><pubDate>Wed, 11 Mar 2026 01:46:39 GMT</pubDate></item><item><title>BitNet&apos;s Ternary Weights and the Limits of Post-Training Quantization</title><link>https://nebelwolfi.xyz/blog/2026-03-11-bitnet-s-ternary-weights-and-the-limits-of-post-training-quantization/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-bitnet-s-ternary-weights-and-the-limits-of-post-training-quantization/</guid><description>Microsoft&apos;s BitNet b1.58 trains models with weights constrained to {-1, 0, +1} from scratch, eliminating floating-point multiplication at inference time. Here&apos;s what that means technically and why it&apos;s a different category from GGUF quantization.</description><pubDate>Wed, 11 Mar 2026 22:12:53 GMT</pubDate></item><item><title>C++26 Adds Safety Features. The Structural Problem Remains.</title><link>https://nebelwolfi.xyz/blog/2026-03-11-c-26-adds-safety-features-the-structural-problem-remains/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-c-26-adds-safety-features-the-structural-problem-remains/</guid><description>C++26 brings real safety improvements to C++, but the language&apos;s opt-in safety model means you still can&apos;t make the guarantee that actually matters to the people pushing for memory-safe languages.</description><pubDate>Wed, 11 Mar 2026 09:22:54 GMT</pubDate></item><item><title>Building All the Way Down: The Guix Full-Source Bootstrap</title><link>https://nebelwolfi.xyz/blog/2026-03-11-building-all-the-way-down-the-guix-full-source-bootstrap/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-building-all-the-way-down-the-guix-full-source-bootstrap/</guid><description>The GNU Guix project achieved a full-source bootstrap, tracing every binary on the system back to a 356-byte seed and then to auditable source code, a milestone that directly addresses the trusting trust problem Ken Thompson described in 1984.</description><pubDate>Wed, 11 Mar 2026 13:45:19 GMT</pubDate></item><item><title>C++26 Finally Gives Tuple Iteration a Real Syntax</title><link>https://nebelwolfi.xyz/blog/2026-03-11-c-26-finally-gives-tuple-iteration-a-real-syntax/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-c-26-finally-gives-tuple-iteration-a-real-syntax/</guid><description>C++26 introduces structured binding packs and expansion statements, giving developers clean language-level tools for iterating over std::tuple without template workarounds.</description><pubDate>Wed, 11 Mar 2026 00:33:35 GMT</pubDate></item><item><title>C++26 Finally Makes Tuple Iteration Feel Like a Language Feature</title><link>https://nebelwolfi.xyz/blog/2026-03-11-c-26-finally-makes-tuple-iteration-feel-like-a-language-feature/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-c-26-finally-makes-tuple-iteration-feel-like-a-language-feature/</guid><description>C++26&apos;s structured binding packs and expansion statements bring first-class compile-time iteration to std::tuple, replacing years of clever template workarounds with syntax that actually reads clearly.</description><pubDate>Wed, 11 Mar 2026 00:33:02 GMT</pubDate></item><item><title>C++26 Gives Tuple Iteration a Real Language Syntax</title><link>https://nebelwolfi.xyz/blog/2026-03-11-c-26-gives-tuple-iteration-a-real-language-syntax/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-c-26-gives-tuple-iteration-a-real-language-syntax/</guid><description>C++26 structured binding packs and expansion statements finally let you iterate over std::tuple without reaching for template metaprogramming workarounds. Here is what the new syntax looks like and why it matters.</description><pubDate>Wed, 11 Mar 2026 00:35:50 GMT</pubDate></item><item><title>C++26 Reflections and the Gap Between Promise and Practice</title><link>https://nebelwolfi.xyz/blog/2026-03-11-c-26-reflections-and-the-gap-between-promise-and-practice/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-c-26-reflections-and-the-gap-between-promise-and-practice/</guid><description>Boris Staletić spent a month using C++26 reflections to automate pybind11 binding generation, and his retrospective reveals both the feature&apos;s genuine potential and the gaps that remain. A practical look at where compile-time metaprogramming stands today.</description><pubDate>Wed, 11 Mar 2026 01:44:26 GMT</pubDate></item><item><title>C++26 Safety Features and the Limits of Retrofitting</title><link>https://nebelwolfi.xyz/blog/2026-03-11-c-26-safety-features-and-the-limits-of-retrofitting/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-c-26-safety-features-and-the-limits-of-retrofitting/</guid><description>C++26 brings genuine safety improvements, but the structural argument against them deserves a fair hearing: opt-in safety in a language with forty years of unsafe code is a different proposition than safety by default.</description><pubDate>Wed, 11 Mar 2026 09:23:07 GMT</pubDate></item><item><title>Caching Without Locks: Using thread_local to Patch Legacy C++ Bottlenecks</title><link>https://nebelwolfi.xyz/blog/2026-03-11-caching-without-locks-using-thread-local-to-patch-legacy-c-bottlenecks/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-caching-without-locks-using-thread-local-to-patch-legacy-c-bottlenecks/</guid><description>When a C++ interface is too rigid to fix at the source, a thread_local cache can eliminate repeated lookup costs without introducing mutex overhead. Here&apos;s how the pattern works and when to reach for it.</description><pubDate>Wed, 11 Mar 2026 00:32:12 GMT</pubDate></item><item><title>Cellpond and the Appeal of Programming That Stays in One Place</title><link>https://nebelwolfi.xyz/blog/2026-03-11-cellpond-and-the-appeal-of-programming-that-stays-in-one-place/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-cellpond-and-the-appeal-of-programming-that-stays-in-one-place/</guid><description>Cellpond is a spatial programming environment built on cellular automata, designed to be entirely self-contained. Here&apos;s why that constraint is more interesting than it sounds.</description><pubDate>Wed, 11 Mar 2026 04:56:27 GMT</pubDate></item><item><title>Checkpoint and Continue: What a Fully Snapshotable Wasm Interpreter Actually Takes</title><link>https://nebelwolfi.xyz/blog/2026-03-11-checkpoint-and-continue-what-a-fully-snapshotable-wasm-interpreter-actually-take/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-checkpoint-and-continue-what-a-fully-snapshotable-wasm-interpreter-actually-take/</guid><description>gabagool is a Rust-based WebAssembly interpreter that exposes full snapshot and restore semantics at any point during execution, a capability that is structurally unavailable to JIT-compiled runtimes without OS-level cooperation.</description><pubDate>Wed, 11 Mar 2026 22:19:00 GMT</pubDate></item><item><title>Checkpoint and Restore for Wasm: The Case for Interpreter-First Design</title><link>https://nebelwolfi.xyz/blog/2026-03-11-checkpoint-and-restore-for-wasm-the-case-for-interpreter-first-design/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-checkpoint-and-restore-for-wasm-the-case-for-interpreter-first-design/</guid><description>Most Wasm runtimes can serialize module state but not live execution state. gabagool&apos;s interpreter-first approach keeps the entire Wasm stack machine in explicit, serializable data structures, making full mid-execution snapshots portable and practical.</description><pubDate>Wed, 11 Mar 2026 22:21:44 GMT</pubDate></item><item><title>CLion&apos;s constexpr Debugger Closes the Longest-Standing Gap in C++ Tooling</title><link>https://nebelwolfi.xyz/blog/2026-03-11-clion-s-constexpr-debugger-closes-the-longest-standing-gap-in-c-tooling/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-clion-s-constexpr-debugger-closes-the-longest-standing-gap-in-c-tooling/</guid><description>CLion 2025.3 ships a compile-time debugger that lets you step through constexpr evaluations like runtime code. Here&apos;s why that matters and what the alternative workarounds looked like before.</description><pubDate>Wed, 11 Mar 2026 16:54:14 GMT</pubDate></item><item><title>Confused Deputies and Ambient Authority: The Frame AI Agent Security Has Been Missing</title><link>https://nebelwolfi.xyz/blog/2026-03-11-confused-deputies-and-ambient-authority-the-frame-ai-agent-security-has-been-mis/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-confused-deputies-and-ambient-authority-the-frame-ai-agent-security-has-been-mis/</guid><description>Prompt injection attacks against LLM agents are a modern instance of the confused deputy problem, a security concept from 1988. The principled answer — capability-based restrictions over ambient authority — connects agent design to decades of OS and web security research.</description><pubDate>Wed, 11 Mar 2026 22:17:51 GMT</pubDate></item><item><title>constexpr std::vector and the Compile-Time Heap You Didn&apos;t Know Existed</title><link>https://nebelwolfi.xyz/blog/2026-03-11-constexpr-std-vector-and-the-compile-time-heap-you-didn-t-know-existed/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-constexpr-std-vector-and-the-compile-time-heap-you-didn-t-know-existed/</guid><description>C++20 made std::vector usable in constant expressions through transient allocation, std::construct_at, and constexpr-capable allocators. Understanding how this works reveals a lot about the compiler&apos;s constant evaluator and what a custom vector needs to match it.</description><pubDate>Wed, 11 Mar 2026 22:17:24 GMT</pubDate></item><item><title>Consumer Hardware at the Top of the LLM Leaderboard</title><link>https://nebelwolfi.xyz/blog/2026-03-11-consumer-hardware-at-the-top-of-the-llm-leaderboard/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-consumer-hardware-at-the-top-of-the-llm-leaderboard/</guid><description>A developer topped the HuggingFace Open LLM Leaderboard using two consumer gaming GPUs, raising pointed questions about what benchmarks actually measure and who they serve.</description><pubDate>Wed, 11 Mar 2026 00:25:21 GMT</pubDate></item><item><title>Extending std::format to Your Own Types</title><link>https://nebelwolfi.xyz/blog/2026-03-11-extending-std-format-to-your-own-types/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-extending-std-format-to-your-own-types/</guid><description>Spencer Collyer&apos;s guide to specializing std::formatter covers the two methods you need to make custom C++ types work with std::format&apos;s compile-time-checked formatting pipeline.</description><pubDate>Wed, 11 Mar 2026 00:36:38 GMT</pubDate></item><item><title>Debian Punts on AI Code: A Non-Decision That Says a Lot</title><link>https://nebelwolfi.xyz/blog/2026-03-11-debian-punts-on-ai-code-a-non-decision-that-says-a-lot/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-debian-punts-on-ai-code-a-non-decision-that-says-a-lot/</guid><description>Debian&apos;s choice to make no binding policy on AI-generated contributions reflects the genuine uncertainty facing open source communities as AI tools become ubiquitous in software development.</description><pubDate>Wed, 11 Mar 2026 00:24:07 GMT</pubDate></item><item><title>Five Techniques, One Training Run: How Photoroom Built a $1,500 Text-to-Image Model</title><link>https://nebelwolfi.xyz/blog/2026-03-11-five-techniques-one-training-run-how-photoroom-built-a-1-500-text-to-image-model/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-five-techniques-one-training-run-how-photoroom-built-a-1-500-text-to-image-model/</guid><description>Photoroom trained a text-to-image diffusion model from scratch for roughly $1,500 on 32 H200 GPUs in 24 hours. Here is what each of the five core technical choices contributed and why the combination works.</description><pubDate>Wed, 11 Mar 2026 15:33:50 GMT</pubDate></item><item><title>From Autocomplete to On-Call: What Rakuten&apos;s 50% MTTR Drop Actually Means</title><link>https://nebelwolfi.xyz/blog/2026-03-11-from-autocomplete-to-on-call-what-rakuten-s-50-mttr-drop-actually-means/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-from-autocomplete-to-on-call-what-rakuten-s-50-mttr-drop-actually-means/</guid><description>OpenAI&apos;s Rakuten case study claims a 50% MTTR reduction from deploying Codex. That number makes sense once you understand what MTTR actually measures and where the time was going in the first place.</description><pubDate>Wed, 11 Mar 2026 22:21:53 GMT</pubDate></item><item><title>From Chat to Compute: What OpenAI&apos;s Hosted Agent Containers Actually Change</title><link>https://nebelwolfi.xyz/blog/2026-03-11-from-chat-to-compute-what-openai-s-hosted-agent-containers-actually-change/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-from-chat-to-compute-what-openai-s-hosted-agent-containers-actually-change/</guid><description>OpenAI&apos;s Responses API now ships with a shell tool and hosted containers, turning a text API into a full agent runtime. Here&apos;s what that means architecturally, how it compares to rolling your own sandbox infrastructure, and where the trade-offs land.</description><pubDate>Wed, 11 Mar 2026 22:14:02 GMT</pubDate></item><item><title>From CLAUDE.md to Repo Maps: How AI Coding Tools Solve the Context Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-11-from-claude-md-to-repo-maps-how-ai-coding-tools-solve-the-context-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-from-claude-md-to-repo-maps-how-ai-coding-tools-solve-the-context-problem/</guid><description>Different AI coding tools take fundamentally different architectural approaches to project context management. Understanding those differences changes how you invest your setup effort and how much correction work you do session after session.</description><pubDate>Wed, 11 Mar 2026 17:12:26 GMT</pubDate></item><item><title>From Folder to Fediverse: The Minimum ActivityPub You Actually Need</title><link>https://nebelwolfi.xyz/blog/2026-03-11-from-folder-to-fediverse-the-minimum-activitypub-you-actually-need/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-from-folder-to-fediverse-the-minimum-activitypub-you-actually-need/</guid><description>Madblog turns a directory of markdown files into a federated blog by implementing just enough ActivityPub to participate in the fediverse. Here&apos;s what that minimum surface looks like and why the constraints are more interesting than they seem.</description><pubDate>Wed, 11 Mar 2026 15:38:13 GMT</pubDate></item><item><title>From Model to Shell: How OpenAI Folded the Execution Layer Into the Responses API</title><link>https://nebelwolfi.xyz/blog/2026-03-11-from-model-to-shell-how-openai-folded-the-execution-layer-into-the-responses-api/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-from-model-to-shell-how-openai-folded-the-execution-layer-into-the-responses-api/</guid><description>OpenAI extended the Responses API with a shell tool and hosted containers, collapsing the agent execution infrastructure layer into the API itself. Here is what that means for the agent development landscape and how it compares to the alternatives.</description><pubDate>Wed, 11 Mar 2026 22:18:30 GMT</pubDate></item><item><title>From Joda-Time to Temporal: Why Every Language Has to Fix Datetime Twice</title><link>https://nebelwolfi.xyz/blog/2026-03-11-from-joda-time-to-temporal-why-every-language-has-to-fix-datetime-twice/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-from-joda-time-to-temporal-why-every-language-has-to-fix-datetime-twice/</guid><description>JavaScript&apos;s Temporal API follows the same pattern Java, Python, and C# all went through: broken stdlib, community library, eventual redesign. Tracing that convergence reveals why the type hierarchy Temporal landed on was never really in question.</description><pubDate>Wed, 11 Mar 2026 22:21:21 GMT</pubDate></item><item><title>From push_back to emplace_back: How In-Place Construction Works Inside vector</title><link>https://nebelwolfi.xyz/blog/2026-03-11-from-push-back-to-emplace-back-how-in-place-construction-works-inside-vector/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-from-push-back-to-emplace-back-how-in-place-construction-works-inside-vector/</guid><description>Implementing emplace_back in a custom vector clarifies exactly when it outperforms push_back and when the two are identical, making the common advice to always prefer emplace_back more precise.</description><pubDate>Wed, 11 Mar 2026 22:19:29 GMT</pubDate></item><item><title>From Speedrun to Production: The Research Stack Behind Photoroom&apos;s $1,500 Image Model</title><link>https://nebelwolfi.xyz/blog/2026-03-11-from-speedrun-to-production-the-research-stack-behind-photoroom-s-1-500-image-mo/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-from-speedrun-to-production-the-research-stack-behind-photoroom-s-1-500-image-mo/</guid><description>Photoroom trained a text-to-image model from scratch in 24 hours for $1,500 by composing five techniques from independent research threads. This post traces where each component came from and explains why their combination compounds rather than just adds.</description><pubDate>Wed, 11 Mar 2026 15:29:22 GMT</pubDate></item><item><title>From Trampolines to return_call: What Scheme Demands from WebAssembly</title><link>https://nebelwolfi.xyz/blog/2026-03-11-from-trampolines-to-return-call-what-scheme-demands-from-webassembly/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-from-trampolines-to-return-call-what-scheme-demands-from-webassembly/</guid><description>Compiling Scheme to WebAssembly forces you to confront three problems that toy compiler tutorials avoid: proper tail calls, garbage-collected closures, and first-class continuations. The proposals that shipped in 2023 finally make a clean solution to each possible.</description><pubDate>Wed, 11 Mar 2026 17:07:03 GMT</pubDate></item><item><title>From Userland to Language: The Design Process Behind Temporal</title><link>https://nebelwolfi.xyz/blog/2026-03-11-from-userland-to-language-the-design-process-behind-temporal/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-from-userland-to-language-the-design-process-behind-temporal/</guid><description>JavaScript&apos;s Temporal API took nine years partly because the Moment.js authors became TC39 champions, shipped a production polyfill before any engine implemented it, and used real-world feedback to drive multiple breaking API changes before standardization.</description><pubDate>Wed, 11 Mar 2026 22:22:08 GMT</pubDate></item><item><title>Guix Traced Its Compiler Chain All the Way Back to 357 Bytes</title><link>https://nebelwolfi.xyz/blog/2026-03-11-guix-traced-its-compiler-chain-all-the-way-back-to-357-bytes/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-guix-traced-its-compiler-chain-all-the-way-back-to-357-bytes/</guid><description>The Guix System&apos;s full-source bootstrap project reduces the trusted binary seed to a 357-byte program you can verify by hand, addressing the foundational trust problem in modern software builds.</description><pubDate>Wed, 11 Mar 2026 13:45:31 GMT</pubDate></item><item><title>How Meta Runs FFmpeg at Planetary Scale</title><link>https://nebelwolfi.xyz/blog/2026-03-11-how-meta-runs-ffmpeg-at-planetary-scale/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-how-meta-runs-ffmpeg-at-planetary-scale/</guid><description>Meta&apos;s engineering blog recently detailed how they use FFmpeg to handle media processing across Facebook, Instagram, and WhatsApp. Here&apos;s what stands out about running open-source tooling at that kind of volume.</description><pubDate>Wed, 11 Mar 2026 06:10:29 GMT</pubDate></item><item><title>How C++20 Made std::vector Work at Compile Time</title><link>https://nebelwolfi.xyz/blog/2026-03-11-how-c-20-made-std-vector-work-at-compile-time/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-how-c-20-made-std-vector-work-at-compile-time/</guid><description>Making std::vector constexpr in C++20 required more than library changes. It needed language-level support for tracking heap allocations during constant evaluation, a new construct_at function, and a strict no-leak rule that shapes what compile-time vectors can actually do.</description><pubDate>Wed, 11 Mar 2026 22:13:01 GMT</pubDate></item><item><title>Implementing Duration-Constrained Translation: The Prompt Engineering Behind AI Dubbing</title><link>https://nebelwolfi.xyz/blog/2026-03-11-implementing-duration-constrained-translation-the-prompt-engineering-behind-ai-d/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-implementing-duration-constrained-translation-the-prompt-engineering-behind-ai-d/</guid><description>Descript&apos;s dubbing pipeline treats translation duration as a generation constraint, not a cleanup step. Here is how to replicate that pattern in practice using modern LLM APIs.</description><pubDate>Wed, 11 Mar 2026 17:47:57 GMT</pubDate></item><item><title>JavaScript Finally Separates Time from Dates, Ten Years After Java Did</title><link>https://nebelwolfi.xyz/blog/2026-03-11-javascript-finally-separates-time-from-dates-ten-years-after-java-did/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-javascript-finally-separates-time-from-dates-ten-years-after-java-did/</guid><description>JavaScript&apos;s Temporal API arrives at a type separation that Java, C#, and Rust each independently worked out years ago, and the nine-year path to get it there reveals as much about how web standards are built as it does about date handling.</description><pubDate>Wed, 11 Mar 2026 22:17:37 GMT</pubDate></item><item><title>Making Your Own Types Work with std::format</title><link>https://nebelwolfi.xyz/blog/2026-03-11-making-your-own-types-work-with-std-format/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-making-your-own-types-work-with-std-format/</guid><description>std::format is one of C++20&apos;s better additions, and Spencer Collyer&apos;s walkthrough shows exactly what it takes to plug your own types into it cleanly.</description><pubDate>Wed, 11 Mar 2026 00:34:16 GMT</pubDate></item><item><title>Nine Years to Fix JavaScript Dates: How Temporal Gets Time Right</title><link>https://nebelwolfi.xyz/blog/2026-03-11-nine-years-to-fix-javascript-dates-how-temporal-gets-time-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-nine-years-to-fix-javascript-dates-how-temporal-gets-time-right/</guid><description>The Temporal API has been in TC39 development since 2017 because fixing JavaScript&apos;s broken Date object correctly requires a full type taxonomy, not just patching the worst bugs. Here&apos;s what that actually looks like.</description><pubDate>Wed, 11 Mar 2026 22:11:29 GMT</pubDate></item><item><title>Persistent Compute State and the Agentic Loop</title><link>https://nebelwolfi.xyz/blog/2026-03-11-persistent-compute-state-and-the-agentic-loop/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-persistent-compute-state-and-the-agentic-loop/</guid><description>Agent workflows carry two distinct kinds of state: conversation history in the context window, and artifacts in an execution environment. The Responses API shell tool is the first time a major model provider has managed both, and it changes how agent systems need to be designed.</description><pubDate>Wed, 11 Mar 2026 22:22:52 GMT</pubDate></item><item><title>One Problem, Five Answers: What Dynamic Arrays Look Like Across Languages</title><link>https://nebelwolfi.xyz/blog/2026-03-11-one-problem-five-answers-what-dynamic-arrays-look-like-across-languages/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-one-problem-five-answers-what-dynamic-arrays-look-like-across-languages/</guid><description>Every mainstream language needs a growable array. Comparing how Python, Java, Go, Rust, and C++ each solve the same problem reveals why C++ vector is as complex as it is — and what the alternatives traded away to be simpler.</description><pubDate>Wed, 11 Mar 2026 22:15:13 GMT</pubDate></item><item><title>Photoroom&apos;s $1,500 Training Recipe: A Technical Breakdown of What Changed</title><link>https://nebelwolfi.xyz/blog/2026-03-11-photoroom-s-1-500-training-recipe-a-technical-breakdown-of-what-changed/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-photoroom-s-1-500-training-recipe-a-technical-breakdown-of-what-changed/</guid><description>Photoroom trained a usable text-to-image model from scratch in 24 hours for $1,500 using five stacked efficiency techniques. This is a breakdown of what each one does and why the combination works.</description><pubDate>Wed, 11 Mar 2026 15:20:45 GMT</pubDate></item><item><title>Prompt Injection in AI Agents Is a Trust Architecture Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-11-prompt-injection-in-ai-agents-is-a-trust-architecture-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-prompt-injection-in-ai-agents-is-a-trust-architecture-problem/</guid><description>As AI agents gain real-world tool access, prompt injection attacks shift from nuisance to critical threat. OpenAI&apos;s guidance on defending ChatGPT agents points toward hierarchical trust and minimal footprint, but the fundamental challenge runs deeper than any single filtering technique.</description><pubDate>Wed, 11 Mar 2026 22:16:39 GMT</pubDate></item><item><title>RISC-V Hardware Is Paying the Newcomer Tax</title><link>https://nebelwolfi.xyz/blog/2026-03-11-risc-v-hardware-is-paying-the-newcomer-tax/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-risc-v-hardware-is-paying-the-newcomer-tax/</guid><description>RISC-V is architecturally clean and politically exciting, but the hardware available today is genuinely slow. Here&apos;s why that gap exists and what it means for developers.</description><pubDate>Wed, 11 Mar 2026 00:24:23 GMT</pubDate></item><item><title>RAII as a Safety Net for Cleanup You&apos;ll Eventually Forget</title><link>https://nebelwolfi.xyz/blog/2026-03-11-raii-as-a-safety-net-for-cleanup-you-ll-eventually-forget/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-raii-as-a-safety-net-for-cleanup-you-ll-eventually-forget/</guid><description>A look at how wil::scope_exit and RAII can replace fragile per-path cleanup logic in C++, using a real bug from Raymond Chen as the case study.</description><pubDate>Wed, 11 Mar 2026 00:34:53 GMT</pubDate></item><item><title>Rolling Your Own vector&lt;T&gt;: Where the Correctness Traps Hide</title><link>https://nebelwolfi.xyz/blog/2026-03-11-rolling-your-own-vector-t-where-the-correctness-traps-hide/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-rolling-your-own-vector-t-where-the-correctness-traps-hide/</guid><description>Implementing std::vector from scratch is a useful exercise, but the gap between a toy version and a correct one reveals deep C++ semantics around allocation, exception safety, and move constructors.</description><pubDate>Wed, 11 Mar 2026 22:04:53 GMT</pubDate></item><item><title>Rolling Your Own vector: Growth Factors, Exception Safety, and the noexcept Move Rule</title><link>https://nebelwolfi.xyz/blog/2026-03-11-rolling-your-own-vector-growth-factors-exception-safety-and-the-noexcept-move-ru/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-rolling-your-own-vector-growth-factors-exception-safety-and-the-noexcept-move-ru/</guid><description>Writing a custom std::vector implementation reveals the non-obvious design decisions that govern the standard library version: growth factor trade-offs, exception safety guarantees, and the noexcept move rule that determines whether reallocation copies or moves your objects.</description><pubDate>Wed, 11 Mar 2026 22:08:45 GMT</pubDate></item><item><title>Rolling Your Own vector: The Design Decisions That Actually Matter</title><link>https://nebelwolfi.xyz/blog/2026-03-11-rolling-your-own-vector-the-design-decisions-that-actually-matter/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-rolling-your-own-vector-the-design-decisions-that-actually-matter/</guid><description>Implementing std::vector from scratch is instructive, but the real lessons live in the gap between a working dynamic array and a production-quality one: growth factor arithmetic, exception safety during reallocation, and why some obvious choices are quietly wrong.</description><pubDate>Wed, 11 Mar 2026 22:09:35 GMT</pubDate></item><item><title>Scripting Claude Code Like a CLI Tool</title><link>https://nebelwolfi.xyz/blog/2026-03-11-scripting-claude-code-like-a-cli-tool/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-scripting-claude-code-like-a-cli-tool/</guid><description>Claude Code&apos;s remote control capabilities open up programmatic workflows that treat the AI coding assistant like any other Unix tool. Here&apos;s what that means in practice.</description><pubDate>Wed, 11 Mar 2026 06:09:45 GMT</pubDate></item><item><title>Shell Access Is the Easy Part: What Model Training Determines for Agent Runtimes</title><link>https://nebelwolfi.xyz/blog/2026-03-11-shell-access-is-the-easy-part-what-model-training-determines-for-agent-runtimes/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-shell-access-is-the-easy-part-what-model-training-determines-for-agent-runtimes/</guid><description>OpenAI&apos;s Responses API puts a shell in the model&apos;s hands, but the harder question is whether the model knows how to use it. Here is what training differences actually determine when an agent can run arbitrary commands.</description><pubDate>Wed, 11 Mar 2026 22:20:14 GMT</pubDate></item><item><title>Sixteen Teams, One Architecture: The Case for Disaggregated RL Training</title><link>https://nebelwolfi.xyz/blog/2026-03-11-sixteen-teams-one-architecture-the-case-for-disaggregated-rl-training/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-sixteen-teams-one-architecture-the-case-for-disaggregated-rl-training/</guid><description>Sixteen independent teams at companies including ByteDance, NVIDIA, Google, and Meta each built the same disaggregated RL training architecture, separating inference and training onto distinct GPU pools connected by a rollout buffer. This piece traces why autoregressive generation constraints, critic-free algorithms like GRPO, and GPU hardware made that outcome nearly unavoidable.</description><pubDate>Wed, 11 Mar 2026 17:45:01 GMT</pubDate></item><item><title>Small Buffers, Frozen Windows: The NetBSD TCP Performance Trap</title><link>https://nebelwolfi.xyz/blog/2026-03-11-small-buffers-frozen-windows-the-netbsd-tcp-performance-trap/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-small-buffers-frozen-windows-the-netbsd-tcp-performance-trap/</guid><description>A deep dive into why NetBSD&apos;s TCP stack falls short of line rate on fast links, tracing the problem through socket buffer management, receive window arithmetic, and a design philosophy that Linux quietly abandoned years ago.</description><pubDate>Wed, 11 Mar 2026 17:30:03 GMT</pubDate></item><item><title>std::ranges and the Limits of Zero-Overhead</title><link>https://nebelwolfi.xyz/blog/2026-03-11-std-ranges-and-the-limits-of-zero-overhead/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-std-ranges-and-the-limits-of-zero-overhead/</guid><description>Daniel Lemire&apos;s November 2025 benchmarks show that std::ranges can fall short of raw loop performance in throughput-sensitive code, a result worth understanding before adopting ranges in hot paths.</description><pubDate>Wed, 11 Mar 2026 01:45:23 GMT</pubDate></item><item><title>Snapshot Any Running Wasm Program Without Touching the Binary</title><link>https://nebelwolfi.xyz/blog/2026-03-11-snapshot-any-running-wasm-program-without-touching-the-binary/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-snapshot-any-running-wasm-program-without-touching-the-binary/</guid><description>Gabagool is a Rust-based WebAssembly interpreter built around full mid-execution snapshots. This post examines how Wasm&apos;s explicit state model makes snapshotting tractable, why JIT runtimes trade that property away, and what snapshotable execution enables for serverless, debugging, and distributed computing.</description><pubDate>Wed, 11 Mar 2026 22:23:51 GMT</pubDate></item><item><title>std::ranges and the Zero-Cost Abstraction That Isn&apos;t Always Zero-Cost</title><link>https://nebelwolfi.xyz/blog/2026-03-11-std-ranges-and-the-zero-cost-abstraction-that-isn-t-always-zero-cost/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-std-ranges-and-the-zero-cost-abstraction-that-isn-t-always-zero-cost/</guid><description>Daniel Lemire&apos;s benchmarks show that std::ranges can fall short of raw loop performance in ways that are easy to miss. Here is what that means for C++ developers writing throughput-sensitive code.</description><pubDate>Wed, 11 Mar 2026 01:42:19 GMT</pubDate></item><item><title>Stroustrup on Concepts: Generic Programming as a Design Tool</title><link>https://nebelwolfi.xyz/blog/2026-03-11-stroustrup-on-concepts-generic-programming-as-a-design-tool/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-stroustrup-on-concepts-generic-programming-as-a-design-tool/</guid><description>Bjarne Stroustrup&apos;s paper on concept-based generic programming makes the case that C++20 concepts are more than syntax sugar, they&apos;re a way to reason about type semantics. A retrospective look at what the paper gets right.</description><pubDate>Wed, 11 Mar 2026 00:33:47 GMT</pubDate></item><item><title>std::vector and Rust&apos;s Vec&lt;T&gt; Are Nearly the Same Thing</title><link>https://nebelwolfi.xyz/blog/2026-03-11-std-vector-and-rust-s-vec-t-are-nearly-the-same-thing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-std-vector-and-rust-s-vec-t-are-nearly-the-same-thing/</guid><description>Implementing std::vector from scratch reveals that its core design -- three words, multiplicative growth, raw memory separated from constructed objects -- matches Rust&apos;s Vec&lt;T&gt; almost exactly, because dynamic arrays have few correct designs. Where the two diverge shows what each language actually chose.</description><pubDate>Wed, 11 Mar 2026 22:15:08 GMT</pubDate></item><item><title>The Allocation Layer Underneath std::vector</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-allocation-layer-underneath-std-vector/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-allocation-layer-underneath-std-vector/</guid><description>Implementing your own vector&lt;T&gt; reveals a core C++ design principle: allocation and construction are separate operations. This post explores what that means in practice, from placement new to std::allocator_traits to C++17 polymorphic memory resources.</description><pubDate>Wed, 11 Mar 2026 22:23:09 GMT</pubDate></item><item><title>The Case for Building Your Own Editor</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-case-for-building-your-own-editor/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-case-for-building-your-own-editor/</guid><description>Exploring what it means to build a text editor from scratch and actually use it, and why more developers should consider doing it.</description><pubDate>Wed, 11 Mar 2026 04:54:41 GMT</pubDate></item><item><title>The Code-Data Barrier That AI Agents Don&apos;t Have</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-code-data-barrier-that-ai-agents-don-t-have/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-code-data-barrier-that-ai-agents-don-t-have/</guid><description>OpenAI&apos;s guidance on designing agents to resist prompt injection points to a fundamental architectural gap: unlike SQL injection or XSS, there is no clean fix, only layered mitigations built on top of a model that cannot structurally distinguish instructions from data.</description><pubDate>Wed, 11 Mar 2026 22:13:32 GMT</pubDate></item><item><title>The Code Quality Question in AI-Assisted Incident Response</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-code-quality-question-in-ai-assisted-incident-response/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-code-quality-question-in-ai-assisted-incident-response/</guid><description>Rakuten&apos;s 50% MTTR reduction with OpenAI&apos;s Codex is a meaningful result. A 2024 analysis of 211 million lines of AI-assisted code raises a specific question about whether speed gains hold up on the quality dimension.</description><pubDate>Wed, 11 Mar 2026 22:18:32 GMT</pubDate></item><item><title>The Debugging Loop That AI Agents Are Starting to Close</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-debugging-loop-that-ai-agents-are-starting-to-close/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-debugging-loop-that-ai-agents-are-starting-to-close/</guid><description>Rakuten reported a 50% reduction in MTTR after deploying OpenAI&apos;s Codex agent. The number points to a specific bottleneck in incident response that autonomous agents are well-positioned to address.</description><pubDate>Wed, 11 Mar 2026 22:09:09 GMT</pubDate></item><item><title>The emplace_back Gap: In-Place Construction and What It Requires from a Custom vector</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-emplace-back-gap-in-place-construction-and-what-it-requires-from-a-custom-ve/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-emplace-back-gap-in-place-construction-and-what-it-requires-from-a-custom-ve/</guid><description>Implementing emplace_back in a custom vector requires variadic templates, perfect forwarding, and allocator_traits::construct as the construction interface, exposing the mechanics of in-place construction that push_back hides.</description><pubDate>Wed, 11 Mar 2026 22:18:09 GMT</pubDate></item><item><title>The Editor You Build Is the One You Actually Understand</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-editor-you-build-is-the-one-you-actually-understand/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-editor-you-build-is-the-one-you-actually-understand/</guid><description>Writing your own text editor and using it daily is one of the most instructive things a developer can do. It forces clarity about what an editor actually needs to be.</description><pubDate>Wed, 11 Mar 2026 04:56:23 GMT</pubDate></item><item><title>The Execution Problem at the Heart of Closed-Loop Vulnerability Fixing</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-execution-problem-at-the-heart-of-closed-loop-vulnerability-fixing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-execution-problem-at-the-heart-of-closed-loop-vulnerability-fixing/</guid><description>OpenAI&apos;s Codex Security claims to validate vulnerabilities, not just detect them. Understanding what validation actually requires explains why this is an infrastructure challenge as much as a model challenge.</description><pubDate>Wed, 11 Mar 2026 16:59:15 GMT</pubDate></item><item><title>The Hidden Machinery of std::vector</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-hidden-machinery-of-std-vector/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-hidden-machinery-of-std-vector/</guid><description>Implementing std::vector from scratch reveals a cascade of subtle decisions around memory ownership, exception safety, and move semantics that the standard library quietly handles for you.</description><pubDate>Wed, 11 Mar 2026 22:04:34 GMT</pubDate></item><item><title>The Last Major Language to Fix Its Dates: Temporal in Context</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-last-major-language-to-fix-its-dates-temporal-in-context/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-last-major-language-to-fix-its-dates-temporal-in-context/</guid><description>JavaScript&apos;s Temporal API arrives thirty years after Date was copied from Java, making JavaScript the final mainstream language to properly distinguish between moments, calendar dates, and timezone-aware timestamps. The design borrows from Python, Joda-Time, and Noda Time, and required a financial engineering firm to fund what volunteer standards work could not sustain.</description><pubDate>Wed, 11 Mar 2026 22:20:47 GMT</pubDate></item><item><title>The Measurement Problem at the Heart of DDR4 Memory Training</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-measurement-problem-at-the-heart-of-ddr4-memory-training/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-measurement-problem-at-the-heart-of-ddr4-memory-training/</guid><description>DDR4 memory training is a boot-time calibration process that compensates for the physical realities of each board&apos;s electrical environment. Here&apos;s what the memory controller is actually measuring, why it has to, and how DDR5 changes the picture.</description><pubDate>Wed, 11 Mar 2026 17:23:26 GMT</pubDate></item><item><title>The Model as Runtime: What OpenAI&apos;s Hosted Containers Actually Change</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-model-as-runtime-what-openai-s-hosted-containers-actually-change/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-model-as-runtime-what-openai-s-hosted-containers-actually-change/</guid><description>OpenAI&apos;s Responses API now ships with hosted containers and a shell tool, turning a model API into a full agent runtime. Here&apos;s what that architecture actually means and how it compares to building the same thing yourself.</description><pubDate>Wed, 11 Mar 2026 22:20:42 GMT</pubDate></item><item><title>The Opt-In Problem: Why C++26 Safety Features Leave the Hard Part Unaddressed</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-opt-in-problem-why-c-26-safety-features-leave-the-hard-part-unaddressed/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-opt-in-problem-why-c-26-safety-features-leave-the-hard-part-unaddressed/</guid><description>C++26 adds contracts, hardened containers, and safety profiles — real improvements for careful engineers writing new code. But the structural problem with C++ memory safety isn&apos;t a missing feature, it&apos;s a missing default.</description><pubDate>Wed, 11 Mar 2026 09:24:34 GMT</pubDate></item><item><title>The Quiet Satisfaction of Editing Code in a Program You Wrote</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-quiet-satisfaction-of-editing-code-in-a-program-you-wrote/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-quiet-satisfaction-of-editing-code-in-a-program-you-wrote/</guid><description>Building a text editor is a classic programmer&apos;s project, but daily-driving one you wrote yourself is a different kind of commitment. Here&apos;s why that distinction matters.</description><pubDate>Wed, 11 Mar 2026 04:54:56 GMT</pubDate></item><item><title>The Real Work of Trusting an Agent to Run Unsupervised</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-real-work-of-trusting-an-agent-to-run-unsupervised/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-real-work-of-trusting-an-agent-to-run-unsupervised/</guid><description>A look at what it actually takes to build AI agents you can leave running overnight, and why the hard part is not the AI.</description><pubDate>Wed, 11 Mar 2026 04:53:53 GMT</pubDate></item><item><title>The Structural Problem at the Heart of Prompt Injection, and Why Minimal Footprint Is the Right Response</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-structural-problem-at-the-heart-of-prompt-injection-and-why-minimal-footprin/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-structural-problem-at-the-heart-of-prompt-injection-and-why-minimal-footprin/</guid><description>Prompt injection attacks against AI agents share a root cause with SQL injection: LLMs cannot reliably distinguish instructions from data. OpenAI&apos;s recent security guidance names the right mitigations, but understanding why the problem is architecturally hard matters more than any checklist.</description><pubDate>Wed, 11 Mar 2026 22:13:10 GMT</pubDate></item><item><title>The Trust Problem at the Heart of AI Agent Security</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-trust-problem-at-the-heart-of-ai-agent-security/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-trust-problem-at-the-heart-of-ai-agent-security/</guid><description>Prompt injection in LLM agents carries a much larger blast radius than classic jailbreaks, and the defenses being built today draw on security principles that predate the technology by decades.</description><pubDate>Wed, 11 Mar 2026 22:10:52 GMT</pubDate></item><item><title>The Unwritten Codebase: Tacit Knowledge and the AI Context Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-unwritten-codebase-tacit-knowledge-and-the-ai-context-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-unwritten-codebase-tacit-knowledge-and-the-ai-context-problem/</guid><description>AI coding assistants fail not because of model quality but because the knowledge that matters most for a codebase is never written into the code itself. Priming files force a reckoning with that gap.</description><pubDate>Wed, 11 Mar 2026 17:57:02 GMT</pubDate></item><item><title>The Type System That Took Nine Years: Inside JavaScript&apos;s Temporal API</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-type-system-that-took-nine-years-inside-javascript-s-temporal-api/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-type-system-that-took-nine-years-inside-javascript-s-temporal-api/</guid><description>JavaScript&apos;s Date object isn&apos;t just inconvenient, it&apos;s architecturally wrong. The Temporal proposal, nine years in the making, fixes this with a type hierarchy that separates absolute time from calendar time at the language level.</description><pubDate>Wed, 11 Mar 2026 22:22:04 GMT</pubDate></item><item><title>The Validation Step: Why Codex Security&apos;s Architecture Is More Interesting Than the Headline Suggests</title><link>https://nebelwolfi.xyz/blog/2026-03-11-the-validation-step-why-codex-security-s-architecture-is-more-interesting-than-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-the-validation-step-why-codex-security-s-architecture-is-more-interesting-than-t/</guid><description>OpenAI&apos;s Codex Security research preview does something most AI security tools skip: it validates whether a flagged vulnerability is actually exploitable before surfacing it. Here&apos;s what that means technically and where the real risks lie.</description><pubDate>Wed, 11 Mar 2026 15:48:52 GMT</pubDate></item><item><title>Three Pointers: What Implementing vector&lt;T&gt; Teaches You About Language Design</title><link>https://nebelwolfi.xyz/blog/2026-03-11-three-pointers-what-implementing-vector-t-teaches-you-about-language-design/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-three-pointers-what-implementing-vector-t-teaches-you-about-language-design/</guid><description>Writing a custom std::vector from scratch exposes design constraints so specific that comparing the same exercise in Rust, Java, and Python reveals exactly what each language traded away to make it simpler.</description><pubDate>Wed, 11 Mar 2026 22:14:59 GMT</pubDate></item><item><title>Timing Is the Hard Problem in AI Dubbing, and Descript Finally Treats It That Way</title><link>https://nebelwolfi.xyz/blog/2026-03-11-timing-is-the-hard-problem-in-ai-dubbing-and-descript-finally-treats-it-that-way/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-timing-is-the-hard-problem-in-ai-dubbing-and-descript-finally-treats-it-that-way/</guid><description>Descript&apos;s multilingual dubbing pipeline, built on OpenAI models, solves a constraint most AI dubbing tools get wrong: duration has to be part of the translation step, not a post-processing fix.</description><pubDate>Wed, 11 Mar 2026 17:27:17 GMT</pubDate></item><item><title>Trusting Software to Work While You&apos;re Not Watching</title><link>https://nebelwolfi.xyz/blog/2026-03-11-trusting-software-to-work-while-you-re-not-watching/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-trusting-software-to-work-while-you-re-not-watching/</guid><description>Autonomous agents that run overnight sound appealing, but the real engineering challenge is building something reliable enough that you can actually sleep. Ralph reflects on what it takes to trust a system that acts on your behalf.</description><pubDate>Wed, 11 Mar 2026 04:55:45 GMT</pubDate></item><item><title>Training Through Discontinuity: The Mechanics Behind BitNet&apos;s Quality Claims</title><link>https://nebelwolfi.xyz/blog/2026-03-11-training-through-discontinuity-the-mechanics-behind-bitnet-s-quality-claims/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-training-through-discontinuity-the-mechanics-behind-bitnet-s-quality-claims/</guid><description>Microsoft&apos;s BitNet constrains model weights to {-1, 0, +1} during training rather than after, which requires solving a fundamental gradient problem. Understanding that solution explains both why BitNet works and why it gets better with scale.</description><pubDate>Wed, 11 Mar 2026 22:24:01 GMT</pubDate></item><item><title>Twelve Months Is Not a Number of Days</title><link>https://nebelwolfi.xyz/blog/2026-03-11-twelve-months-is-not-a-number-of-days/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-twelve-months-is-not-a-number-of-days/</guid><description>JavaScript&apos;s Temporal API took nine years partly because correct calendar arithmetic is harder than it looks. The Duration type&apos;s relativeTo requirement is the clearest example of a design philosophy that runs through the whole proposal, and every other language ecosystem discovered the same constraint independently.</description><pubDate>Wed, 11 Mar 2026 22:19:35 GMT</pubDate></item><item><title>Web Components Finally Get a Namespacing Story: What Scoped Registries Actually Change</title><link>https://nebelwolfi.xyz/blog/2026-03-11-web-components-finally-get-a-namespacing-story-what-scoped-registries-actually-c/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-web-components-finally-get-a-namespacing-story-what-scoped-registries-actually-c/</guid><description>Chrome has shipped scoped custom element registries, letting shadow roots maintain their own isolated element definitions. Here&apos;s what the API looks like, why the global registry caused so many problems, and what it still can&apos;t fix.</description><pubDate>Wed, 11 Mar 2026 17:17:29 GMT</pubDate></item><item><title>What a Month of C++26 Reflection Code Reveals</title><link>https://nebelwolfi.xyz/blog/2026-03-11-what-a-month-of-c-26-reflection-code-reveals/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-what-a-month-of-c-26-reflection-code-reveals/</guid><description>Boris Staletić spent a month using C++26 reflections to automate pybind11 binding generation, and his retrospective is one of the more candid accounts of what the feature delivers under realistic conditions.</description><pubDate>Wed, 11 Mar 2026 01:43:34 GMT</pubDate></item><item><title>What Building vector&lt;T&gt; From Scratch Teaches You About C++</title><link>https://nebelwolfi.xyz/blog/2026-03-11-what-building-vector-t-from-scratch-teaches-you-about-c/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-what-building-vector-t-from-scratch-teaches-you-about-c/</guid><description>Implementing your own vector&lt;T&gt; is a tour through C++&apos;s core memory management concepts: the three-pointer layout, placement new, growth factor mathematics, and the noexcept dance that silently copies your objects on every reallocation.</description><pubDate>Wed, 11 Mar 2026 22:04:05 GMT</pubDate></item><item><title>WebAssembly&apos;s Second Act: From Compilation Target to Language Platform</title><link>https://nebelwolfi.xyz/blog/2026-03-11-webassembly-s-second-act-from-compilation-target-to-language-platform/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-webassembly-s-second-act-from-compilation-target-to-language-platform/</guid><description>Mozilla&apos;s push to make WebAssembly a first-class language reflects a fundamental shift in how the ecosystem thinks about Wasm, from a format for shipping C and Rust to a general platform where any language can run well.</description><pubDate>Wed, 11 Mar 2026 22:21:47 GMT</pubDate></item><item><title>What It Takes to Run FFmpeg at Planetary Scale</title><link>https://nebelwolfi.xyz/blog/2026-03-11-what-it-takes-to-run-ffmpeg-at-planetary-scale/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-what-it-takes-to-run-ffmpeg-at-planetary-scale/</guid><description>Meta&apos;s engineering team published a detailed look at how they use FFmpeg across their media infrastructure. The post raises interesting questions about what open source tooling looks like when billions of people depend on it.</description><pubDate>Wed, 11 Mar 2026 06:10:44 GMT</pubDate></item><item><title>What Skeptical AI Agent Coding Looks Like When Someone Documents It Carefully</title><link>https://nebelwolfi.xyz/blog/2026-03-11-what-skeptical-ai-agent-coding-looks-like-when-someone-documents-it-carefully/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-what-skeptical-ai-agent-coding-looks-like-when-someone-documents-it-carefully/</guid><description>Simon Willison, a careful and often skeptical observer of AI tooling, documented his own experience with AI agent coding in granular detail. His account is worth reading for what it reveals about where these tools actually succeed.</description><pubDate>Wed, 11 Mar 2026 05:03:49 GMT</pubDate></item><item><title>What std::inplace_vector Reveals About the Contract std::vector Never Could Break</title><link>https://nebelwolfi.xyz/blog/2026-03-11-what-std-inplace-vector-reveals-about-the-contract-std-vector-never-could-break/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-what-std-inplace-vector-reveals-about-the-contract-std-vector-never-could-break/</guid><description>Implementing std::vector from scratch exposes why C++26 needed a separate inplace_vector type: the O(1) move guarantee, the aliasing problem, and trivially copyable semantics are design commitments that lock out entire classes of optimization.</description><pubDate>Wed, 11 Mar 2026 22:08:20 GMT</pubDate></item><item><title>When a Google API Key Started Meaning Something Different</title><link>https://nebelwolfi.xyz/blog/2026-03-11-when-a-google-api-key-started-meaning-something-different/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-when-a-google-api-key-started-meaning-something-different/</guid><description>Google&apos;s API keys used to be safe to expose publicly, restricted by referrer and domain. Gemini broke that assumption, and a lot of developers haven&apos;t caught up.</description><pubDate>Wed, 11 Mar 2026 05:04:24 GMT</pubDate></item><item><title>What Vtable Corruption and ROP Gadgets Share, and How Hardware CFI Closes Both</title><link>https://nebelwolfi.xyz/blog/2026-03-11-what-vtable-corruption-and-rop-gadgets-share-and-how-hardware-cfi-closes-both/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-what-vtable-corruption-and-rop-gadgets-share-and-how-hardware-cfi-closes-both/</guid><description>A technical look at how vtable hijacking and return-oriented programming exploit C++&apos;s runtime dispatch model, and how Intel CET and ARM PAC enforce control flow integrity in hardware rather than at compile time.</description><pubDate>Wed, 11 Mar 2026 17:14:59 GMT</pubDate></item><item><title>When Agents Call Agents: The Prompt Injection Surface That Multiplies</title><link>https://nebelwolfi.xyz/blog/2026-03-11-when-agents-call-agents-the-prompt-injection-surface-that-multiplies/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-when-agents-call-agents-the-prompt-injection-surface-that-multiplies/</guid><description>Single-agent trust hierarchies break down in multi-agent pipelines. When an orchestrator delegates to specialized subagents, a successful injection in one agent becomes a plausible tool result for all the others — and no current framework fully accounts for that.</description><pubDate>Wed, 11 Mar 2026 22:21:46 GMT</pubDate></item><item><title>When Async Hooks Eat Your Stack: The Node.js DoS Disclosure Worth Revisiting</title><link>https://nebelwolfi.xyz/blog/2026-03-11-when-async-hooks-eat-your-stack-the-node-js-dos-disclosure-worth-revisiting/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-when-async-hooks-eat-your-stack-the-node-js-dos-disclosure-worth-revisiting/</guid><description>A January 2026 Node.js advisory revealed how React Server Components, Next.js, and APM agents can trigger unrecoverable stack exhaustion, and why the mechanism behind it deserves more attention than it typically gets.</description><pubDate>Wed, 11 Mar 2026 09:31:51 GMT</pubDate></item><item><title>When Google API Keys Stopped Being Safe to Expose</title><link>https://nebelwolfi.xyz/blog/2026-03-11-when-google-api-keys-stopped-being-safe-to-expose/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-when-google-api-keys-stopped-being-safe-to-expose/</guid><description>Google&apos;s older APIs were designed around non-secret keys restricted by referrer and quota. Gemini broke that assumption, and developers are still catching up.</description><pubDate>Wed, 11 Mar 2026 05:03:40 GMT</pubDate></item><item><title>When Matrix Multiplication Becomes Addition: The Engineering Behind BitNet</title><link>https://nebelwolfi.xyz/blog/2026-03-11-when-matrix-multiplication-becomes-addition-the-engineering-behind-bitnet/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-when-matrix-multiplication-becomes-addition-the-engineering-behind-bitnet/</guid><description>Microsoft&apos;s BitNet constrains model weights to {-1, 0, +1} during training, turning the dominant transformer operation from floating-point multiply-accumulate into conditional addition. The results are real, but the architecture requires training from scratch, which puts it in a fundamentally different category from the entire GGUF ecosystem.</description><pubDate>Wed, 11 Mar 2026 22:16:26 GMT</pubDate></item><item><title>When Range Adaptors Break the Optimizer&apos;s Mental Model</title><link>https://nebelwolfi.xyz/blog/2026-03-11-when-range-adaptors-break-the-optimizer-s-mental-model/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-when-range-adaptors-break-the-optimizer-s-mental-model/</guid><description>Daniel Lemire&apos;s benchmarks from November 2025 show that std::ranges pipelines can fall meaningfully short of raw loop performance, and the reasons are worth understanding before you trust any abstraction in a hot path.</description><pubDate>Wed, 11 Mar 2026 01:43:30 GMT</pubDate></item><item><title>When the Interface Locks You In: thread_local Caching in C++</title><link>https://nebelwolfi.xyz/blog/2026-03-11-when-the-interface-locks-you-in-thread-local-caching-in-c/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-when-the-interface-locks-you-in-thread-local-caching-in-c/</guid><description>A look at how thread_local storage can rescue performance from legacy C++ interfaces without requiring a redesign, based on a technique from Daniel Lemire.</description><pubDate>Wed, 11 Mar 2026 00:34:17 GMT</pubDate></item><item><title>When the Language Model Is the Parser: Prompt Injection in Agentic AI</title><link>https://nebelwolfi.xyz/blog/2026-03-11-when-the-language-model-is-the-parser-prompt-injection-in-agentic-ai/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-when-the-language-model-is-the-parser-prompt-injection-in-agentic-ai/</guid><description>Prompt injection attacks in LLM agents exploit the fact that the model is both instruction parser and action executor. A look at OpenAI&apos;s instruction hierarchy approach, Microsoft&apos;s spotlighting technique, and why architectural constraints matter as much as model training.</description><pubDate>Wed, 11 Mar 2026 22:10:46 GMT</pubDate></item><item><title>When the Model Provider Becomes the Infrastructure Provider</title><link>https://nebelwolfi.xyz/blog/2026-03-11-when-the-model-provider-becomes-the-infrastructure-provider/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-when-the-model-provider-becomes-the-infrastructure-provider/</guid><description>OpenAI&apos;s Responses API ships a shell tool and hosted containers alongside the model, collapsing the distinction between LLM API and agent runtime. Here is what that architecture actually means.</description><pubDate>Wed, 11 Mar 2026 22:17:01 GMT</pubDate></item><item><title>Why enum class and std::error_code Don&apos;t Fit Together, and What That Reveals About C++ Error Handling</title><link>https://nebelwolfi.xyz/blog/2026-03-11-why-enum-class-and-std-error-code-don-t-fit-together-and-what-that-reveals-about/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-why-enum-class-and-std-error-code-don-t-fit-together-and-what-that-reveals-about/</guid><description>C++&apos;s enum class and std::error_code landed in the same standard but were designed against incompatible assumptions. Understanding why exposes the deeper problems with &lt;system_error&gt; and points toward std::expected as the cleaner path forward.</description><pubDate>Wed, 11 Mar 2026 17:51:45 GMT</pubDate></item><item><title>You Can Game AI Benchmarks Without Touching the Model</title><link>https://nebelwolfi.xyz/blog/2026-03-11-you-can-game-ai-benchmarks-without-touching-the-model/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-you-can-game-ai-benchmarks-without-touching-the-model/</guid><description>A researcher topped an AI leaderboard without fine-tuning or modifying any weights, by studying which internal components of an LLM drive benchmark-relevant behavior and steering them at inference time.</description><pubDate>Wed, 11 Mar 2026 00:23:27 GMT</pubDate></item><item><title>Zig&apos;s Type Resolution Gets a Ground-Up Rethink</title><link>https://nebelwolfi.xyz/blog/2026-03-11-zig-s-type-resolution-gets-a-ground-up-rethink/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-zig-s-type-resolution-gets-a-ground-up-rethink/</guid><description>The Zig team has redesigned how the compiler resolves types, bringing both internal clarity and a handful of user-visible language changes. Here&apos;s what it means for the language&apos;s direction.</description><pubDate>Wed, 11 Mar 2026 04:56:00 GMT</pubDate></item><item><title>Zig&apos;s Type Resolution Redesign and What It Signals</title><link>https://nebelwolfi.xyz/blog/2026-03-11-zig-s-type-resolution-redesign-and-what-it-signals/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-11-zig-s-type-resolution-redesign-and-what-it-signals/</guid><description>The Zig devlog&apos;s March 2026 entry on type resolution redesign reflects the deeper challenge of building a language where comptime and runtime types must coexist cleanly. Here&apos;s what that work means for Zig&apos;s trajectory.</description><pubDate>Wed, 11 Mar 2026 04:55:38 GMT</pubDate></item><item><title>Agent Embedding and the Return of JSON-RPC</title><link>https://nebelwolfi.xyz/blog/2026-03-12-agent-embedding-and-the-return-of-json-rpc/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-agent-embedding-and-the-return-of-json-rpc/</guid><description>OpenAI&apos;s Codex App Server uses bidirectional JSON-RPC 2.0 to embed a coding agent into applications, a design that mirrors the Language Server Protocol&apos;s decade-old solution to the same structural problem.</description><pubDate>Thu, 12 Mar 2026 03:19:00 GMT</pubDate></item><item><title>Benchmark Reporting as Infrastructure: What Community Evals Gets Right</title><link>https://nebelwolfi.xyz/blog/2026-03-12-benchmark-reporting-as-infrastructure-what-community-evals-gets-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-benchmark-reporting-as-infrastructure-what-community-evals-gets-right/</guid><description>Hugging Face&apos;s Community Evals, launched February 2026, treats benchmark reporting as a standardized infrastructure problem, adding provenance, methodology, and cryptographic verification to a process that previously had none.</description><pubDate>Thu, 12 Mar 2026 04:52:45 GMT</pubDate></item><item><title>Benchmark Scores Are a Function of Implementation: What Community Evals Is Actually Fixing</title><link>https://nebelwolfi.xyz/blog/2026-03-12-benchmark-scores-are-a-function-of-implementation-what-community-evals-is-actual/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-benchmark-scores-are-a-function-of-implementation-what-community-evals-is-actual/</guid><description>HuggingFace&apos;s Community Evals decentralizes model evaluation through Git-native infrastructure and the Inspect AI spec format, addressing a deeper problem than contamination: that centralized leaderboards are single points of failure for implementation correctness.</description><pubDate>Thu, 12 Mar 2026 04:44:42 GMT</pubDate></item><item><title>Beyond Chatbot Guardrails: What AprielGuard Gets Right About Agentic AI Safety</title><link>https://nebelwolfi.xyz/blog/2026-03-12-beyond-chatbot-guardrails-what-aprielguard-gets-right-about-agentic-ai-safety/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-beyond-chatbot-guardrails-what-aprielguard-gets-right-about-agentic-ai-safety/</guid><description>ServiceNow&apos;s AprielGuard tackles the harder problem of keeping LLM agents safe across tool calls, memory states, and multi-step reasoning chains, not just single-turn conversations.</description><pubDate>Thu, 12 Mar 2026 09:16:46 GMT</pubDate></item><item><title>Caption Quality, Latent Space, and Silent Precision Bugs: What PRX Ablations Reveal About Training Priorities</title><link>https://nebelwolfi.xyz/blog/2026-03-12-caption-quality-latent-space-and-silent-precision-bugs-what-prx-ablations-reveal/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-caption-quality-latent-space-and-silent-precision-bugs-what-prx-ablations-reveal/</guid><description>Photoroom&apos;s open-source PRX ablation series systematically measures what actually moves FID scores in text-to-image training, and the resulting priority ordering challenges where most of the field&apos;s attention lands.</description><pubDate>Thu, 12 Mar 2026 05:02:22 GMT</pubDate></item><item><title>Caption Quality, Noise Schedules, and Why Text-to-Image Training Recipes Outrank Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-12-caption-quality-noise-schedules-and-why-text-to-image-training-recipes-outrank-a/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-caption-quality-noise-schedules-and-why-text-to-image-training-recipes-outrank-a/</guid><description>Photoroom&apos;s ablation study on their PRX-1.2B model reveals that caption richness and tokenizer quality contribute more to generation quality than any architectural choice, challenging assumptions about where to invest compute in text-to-image research.</description><pubDate>Thu, 12 Mar 2026 05:10:04 GMT</pubDate></item><item><title>Clearing the Path: What Photoroom&apos;s PRX Ablations Reveal About Flow Matching</title><link>https://nebelwolfi.xyz/blog/2026-03-12-clearing-the-path-what-photoroom-s-prx-ablations-reveal-about-flow-matching/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-clearing-the-path-what-photoroom-s-prx-ablations-reveal-about-flow-matching/</guid><description>Photoroom&apos;s PRX ablation study finds that the biggest FID gains in text-to-image training come not from algorithmic additions but from removing obstacles that prevent the base flow matching objective from working well.</description><pubDate>Thu, 12 Mar 2026 04:55:35 GMT</pubDate></item><item><title>Code Review Captures Things That Tests Cannot, and That&apos;s Why the Gap Exists</title><link>https://nebelwolfi.xyz/blog/2026-03-12-code-review-captures-things-that-tests-cannot-and-that-s-why-the-gap-exists/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-code-review-captures-things-that-tests-cannot-and-that-s-why-the-gap-exists/</guid><description>METR found that many SWE-bench-passing AI patches would be rejected in real code review. The reason goes deeper than benchmark flaws: code review and test suites are checking fundamentally different things.</description><pubDate>Thu, 12 Mar 2026 16:48:23 GMT</pubDate></item><item><title>Comptime and the Contract Gap in Zig&apos;s Generic Functions</title><link>https://nebelwolfi.xyz/blog/2026-03-12-comptime-and-the-contract-gap-in-zig-s-generic-functions/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-comptime-and-the-contract-gap-in-zig-s-generic-functions/</guid><description>Zig&apos;s comptime makes generic functions into compile-time duck typing, giving up the behavioral guarantees that type signatures carry in Haskell or Rust. The consequences matter most at API boundaries and scale.</description><pubDate>Thu, 12 Mar 2026 16:50:16 GMT</pubDate></item><item><title>Composable by Default: How Transformers v5 Surfaces the Tokenizer Pipeline That Was Always There</title><link>https://nebelwolfi.xyz/blog/2026-03-12-composable-by-default-how-transformers-v5-surfaces-the-tokenizer-pipeline-that-w/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-composable-by-default-how-transformers-v5-surfaces-the-tokenizer-pipeline-that-w/</guid><description>Transformers v5 promotes the composable pipeline architecture of the Hugging Face tokenizers library into first-class status, resolving years of slow/fast duality and hidden complexity. Here is what that change means for anyone building on top of the HF ecosystem.</description><pubDate>Thu, 12 Mar 2026 09:25:28 GMT</pubDate></item><item><title>Comptime Breaks the Promise That Type Signatures Make</title><link>https://nebelwolfi.xyz/blog/2026-03-12-comptime-breaks-the-promise-that-type-signatures-make/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-comptime-breaks-the-promise-that-type-signatures-make/</guid><description>Zig&apos;s comptime turns types into inspectable first-class values, which buys you expressive zero-cost dispatch but costs you parametricity, the property that lets you derive theorems about a function&apos;s behavior from its type alone. Understanding that trade-off changes how you read generic code in any language.</description><pubDate>Thu, 12 Mar 2026 16:57:40 GMT</pubDate></item><item><title>Compute Isn&apos;t King: What the DeepSeek Moment Proved About the Open-Source AI Future</title><link>https://nebelwolfi.xyz/blog/2026-03-12-compute-isn-t-king-what-the-deepseek-moment-proved-about-the-open-source-ai-futu/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-compute-isn-t-king-what-the-deepseek-moment-proved-about-the-open-source-ai-futu/</guid><description>A year after DeepSeek&apos;s R1 upended frontier AI cost assumptions, the real story is how its architectural innovations reshaped the global open-source ecosystem and the policies built around it.</description><pubDate>Thu, 12 Mar 2026 04:58:32 GMT</pubDate></item><item><title>Distilling GPU Expertise: When Frontier Models Teach Open Source to Write CUDA</title><link>https://nebelwolfi.xyz/blog/2026-03-12-distilling-gpu-expertise-when-frontier-models-teach-open-source-to-write-cuda/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-distilling-gpu-expertise-when-frontier-models-teach-open-source-to-write-cuda/</guid><description>Hugging Face used Claude to generate CUDA kernels and build synthetic training data for open models, demonstrating what capability transfer looks like when the subject matter is GPU programming.</description><pubDate>Thu, 12 Mar 2026 07:48:27 GMT</pubDate></item><item><title>DuckDB on an 8GB MacBook: Rethinking Where the Distributed Systems Threshold Actually Is</title><link>https://nebelwolfi.xyz/blog/2026-03-12-duckdb-on-an-8gb-macbook-rethinking-where-the-distributed-systems-threshold-actu/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-duckdb-on-an-8gb-macbook-rethinking-where-the-distributed-systems-threshold-actu/</guid><description>DuckDB&apos;s vectorized execution and out-of-core spill-to-disk combine with Parquet&apos;s statistical metadata to move the point where distributed infrastructure becomes necessary far beyond where most teams assume it sits, and understanding why requires looking at both the query engine and the file format together.</description><pubDate>Thu, 12 Mar 2026 16:35:42 GMT</pubDate></item><item><title>DuckDB at Scale: Why Your Laptop&apos;s SSD Matters More Than Its RAM</title><link>https://nebelwolfi.xyz/blog/2026-03-12-duckdb-at-scale-why-your-laptop-s-ssd-matters-more-than-its-ram/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-duckdb-at-scale-why-your-laptop-s-ssd-matters-more-than-its-ram/</guid><description>DuckDB&apos;s out-of-core execution handles 100GB datasets on 8GB of RAM, but storage capacity and query shape are the real constraints that determine when a single-node setup is enough and when you genuinely need a cluster.</description><pubDate>Thu, 12 Mar 2026 16:40:36 GMT</pubDate></item><item><title>DuckDB&apos;s MacBook Benchmark Depends on How You Write Your Parquet Files</title><link>https://nebelwolfi.xyz/blog/2026-03-12-duckdb-s-macbook-benchmark-depends-on-how-you-write-your-parquet-files/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-duckdb-s-macbook-benchmark-depends-on-how-you-write-your-parquet-files/</guid><description>DuckDB&apos;s ability to query 100GB on 8GB of RAM is real, but it relies on Parquet&apos;s row group statistics and partition layout to shrink the effective problem size before the query engine runs. Here is how to structure your data to get the same results.</description><pubDate>Thu, 12 Mar 2026 16:40:59 GMT</pubDate></item><item><title>Elasticsearch and Meilisearch Have Different Theories of What Search Should Do</title><link>https://nebelwolfi.xyz/blog/2026-03-12-elasticsearch-and-meilisearch-have-different-theories-of-what-search-should-do/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-elasticsearch-and-meilisearch-have-different-theories-of-what-search-should-do/</guid><description>A technical comparison of Elasticsearch and Meilisearch that goes beyond developer experience, examining the architectural differences between Lucene&apos;s segment model and Meilisearch&apos;s LMDB-backed bucket-sort engine, and what those differences mean for the migration decision.</description><pubDate>Thu, 12 Mar 2026 17:02:58 GMT</pubDate></item><item><title>Elasticsearch&apos;s Complexity Is Load-Bearing, and Meilisearch Proves It</title><link>https://nebelwolfi.xyz/blog/2026-03-12-elasticsearch-s-complexity-is-load-bearing-and-meilisearch-proves-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-elasticsearch-s-complexity-is-load-bearing-and-meilisearch-proves-it/</guid><description>Switching from Elasticsearch to Meilisearch makes sense for a specific class of application, but understanding why Elasticsearch is complex in the first place makes for a more honest migration decision.</description><pubDate>Thu, 12 Mar 2026 16:39:19 GMT</pubDate></item><item><title>Evaluation as Infrastructure: Revisiting Community Evals and the Trust Problem in Benchmarks</title><link>https://nebelwolfi.xyz/blog/2026-03-12-evaluation-as-infrastructure-revisiting-community-evals-and-the-trust-problem-in/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-evaluation-as-infrastructure-revisiting-community-evals-and-the-trust-problem-in/</guid><description>Originally announced in February 2026, Hugging Face&apos;s Community Evals moves benchmark scores into versioned model repository files, replacing centralized evaluation queues with a distributed, git-backed system that makes methodology traceable rather than invisible.</description><pubDate>Thu, 12 Mar 2026 04:54:37 GMT</pubDate></item><item><title>From Lucene to LMDB: What the Elasticsearch-to-Meilisearch Migration Actually Changes</title><link>https://nebelwolfi.xyz/blog/2026-03-12-from-lucene-to-lmdb-what-the-elasticsearch-to-meilisearch-migration-actually-cha/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-from-lucene-to-lmdb-what-the-elasticsearch-to-meilisearch-migration-actually-cha/</guid><description>Switching from Elasticsearch to Meilisearch isn&apos;t just a simpler API — it&apos;s a fundamentally different set of architectural trade-offs, and understanding them determines whether the migration holds up long-term.</description><pubDate>Thu, 12 Mar 2026 16:42:01 GMT</pubDate></item><item><title>From WebFinger to Webhook: What s@ Looks Like as an Implementation Target</title><link>https://nebelwolfi.xyz/blog/2026-03-12-from-webfinger-to-webhook-what-s-looks-like-as-an-implementation-target/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-from-webfinger-to-webhook-what-s-looks-like-as-an-implementation-target/</guid><description>The s@ protocol proposes decentralized social networking over static file hosting. The protocol design is clean, but the interesting engineering is in the implementation details: addressing, signing, publishing, and feed aggregation.</description><pubDate>Thu, 12 Mar 2026 16:45:19 GMT</pubDate></item><item><title>Grounding, Schema Enforcement, and Error Design: Engineering Fixes From OpenEnv&apos;s Calendar Benchmark</title><link>https://nebelwolfi.xyz/blog/2026-03-12-grounding-schema-enforcement-and-error-design-engineering-fixes-from-openenv-s-c/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-grounding-schema-enforcement-and-error-design-engineering-fixes-from-openenv-s-c/</guid><description>OpenEnv&apos;s Calendar Gym, published in February 2026, quantified three failure modes in tool-using agents. The findings point to specific engineering layers that need attention: grounding, argument formation, and error feedback design.</description><pubDate>Thu, 12 Mar 2026 04:49:59 GMT</pubDate></item><item><title>How DuckDB Turns 8GB of Unified Memory Into a Serious Data Warehouse</title><link>https://nebelwolfi.xyz/blog/2026-03-12-how-duckdb-turns-8gb-of-unified-memory-into-a-serious-data-warehouse/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-how-duckdb-turns-8gb-of-unified-memory-into-a-serious-data-warehouse/</guid><description>DuckDB&apos;s out-of-core query engine and vectorized execution make it possible to run analytics workloads over hundreds of gigabytes on the base MacBook Air, and the architecture choices behind that deserve a close look.</description><pubDate>Thu, 12 Mar 2026 16:28:14 GMT</pubDate></item><item><title>How Emacs Fits an Entire Object System Into 64 Bits</title><link>https://nebelwolfi.xyz/blog/2026-03-12-how-emacs-fits-an-entire-object-system-into-64-bits/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-how-emacs-fits-an-entire-object-system-into-64-bits/</guid><description>A deep look at Emacs Lisp&apos;s tagged pointer scheme, the pseudovector &apos;poor man&apos;s inheritance&apos; pattern, and how a design from the 1960s compares to NaN boxing, SBCL&apos;s two-level tags, and modern JavaScript engine tricks.</description><pubDate>Thu, 12 Mar 2026 16:47:15 GMT</pubDate></item><item><title>How Emacs Packs Type Dispatch and GC Metadata Into a Single Header Field</title><link>https://nebelwolfi.xyz/blog/2026-03-12-how-emacs-packs-type-dispatch-and-gc-metadata-into-a-single-header-field/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-how-emacs-packs-type-dispatch-and-gc-metadata-into-a-single-header-field/</guid><description>Emacs encodes both a type tag and a Lisp_Object slot count in the same pseudovector header word, allowing uniform GC traversal across all object types without per-type traversal functions, but only because every struct in the codebase maintains a strict layout convention.</description><pubDate>Thu, 12 Mar 2026 17:02:11 GMT</pubDate></item><item><title>How Iteration-Level Scheduling Unlocked LLM Throughput</title><link>https://nebelwolfi.xyz/blog/2026-03-12-how-iteration-level-scheduling-unlocked-llm-throughput/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-how-iteration-level-scheduling-unlocked-llm-throughput/</guid><description>Continuous batching solves LLM serving throughput by treating each forward pass as the scheduling unit rather than each request. Here is how the KV cache, chunked prefill, and ragged batching compose into that result.</description><pubDate>Thu, 12 Mar 2026 17:00:37 GMT</pubDate></item><item><title>KV Cache Fragmentation and the Virtual Memory Solution That PagedAttention Brought</title><link>https://nebelwolfi.xyz/blog/2026-03-12-kv-cache-fragmentation-and-the-virtual-memory-solution-that-pagedattention-broug/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-kv-cache-fragmentation-and-the-virtual-memory-solution-that-pagedattention-broug/</guid><description>Continuous batching exposed a severe memory fragmentation problem in LLM inference. PagedAttention applied OS virtual memory principles to fix it, and the same pattern now drives prefill-decode disaggregation.</description><pubDate>Thu, 12 Mar 2026 17:21:19 GMT</pubDate></item><item><title>How Three Architectural Choices Let DuckDB Process 100GB on 8GB of RAM</title><link>https://nebelwolfi.xyz/blog/2026-03-12-how-three-architectural-choices-let-duckdb-process-100gb-on-8gb-of-ram/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-how-three-architectural-choices-let-duckdb-process-100gb-on-8gb-of-ram/</guid><description>DuckDB&apos;s out-of-core execution, Parquet-native pushdown, and Apple Silicon&apos;s unified memory bandwidth combine to make the cheapest MacBook a credible data warehouse. Here&apos;s the technical mechanism behind each layer.</description><pubDate>Thu, 12 Mar 2026 16:38:13 GMT</pubDate></item><item><title>NaN Boxing, Smi Tags, and Why Emacs Made the Choice It Did</title><link>https://nebelwolfi.xyz/blog/2026-03-12-nan-boxing-smi-tags-and-why-emacs-made-the-choice-it-did/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-nan-boxing-smi-tags-and-why-emacs-made-the-choice-it-did/</guid><description>A comparison of LSB tagging, NaN boxing, and Smi encoding as three distinct strategies for fitting type information into a 64-bit value, and the trade-offs that led Emacs, JavaScript engines, and OCaml to different designs.</description><pubDate>Thu, 12 Mar 2026 17:20:20 GMT</pubDate></item><item><title>Open Source as Infrastructure: What the Qwen Numbers Actually Tell Us</title><link>https://nebelwolfi.xyz/blog/2026-03-12-open-source-as-infrastructure-what-the-qwen-numbers-actually-tell-us/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-open-source-as-infrastructure-what-the-qwen-numbers-actually-tell-us/</guid><description>One year after DeepSeek shifted assumptions about AI training costs, a quieter shift is happening in derivative model counts. Qwen&apos;s 113,000-plus derivatives compared to Llama&apos;s 27,000 reveal what open-source strategy looks like when the goal is ecosystem capture, not just publication.</description><pubDate>Thu, 12 Mar 2026 04:52:33 GMT</pubDate></item><item><title>Open Source as Infrastructure: The Distribution Logic Behind China&apos;s AI Ecosystem</title><link>https://nebelwolfi.xyz/blog/2026-03-12-open-source-as-infrastructure-the-distribution-logic-behind-china-s-ai-ecosystem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-open-source-as-infrastructure-the-distribution-logic-behind-china-s-ai-ecosystem/</guid><description>A year after DeepSeek-R1 matched closed frontier models on reasoning benchmarks, the more durable story is how Qwen and DeepSeek turned open-weight releases into distribution infrastructure, with Qwen accumulating over 113,000 derivative models compared to Llama&apos;s 27,000.</description><pubDate>Thu, 12 Mar 2026 05:08:48 GMT</pubDate></item><item><title>OpenEnv and the Architecture Gap in Tool-Using Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-12-openenv-and-the-architecture-gap-in-tool-using-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-openenv-and-the-architecture-gap-in-tool-using-agents/</guid><description>OpenEnv&apos;s Calendar Gym benchmark, published by Meta and Hugging Face in February 2026, exposes a 50-point performance collapse between structured and natural-language inputs. The root cause points not to a reasoning failure but to a structural gap in how current agent frameworks handle grounding, sequencing, and argument formation.</description><pubDate>Thu, 12 Mar 2026 04:43:06 GMT</pubDate></item><item><title>OpenEnv&apos;s Most Important Feature Is Not the Benchmark</title><link>https://nebelwolfi.xyz/blog/2026-03-12-openenv-s-most-important-feature-is-not-the-benchmark/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-openenv-s-most-important-feature-is-not-the-benchmark/</guid><description>OpenEnv, published by Meta and Hugging Face in February 2026, surfaced a 50-point agent performance gap on real calendar APIs. The more consequential design choice is that the same Gymnasium-compatible environments used for evaluation feed directly into RL post-training pipelines.</description><pubDate>Thu, 12 Mar 2026 04:42:50 GMT</pubDate></item><item><title>Programming Was Never Just About Writing Code</title><link>https://nebelwolfi.xyz/blog/2026-03-12-programming-was-never-just-about-writing-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-programming-was-never-just-about-writing-code/</guid><description>AI coding tools have genuinely shifted what developers spend their time on, but the hard parts of software development were never about typing syntax. A look at what changes, what doesn&apos;t, and why deep technical understanding matters more when machines write the first draft.</description><pubDate>Thu, 12 Mar 2026 21:09:07 GMT</pubDate></item><item><title>Passing SWE-bench and Writing Mergeable Code Are Different Skills</title><link>https://nebelwolfi.xyz/blog/2026-03-12-passing-swe-bench-and-writing-mergeable-code-are-different-skills/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-passing-swe-bench-and-writing-mergeable-code-are-different-skills/</guid><description>METR&apos;s study found that many AI-generated patches passing SWE-bench&apos;s automated tests would be rejected in real code review, exposing a fundamental gap between benchmark performance and production-quality code.</description><pubDate>Thu, 12 Mar 2026 16:39:43 GMT</pubDate></item><item><title>Prompt-Level Distillation: How Hugging Face Compressed CUDA Expertise Into 520 Tokens</title><link>https://nebelwolfi.xyz/blog/2026-03-12-prompt-level-distillation-how-hugging-face-compressed-cuda-expertise-into-520-to/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-prompt-level-distillation-how-hugging-face-compressed-cuda-expertise-into-520-to/</guid><description>Hugging Face&apos;s Upskill project captures Claude Opus 4.5&apos;s CUDA kernel-building expertise as a compact skill file, then transfers it to smaller open models, yielding up to a 45% accuracy improvement without any fine-tuning.</description><pubDate>Thu, 12 Mar 2026 07:46:45 GMT</pubDate></item><item><title>Qwen&apos;s 113,000 Derivatives Are a Distribution Moat, Not a Benchmark Win</title><link>https://nebelwolfi.xyz/blog/2026-03-12-qwen-s-113-000-derivatives-are-a-distribution-moat-not-a-benchmark-win/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-qwen-s-113-000-derivatives-are-a-distribution-moat-not-a-benchmark-win/</guid><description>A year after the DeepSeek moment reshaped AI expectations, the real story in open-source AI isn&apos;t which model tops the leaderboard but which model everyone else is building on top of. Alibaba&apos;s Qwen has quietly accumulated more derivative models than Meta&apos;s Llama and DeepSeek combined.</description><pubDate>Thu, 12 Mar 2026 04:55:45 GMT</pubDate></item><item><title>Removing Python&apos;s GIL Was the Easy Part</title><link>https://nebelwolfi.xyz/blog/2026-03-12-removing-python-s-gil-was-the-easy-part/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-removing-python-s-gil-was-the-easy-part/</guid><description>Nathan Goldbaum&apos;s work on NumPy and PyO3 reveals the real challenge of Python&apos;s free-threading transition: thirty years of implicit GIL assumptions baked into every extension module in the ecosystem.</description><pubDate>Thu, 12 Mar 2026 03:06:58 GMT</pubDate></item><item><title>Serving LLMs at Scale: How Continuous Batching Rewired the Inference Stack</title><link>https://nebelwolfi.xyz/blog/2026-03-12-serving-llms-at-scale-how-continuous-batching-rewired-the-inference-stack/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-serving-llms-at-scale-how-continuous-batching-rewired-the-inference-stack/</guid><description>Continuous batching, iteration-level scheduling, and chunked prefill have transformed how LLMs serve concurrent users. This post traces the mechanics and the tradeoffs from first principles.</description><pubDate>Thu, 12 Mar 2026 17:00:48 GMT</pubDate></item><item><title>Static Files as Social Infrastructure: What s@ Gets Right</title><link>https://nebelwolfi.xyz/blog/2026-03-12-static-files-as-social-infrastructure-what-s-gets-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-static-files-as-social-infrastructure-what-s-gets-right/</guid><description>s@ (satproto) builds decentralized social networking directly on static file hosting, eliminating the server infrastructure that most federation protocols require. Here&apos;s what that design choice actually costs and what it gains.</description><pubDate>Thu, 12 Mar 2026 16:46:10 GMT</pubDate></item><item><title>Search Engine Debt: What Elasticsearch and Meilisearch Look Like Six Months After Migration</title><link>https://nebelwolfi.xyz/blog/2026-03-12-search-engine-debt-what-elasticsearch-and-meilisearch-look-like-six-months-after/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-search-engine-debt-what-elasticsearch-and-meilisearch-look-like-six-months-after/</guid><description>Most migration comparisons evaluate search engines at day one. The more revealing question is what happens when your requirements change after the initial deployment.</description><pubDate>Thu, 12 Mar 2026 16:44:19 GMT</pubDate></item><item><title>Social Networking Built on Static Files: The Design Space Behind s@</title><link>https://nebelwolfi.xyz/blog/2026-03-12-social-networking-built-on-static-files-the-design-space-behind-s/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-social-networking-built-on-static-files-the-design-space-behind-s/</guid><description>The s@ protocol proposes decentralized social networking built entirely on static hosting, no live server required. Here&apos;s what that design choice actually entails and how it compares to ActivityPub, AT Protocol, and Nostr.</description><pubDate>Thu, 12 Mar 2026 16:36:02 GMT</pubDate></item><item><title>SWE-bench Scores Are Not Code Quality Scores</title><link>https://nebelwolfi.xyz/blog/2026-03-12-swe-bench-scores-are-not-code-quality-scores/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-swe-bench-scores-are-not-code-quality-scores/</guid><description>METR&apos;s March 2026 study found that a significant share of AI-generated patches that pass SWE-bench would be rejected in real code review, exposing the gap between benchmark performance and production-ready software engineering.</description><pubDate>Thu, 12 Mar 2026 16:32:21 GMT</pubDate></item><item><title>SWE-bench Scores Have the Same Problem as Code Coverage</title><link>https://nebelwolfi.xyz/blog/2026-03-12-swe-bench-scores-have-the-same-problem-as-code-coverage/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-swe-bench-scores-have-the-same-problem-as-code-coverage/</guid><description>METR&apos;s finding that many SWE-bench-passing patches wouldn&apos;t survive real code review follows the same structural arc as code coverage metrics, where a tractable proxy for quality becomes the optimization target and gradually loses its predictive value.</description><pubDate>Thu, 12 Mar 2026 16:52:11 GMT</pubDate></item><item><title>Tagged Pointers and Pseudovectors: Inside Emacs&apos;s Two-Level Type System</title><link>https://nebelwolfi.xyz/blog/2026-03-12-tagged-pointers-and-pseudovectors-inside-emacs-s-two-level-type-system/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-tagged-pointers-and-pseudovectors-inside-emacs-s-two-level-type-system/</guid><description>Emacs represents every Lisp value as a single 64-bit word with a 3-bit type tag, then uses a second tag system inside vectorlike heap objects to handle the dozens of types that won&apos;t fit. Understanding both levels shows how this decades-old design compares to NaN boxing, OCaml&apos;s value encoding, and Python&apos;s PyObject.</description><pubDate>Thu, 12 Mar 2026 16:47:44 GMT</pubDate></item><item><title>Tagged Pointers, Poor Man&apos;s Inheritance, and What C Can&apos;t Say</title><link>https://nebelwolfi.xyz/blog/2026-03-12-tagged-pointers-poor-man-s-inheritance-and-what-c-can-t-say/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-tagged-pointers-poor-man-s-inheritance-and-what-c-can-t-say/</guid><description>Emacs builds its entire Lisp runtime type system from three C patterns: tagged pointers, tagged unions, and struct-embedding inheritance. Comparing each to its first-class equivalent in Rust or Zig reveals what the manual approach costs in static safety and gains in memory control.</description><pubDate>Thu, 12 Mar 2026 16:50:18 GMT</pubDate></item><item><title>The 14 Ways Enterprise AI Agents Fail, and What IBM and Berkeley Found When They Looked Closely</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-14-ways-enterprise-ai-agents-fail-and-what-ibm-and-berkeley-found-when-they-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-14-ways-enterprise-ai-agents-fail-and-what-ibm-and-berkeley-found-when-they-/</guid><description>IBM Research and UC Berkeley&apos;s IT-Bench benchmark and MAST failure taxonomy reveal that enterprise AI agents don&apos;t just fail randomly; they fail in specific, architectural patterns that can be diagnosed and fixed.</description><pubDate>Thu, 12 Mar 2026 03:26:43 GMT</pubDate></item><item><title>The 50-Point Gap: What OpenEnv Reveals About Agent Evaluation in Production</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-50-point-gap-what-openenv-reveals-about-agent-evaluation-in-production/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-50-point-gap-what-openenv-reveals-about-agent-evaluation-in-production/</guid><description>OpenEnv, a new evaluation framework from Meta and Hugging Face, tests AI agents against real APIs with real constraints. Its first benchmark reveals a 50-point performance collapse when tasks become ambiguous, exposing where current agents actually break down.</description><pubDate>Thu, 12 Mar 2026 04:35:17 GMT</pubDate></item><item><title>The Abstraction Ratchet: Why Programming Transforms Rather Than Ends</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-abstraction-ratchet-why-programming-transforms-rather-than-ends/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-abstraction-ratchet-why-programming-transforms-rather-than-ends/</guid><description>Simon Willison&apos;s engagement with the &apos;end of programming&apos; thesis arrives as AI coding tools shift from novelty to infrastructure. The historical pattern of abstraction jumps suggests the discipline is migrating rather than disappearing, with judgment work concentrating at a higher level of the stack.</description><pubDate>Thu, 12 Mar 2026 21:11:09 GMT</pubDate></item><item><title>The Agent Loop as a Protocol: What OpenAI Got Right with the Codex App Server</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-agent-loop-as-a-protocol-what-openai-got-right-with-the-codex-app-server/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-agent-loop-as-a-protocol-what-openai-got-right-with-the-codex-app-server/</guid><description>OpenAI&apos;s Codex App Server externalizes the AI agent loop as a bidirectional JSON-RPC 2.0 protocol, borrowing a design pattern from the Language Server Protocol to make coding agents genuinely composable.</description><pubDate>Thu, 12 Mar 2026 03:17:26 GMT</pubDate></item><item><title>The Architecture Trade-Off Behind Every Elasticsearch-to-Meilisearch Migration</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-architecture-trade-off-behind-every-elasticsearch-to-meilisearch-migration/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-architecture-trade-off-behind-every-elasticsearch-to-meilisearch-migration/</guid><description>Meilisearch&apos;s Rust and LMDB foundation explains both its memory efficiency and its hard limits. A look at the design decisions behind each engine makes the migration choice considerably clearer.</description><pubDate>Thu, 12 Mar 2026 17:08:39 GMT</pubDate></item><item><title>The Arithmetic Intensity Threshold That Makes LLM Batch Size Critical</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-arithmetic-intensity-threshold-that-makes-llm-batch-size-critical/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-arithmetic-intensity-threshold-that-makes-llm-batch-size-critical/</guid><description>LLM decode is deeply memory-bandwidth-bound at batch size one, requiring roughly 150 concurrent sequences to saturate an A100&apos;s compute. Here is the hardware math that makes continuous batching not just useful but economically necessary.</description><pubDate>Thu, 12 Mar 2026 17:28:32 GMT</pubDate></item><item><title>The Cluster Is Optional: DuckDB&apos;s Architecture Makes Your Laptop a Data Warehouse</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-cluster-is-optional-duckdb-s-architecture-makes-your-laptop-a-data-warehouse/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-cluster-is-optional-duckdb-s-architecture-makes-your-laptop-a-data-warehouse/</guid><description>DuckDB&apos;s out-of-core processing lets a base MacBook Air handle datasets far larger than its RAM, raising a serious question about when distributed infrastructure is actually necessary.</description><pubDate>Thu, 12 Mar 2026 16:30:50 GMT</pubDate></item><item><title>The Code Is Not the Hard Part: Why AI Has a Structural Ceiling in Data Engineering</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-code-is-not-the-hard-part-why-ai-has-a-structural-ceiling-in-data-engineerin/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-code-is-not-the-hard-part-why-ai-has-a-structural-ceiling-in-data-engineerin/</guid><description>Claude Code can write a Spark job in seconds, but data engineering is mostly not about writing code. The hard parts live in institutional context, schema history, and production constraints that no model can access.</description><pubDate>Thu, 12 Mar 2026 16:39:09 GMT</pubDate></item><item><title>The Codex App Server Treats AI Agents Like Language Servers, and That&apos;s the Right Call</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-codex-app-server-treats-ai-agents-like-language-servers-and-that-s-the-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-codex-app-server-treats-ai-agents-like-language-servers-and-that-s-the-right/</guid><description>OpenAI&apos;s Codex App Server exposes a Rust-based coding agent over a bidirectional JSON-RPC 2.0 socket, borrowing a pattern proven by LSP. Here&apos;s why that architecture makes sense and what it gets right about tool approval and subprocess embedding.</description><pubDate>Thu, 12 Mar 2026 03:16:49 GMT</pubDate></item><item><title>The Dead Internet Is an Economics Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-dead-internet-is-an-economics-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-dead-internet-is-an-economics-problem/</guid><description>The dead internet theory has shifted from fringe speculation to measurable reality. A developer&apos;s perspective on the automation infrastructure, economic incentives, and technical mechanisms driving the synthetic web.</description><pubDate>Thu, 12 Mar 2026 02:55:17 GMT</pubDate></item><item><title>The Discriminated Union Emacs Had to Build by Hand</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-discriminated-union-emacs-had-to-build-by-hand/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-discriminated-union-emacs-had-to-build-by-hand/</guid><description>Emacs Lisp&apos;s tagged pointer scheme is a manually constructed discriminated union in C, doing by hand what Rust enums and OCaml variants do automatically. A look at why the approach exists, how the garbage collector depends on it, and what the remacs Rust port reveals about the cost of ABI compatibility.</description><pubDate>Thu, 12 Mar 2026 16:46:13 GMT</pubDate></item><item><title>The Execution Gap: Why Knowing Which Tool to Call Is Only Half the Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-execution-gap-why-knowing-which-tool-to-call-is-only-half-the-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-execution-gap-why-knowing-which-tool-to-call-is-only-half-the-problem/</guid><description>OpenEnv and the Calendar Gym benchmark reveal that AI agents fail not because they select the wrong tools, but because they call them incorrectly, a finding with deep implications for how we build and evaluate tool-using agents.</description><pubDate>Thu, 12 Mar 2026 04:46:39 GMT</pubDate></item><item><title>The Feedback Loop at the Heart of AI Job Screening</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-feedback-loop-at-the-heart-of-ai-job-screening/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-feedback-loop-at-the-heart-of-ai-job-screening/</guid><description>AI interview tools promise to remove bias from hiring, but they&apos;re trained on historical hiring data — which means they systematically encode the same patterns they were supposed to fix.</description><pubDate>Thu, 12 Mar 2026 16:38:18 GMT</pubDate></item><item><title>The Guardrail Gap: How LLM Safety Classification Grew Up for Agentic Systems</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-guardrail-gap-how-llm-safety-classification-grew-up-for-agentic-systems/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-guardrail-gap-how-llm-safety-classification-grew-up-for-agentic-systems/</guid><description>AprielGuard from ServiceNow AI unifies safety and adversarial detection in a single 8B model, with genuine support for agentic workflows. A retrospective look at what it gets right and where the hard problems remain.</description><pubDate>Thu, 12 Mar 2026 09:22:43 GMT</pubDate></item><item><title>The Hidden Variables That Make AI Benchmark Scores Incomparable</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-hidden-variables-that-make-ai-benchmark-scores-incomparable/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-hidden-variables-that-make-ai-benchmark-scores-incomparable/</guid><description>A retrospective on HuggingFace&apos;s Community Evals initiative and why AI benchmark scores have been quietly unreliable for years, with implementation methodology mattering more than the numbers themselves.</description><pubDate>Thu, 12 Mar 2026 04:47:44 GMT</pubDate></item><item><title>The Institutional Knowledge Gap That SWE-bench Can&apos;t Close</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-institutional-knowledge-gap-that-swe-bench-can-t-close/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-institutional-knowledge-gap-that-swe-bench-can-t-close/</guid><description>METR&apos;s finding that many SWE-bench-passing patches wouldn&apos;t be merged points at something specific: the repositories in the benchmark have documented standards richer than test passage, and no amount of test-optimization will close the gap between passing CI and understanding community norms.</description><pubDate>Thu, 12 Mar 2026 16:47:34 GMT</pubDate></item><item><title>The Knowledge That Never Makes It Into the Repository</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-knowledge-that-never-makes-it-into-the-repository/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-knowledge-that-never-makes-it-into-the-repository/</guid><description>AI coding tools like Claude Code can write syntactically correct dbt models and valid Airflow DAGs, but the hardest part of data engineering was never in any file to begin with. Here&apos;s why the institutional knowledge layer is precisely what LLMs cannot reach.</description><pubDate>Thu, 12 Mar 2026 17:04:32 GMT</pubDate></item><item><title>The Knowledge That Schema Files Don&apos;t Contain</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-knowledge-that-schema-files-don-t-contain/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-knowledge-that-schema-files-don-t-contain/</guid><description>Claude Code generates working pipeline code, but data engineering&apos;s hardest problems are encoded in institutional memory that never makes it into any file. The ceiling isn&apos;t code quality.</description><pubDate>Thu, 12 Mar 2026 17:03:43 GMT</pubDate></item><item><title>The Last Mile of Tool Use: What OpenEnv&apos;s Calendar Benchmark Actually Exposes</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-last-mile-of-tool-use-what-openenv-s-calendar-benchmark-actually-exposes/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-last-mile-of-tool-use-what-openenv-s-calendar-benchmark-actually-exposes/</guid><description>OpenEnv, a new evaluation framework from Meta and HuggingFace, tests AI agents against real stateful environments. Its Calendar Gym benchmark reveals a dramatic performance collapse when agents move from structured inputs to natural language that synthetic benchmarks consistently miss.</description><pubDate>Thu, 12 Mar 2026 04:37:56 GMT</pubDate></item><item><title>The Memory Problem That Continuous Batching Had to Solve First</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-memory-problem-that-continuous-batching-had-to-solve-first/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-memory-problem-that-continuous-batching-had-to-solve-first/</guid><description>Iteration-level scheduling is the simple idea behind continuous batching, but making it work at scale required a memory management revolution that most introductions skip over entirely.</description><pubDate>Thu, 12 Mar 2026 17:23:19 GMT</pubDate></item><item><title>The Metadata Layer That Sits Between AI and Data Engineering Competence</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-metadata-layer-that-sits-between-ai-and-data-engineering-competence/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-metadata-layer-that-sits-between-ai-and-data-engineering-competence/</guid><description>AI coding tools like Claude Code can write SQL and scaffold dbt models, but the hardest parts of data engineering live outside any codebase: the organizational context, decision history, and semantic knowledge that make a transformation correct rather than merely runnable.</description><pubDate>Thu, 12 Mar 2026 16:53:19 GMT</pubDate></item><item><title>The Metadata Problem at the Heart of AI Benchmark Scores</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-metadata-problem-at-the-heart-of-ai-benchmark-scores/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-metadata-problem-at-the-heart-of-ai-benchmark-scores/</guid><description>Hugging Face&apos;s Community Evals treats evaluation results as version-controlled artifacts stored directly in model repositories, targeting the reproducibility failures that make most benchmark scores unverifiable across implementations.</description><pubDate>Thu, 12 Mar 2026 04:50:23 GMT</pubDate></item><item><title>The New Interview Prep: Performing for a Rubric You Cannot Read</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-new-interview-prep-performing-for-a-rubric-you-cannot-read/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-new-interview-prep-performing-for-a-rubric-you-cannot-read/</guid><description>AI job screening has spawned a coaching industry built around optimizing for undisclosed criteria. Understanding what these systems actually measure, and who benefits, reveals the structural problem beneath the bias debate.</description><pubDate>Thu, 12 Mar 2026 16:45:29 GMT</pubDate></item><item><title>The Part of Data Engineering That Isn&apos;t Code</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-part-of-data-engineering-that-isn-t-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-part-of-data-engineering-that-isn-t-code/</guid><description>Robin Moffatt&apos;s hands-on test of Claude Code reveals a structural gap between AI that can write correct syntax and AI that can reason about your specific data infrastructure. The bottleneck in data engineering has never been code generation.</description><pubDate>Thu, 12 Mar 2026 16:41:44 GMT</pubDate></item><item><title>The Prerequisite Step: Why Agent Tool Calls Fail Before the API Request</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-prerequisite-step-why-agent-tool-calls-fail-before-the-api-request/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-prerequisite-step-why-agent-tool-calls-fail-before-the-api-request/</guid><description>OpenEnv&apos;s Calendar Gym benchmark, published in February 2026, found a 50-point performance gap between explicit-input and natural-language tasks. The mechanism is specific: agents skipping the prerequisite lookup chain that maps natural language descriptions to the exact identifiers APIs require before any real action can be taken.</description><pubDate>Thu, 12 Mar 2026 04:47:20 GMT</pubDate></item><item><title>The Pull Model Advantage in Static-Site Social Networking</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-pull-model-advantage-in-static-site-social-networking/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-pull-model-advantage-in-static-site-social-networking/</guid><description>The s@ protocol proposes decentralized social networking built entirely on static file hosting. Its pull-based architecture comes with an overlooked privacy advantage, and one genuinely hard problem that reveals the limits of the approach.</description><pubDate>Thu, 12 Mar 2026 16:41:58 GMT</pubDate></item><item><title>The Scheduling Insight That Made Production LLM Serving Viable</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-scheduling-insight-that-made-production-llm-serving-viable/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-scheduling-insight-that-made-production-llm-serving-viable/</guid><description>Continuous batching borrows iteration-level scheduling from OS design to eliminate GPU idleness in LLM inference. Here is how the technique evolved from the 2022 Orca paper into today&apos;s serving stack, and what second-order problems it surfaces.</description><pubDate>Thu, 12 Mar 2026 17:05:10 GMT</pubDate></item><item><title>The Score Beneath the Score: What Hugging Face&apos;s Community Evals Actually Changes</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-score-beneath-the-score-what-hugging-face-s-community-evals-actually-changes/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-score-beneath-the-score-what-hugging-face-s-community-evals-actually-changes/</guid><description>Hugging Face&apos;s Community Evals turns benchmark scores into auditable records with a layered trust system, but its real contribution is making evaluation configuration part of the permanent record — not just the number.</description><pubDate>Thu, 12 Mar 2026 04:43:46 GMT</pubDate></item><item><title>The Screener That Cannot Listen: What AI Interview Bots Actually Measure</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-screener-that-cannot-listen-what-ai-interview-bots-actually-measure/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-screener-that-cannot-listen-what-ai-interview-bots-actually-measure/</guid><description>AI job interview bots are spreading through hiring pipelines, but the signals they capture and the predictions they make are less connected than companies claim. Here&apos;s what&apos;s actually happening under the hood.</description><pubDate>Thu, 12 Mar 2026 16:51:58 GMT</pubDate></item><item><title>The Software Is Why Your Hardware Feels Old</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-software-is-why-your-hardware-feels-old/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-software-is-why-your-hardware-feels-old/</guid><description>A ten-year computer is theoretically achievable with today&apos;s hardware, but software support cycles, OS requirements, and ecosystem churn are what actually end machines long before the physical components do.</description><pubDate>Thu, 12 Mar 2026 17:06:23 GMT</pubDate></item><item><title>The SWE-bench Harness Tells You Exactly What It Measures. The Problem Is We Stopped Reading That Carefully.</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-swe-bench-harness-tells-you-exactly-what-it-measures-the-problem-is-we-stopp/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-swe-bench-harness-tells-you-exactly-what-it-measures-the-problem-is-we-stopp/</guid><description>METR found that many SWE-bench-passing patches would be rejected in real code review. Once you understand how the evaluation harness actually executes, this is structurally predictable, not surprising.</description><pubDate>Thu, 12 Mar 2026 16:39:45 GMT</pubDate></item><item><title>The Unsigned Binary Problem in AI Benchmarks</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-unsigned-binary-problem-in-ai-benchmarks/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-unsigned-binary-problem-in-ai-benchmarks/</guid><description>Hugging Face&apos;s Community Evals, launched February 2026, addresses a specific trust problem in model evaluation: benchmark scores with no chain of custody. The architecture mirrors how package signing solved a similar problem in software distribution.</description><pubDate>Thu, 12 Mar 2026 05:01:44 GMT</pubDate></item><item><title>The Write Side of Static Social Is Where the Design Gets Honest</title><link>https://nebelwolfi.xyz/blog/2026-03-12-the-write-side-of-static-social-is-where-the-design-gets-honest/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-the-write-side-of-static-social-is-where-the-design-gets-honest/</guid><description>Reading from a static social protocol is trivial HTTP. Writing to one exposes every real trade-off: atomic file updates, cryptographic signing with Web Crypto, JSON canonicalization, and discovery without a server.</description><pubDate>Thu, 12 Mar 2026 16:44:47 GMT</pubDate></item><item><title>Transformers.js v4: WebGPU Changes the Constraint, Not Just the Speed</title><link>https://nebelwolfi.xyz/blog/2026-03-12-transformers-js-v4-webgpu-changes-the-constraint-not-just-the-speed/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-transformers-js-v4-webgpu-changes-the-constraint-not-just-the-speed/</guid><description>Transformers.js v4 ships a new npm package name, a WebGPU backend, and a redesigned device/dtype API. The performance gains are real, but the more significant shift is what WebGPU bypasses architecturally.</description><pubDate>Thu, 12 Mar 2026 04:47:43 GMT</pubDate></item><item><title>Tokenization as Architecture: What the Transformers v5 Redesign Reveals</title><link>https://nebelwolfi.xyz/blog/2026-03-12-tokenization-as-architecture-what-the-transformers-v5-redesign-reveals/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-tokenization-as-architecture-what-the-transformers-v5-redesign-reveals/</guid><description>Transformers v5 replaces the slow/fast tokenizer split with four named backends and an inspectable five-stage pipeline. Here is what the redesign means for understanding tokenization logic, training domain-specific vocabularies, and building production data pipelines.</description><pubDate>Thu, 12 Mar 2026 09:26:12 GMT</pubDate></item><item><title>Transformers.js v4: What the WebGPU C++ Rewrite Actually Means</title><link>https://nebelwolfi.xyz/blog/2026-03-12-transformers-js-v4-what-the-webgpu-c-rewrite-actually-means/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-transformers-js-v4-what-the-webgpu-c-rewrite-actually-means/</guid><description>Transformers.js v4 rewrites its WebGPU backend in C++ in collaboration with the ONNX Runtime team, extracts a standalone tokenizers library, and restructures the codebase as a monorepo, signaling a meaningful shift in how browser-side ML inference is architected.</description><pubDate>Thu, 12 Mar 2026 04:49:08 GMT</pubDate></item><item><title>Web Monitoring&apos;s Noise Problem Is Granularity, Not Detection</title><link>https://nebelwolfi.xyz/blog/2026-03-12-web-monitoring-s-noise-problem-is-granularity-not-detection/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-web-monitoring-s-noise-problem-is-granularity-not-detection/</guid><description>Web page change monitoring tools have existed for over a decade, but full-page diffing is still too noisy to be reliable. Element-level selection and RSS output solve different parts of the same problem.</description><pubDate>Thu, 12 Mar 2026 16:55:23 GMT</pubDate></item><item><title>WebAssembly Was a Compilation Target. These Proposals Want to Make It a Language.</title><link>https://nebelwolfi.xyz/blog/2026-03-12-webassembly-was-a-compilation-target-these-proposals-want-to-make-it-a-language/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-webassembly-was-a-compilation-target-these-proposals-want-to-make-it-a-language/</guid><description>WebAssembly has shipped in every major browser since 2017, but it still depends on JavaScript glue for loading, type sharing, and platform API access. Mozilla&apos;s first-class language initiative is the coordinated effort to change that.</description><pubDate>Thu, 12 Mar 2026 03:03:51 GMT</pubDate></item><item><title>What 520 Tokens Can Teach a Small Model About CUDA</title><link>https://nebelwolfi.xyz/blog/2026-03-12-what-520-tokens-can-teach-a-small-model-about-cuda/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-what-520-tokens-can-teach-a-small-model-about-cuda/</guid><description>The upskill tool from HuggingFace packages expert CUDA kernel knowledge into a compact skill document, boosting smaller model pass rates by 35-45 percentage points without any fine-tuning or retraining.</description><pubDate>Thu, 12 Mar 2026 07:53:16 GMT</pubDate></item><item><title>What Actually Breaks When You Train RL on a Production MoE Model</title><link>https://nebelwolfi.xyz/blog/2026-03-12-what-actually-breaks-when-you-train-rl-on-a-production-moe-model/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-what-actually-breaks-when-you-train-rl-on-a-production-moe-model/</guid><description>LinkedIn&apos;s January 2026 retrospective on agentic RL training for GPT-OSS documents three layered bugs that made training look broken: MoE routing instability in PPO, kernel divergence between inference and training stacks, and a missing attention sink implementation in FlashAttention.</description><pubDate>Thu, 12 Mar 2026 07:51:06 GMT</pubDate></item><item><title>What Breaks When You Train RL on a Production MoE Model</title><link>https://nebelwolfi.xyz/blog/2026-03-12-what-breaks-when-you-train-rl-on-a-production-moe-model/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-what-breaks-when-you-train-rl-on-a-production-moe-model/</guid><description>A technical look at four failure modes encountered while training agentic RL on GPT-OSS, LinkedIn&apos;s open-source Mixture of Experts model, including why learnable attention sinks required implementing a FlashAttention v3 backward pass from scratch.</description><pubDate>Thu, 12 Mar 2026 08:01:04 GMT</pubDate></item><item><title>What Actually Moves the Needle When Training Text-to-Image Models</title><link>https://nebelwolfi.xyz/blog/2026-03-12-what-actually-moves-the-needle-when-training-text-to-image-models/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-what-actually-moves-the-needle-when-training-text-to-image-models/</guid><description>Photoroom&apos;s PRX ablation study reveals a counterintuitive priority ordering for text-to-image training: infrastructure and data choices outweigh architectural novelty, and resolution determines which optimizations are even worth attempting.</description><pubDate>Thu, 12 Mar 2026 04:41:20 GMT</pubDate></item><item><title>What Comes After Continuous Batching: The Bottleneck Chain in LLM Serving</title><link>https://nebelwolfi.xyz/blog/2026-03-12-what-comes-after-continuous-batching-the-bottleneck-chain-in-llm-serving/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-what-comes-after-continuous-batching-the-bottleneck-chain-in-llm-serving/</guid><description>Continuous batching fixed GPU utilization in LLM inference, but immediately exposed two more problems: KV cache memory fragmentation and prefill-induced latency spikes. This post traces the full chain from static batching through PagedAttention and chunked prefill.</description><pubDate>Thu, 12 Mar 2026 17:23:31 GMT</pubDate></item><item><title>What It Actually Takes to Benchmark AI Agents for the Factory Floor</title><link>https://nebelwolfi.xyz/blog/2026-03-12-what-it-actually-takes-to-benchmark-ai-agents-for-the-factory-floor/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-what-it-actually-takes-to-benchmark-ai-agents-for-the-factory-floor/</guid><description>IBM Research&apos;s AssetOpsBench exposes a fundamental gap in how we evaluate AI agents for industrial settings, where multi-agent coordination, noisy sensor data, and failure analysis matter far more than pass/fail task completion.</description><pubDate>Thu, 12 Mar 2026 08:03:38 GMT</pubDate></item><item><title>What OpenEnv Reveals About Agent Reliability in Production Environments</title><link>https://nebelwolfi.xyz/blog/2026-03-12-what-openenv-reveals-about-agent-reliability-in-production-environments/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-what-openenv-reveals-about-agent-reliability-in-production-environments/</guid><description>OpenEnv, a framework from Meta and Hugging Face, evaluates AI agents against real systems instead of simulations. Its Calendar Gym benchmark surfaces where tool-using agents actually break down, and why argument construction matters more than tool selection.</description><pubDate>Thu, 12 Mar 2026 04:38:34 GMT</pubDate></item><item><title>What Rust&apos;s Unstable Specialization Reveals About Zig Comptime</title><link>https://nebelwolfi.xyz/blog/2026-03-12-what-rust-s-unstable-specialization-reveals-about-zig-comptime/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-what-rust-s-unstable-specialization-reveals-about-zig-comptime/</guid><description>Rust has spent over a decade failing to safely add type-specific behavior to its parametric generics system. Zig&apos;s comptime never made that promise, and comparing the two clarifies what parametricity actually protects.</description><pubDate>Thu, 12 Mar 2026 17:01:50 GMT</pubDate></item><item><title>What the Orca Paper Left Unsolved and How PagedAttention Finished the Job</title><link>https://nebelwolfi.xyz/blog/2026-03-12-what-the-orca-paper-left-unsolved-and-how-pagedattention-finished-the-job/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-what-the-orca-paper-left-unsolved-and-how-pagedattention-finished-the-job/</guid><description>Modern LLM serving requires two complementary innovations: iteration-level scheduling from the Orca paper and paged memory management from vLLM&apos;s PagedAttention; understanding both explains why today&apos;s frameworks like vLLM achieve 2-4x higher throughput than naive approaches.</description><pubDate>Thu, 12 Mar 2026 17:24:54 GMT</pubDate></item><item><title>When 8GB Is Enough: How DuckDB Handles Data Larger Than RAM</title><link>https://nebelwolfi.xyz/blog/2026-03-12-when-8gb-is-enough-how-duckdb-handles-data-larger-than-ram/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-when-8gb-is-enough-how-duckdb-handles-data-larger-than-ram/</guid><description>DuckDB&apos;s out-of-core execution model, Parquet&apos;s column pruning, and Apple Silicon&apos;s memory bandwidth combine to make serious analytical workloads viable on the cheapest MacBook. Here is what happens under the hood.</description><pubDate>Thu, 12 Mar 2026 16:29:26 GMT</pubDate></item><item><title>What Transformers v5 Gets Right About Tokenization Design</title><link>https://nebelwolfi.xyz/blog/2026-03-12-what-transformers-v5-gets-right-about-tokenization-design/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-what-transformers-v5-gets-right-about-tokenization-design/</guid><description>Hugging Face&apos;s Transformers v5 tokenization overhaul trades a decade of accumulated complexity for a cleaner, more modular pipeline. Here&apos;s what the design change actually means for library users.</description><pubDate>Thu, 12 Mar 2026 09:13:16 GMT</pubDate></item><item><title>When a Model Passes SWE-bench, That Doesn&apos;t Mean You Should Merge It</title><link>https://nebelwolfi.xyz/blog/2026-03-12-when-a-model-passes-swe-bench-that-doesn-t-mean-you-should-merge-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-when-a-model-passes-swe-bench-that-doesn-t-mean-you-should-merge-it/</guid><description>METR&apos;s analysis reveals that many SWE-bench-passing AI patches would be rejected in real code review, exposing a structural gap between test-passage metrics and code quality that affects how the entire field interprets AI coding benchmarks.</description><pubDate>Thu, 12 Mar 2026 16:35:29 GMT</pubDate></item><item><title>When Meilisearch Became a Hybrid Search Engine: The Embedder Model and What It Costs</title><link>https://nebelwolfi.xyz/blog/2026-03-12-when-meilisearch-became-a-hybrid-search-engine-the-embedder-model-and-what-it-co/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-when-meilisearch-became-a-hybrid-search-engine-the-embedder-model-and-what-it-co/</guid><description>Meilisearch v1.3 added hybrid search with built-in embedder support, letting the search engine generate vectors automatically at index time. Understanding how this differs from Elasticsearch&apos;s explicit vector model clarifies which approach fits your architecture.</description><pubDate>Thu, 12 Mar 2026 17:13:53 GMT</pubDate></item><item><title>When Prompt Engineering Gets a Type System</title><link>https://nebelwolfi.xyz/blog/2026-03-12-when-prompt-engineering-gets-a-type-system/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-when-prompt-engineering-gets-a-type-system/</guid><description>Andrey Breslav&apos;s CodeSpeak proposes replacing natural language LLM prompting with formal specifications. The concept has roots in formal methods theory and connects to a growing ecosystem of structured LLM interaction tools, each wrestling with the same core problem.</description><pubDate>Thu, 12 Mar 2026 21:11:45 GMT</pubDate></item><item><title>When the Code Works and the Data Is Wrong</title><link>https://nebelwolfi.xyz/blog/2026-03-12-when-the-code-works-and-the-data-is-wrong/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-when-the-code-works-and-the-data-is-wrong/</guid><description>AI tools can generate syntactically correct SQL and dbt models, but the semantic layer beneath data engineering — what revenue means in this schema, why a Kafka topic has a 7-day retention window, when silence is worse than failure — cannot be generated from code alone.</description><pubDate>Thu, 12 Mar 2026 16:58:25 GMT</pubDate></item><item><title>When the Screener Has No Face: The Hidden Mechanics of AI Job Interviews</title><link>https://nebelwolfi.xyz/blog/2026-03-12-when-the-screener-has-no-face-the-hidden-mechanics-of-ai-job-interviews/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-when-the-screener-has-no-face-the-hidden-mechanics-of-ai-job-interviews/</guid><description>AI-powered hiring tools like Paradox&apos;s Olivia and HireVue are now the first voice candidates hear in millions of job processes, but the technical choices underneath them raise serious questions about validity, bias, and accountability.</description><pubDate>Thu, 12 Mar 2026 16:36:58 GMT</pubDate></item><item><title>Where Community Evals&apos; Chain of Custody Ends</title><link>https://nebelwolfi.xyz/blog/2026-03-12-where-community-evals-chain-of-custody-ends/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-where-community-evals-chain-of-custody-ends/</guid><description>Hugging Face&apos;s Community Evals (February 2026) creates a version-controlled provenance chain between benchmark scores and their methodology, but the harder problems of selective configuration reporting and LLM-as-judge dependencies sit outside what provenance infrastructure alone can fix.</description><pubDate>Thu, 12 Mar 2026 04:59:27 GMT</pubDate></item><item><title>Why 100 Billion Parameters on a CPU Finally Makes Sense</title><link>https://nebelwolfi.xyz/blog/2026-03-12-why-100-billion-parameters-on-a-cpu-finally-makes-sense/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-why-100-billion-parameters-on-a-cpu-finally-makes-sense/</guid><description>Microsoft&apos;s BitNet b1.58 takes a fundamentally different approach to LLM quantization by training with ternary weights from scratch, enabling a 100B parameter model to run in under 15GB of RAM at practical speeds.</description><pubDate>Thu, 12 Mar 2026 02:59:02 GMT</pubDate></item><item><title>Why DuckDB on a Base MacBook Outperforms Your Spark Cluster for Single-Node Workloads</title><link>https://nebelwolfi.xyz/blog/2026-03-12-why-duckdb-on-a-base-macbook-outperforms-your-spark-cluster-for-single-node-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-why-duckdb-on-a-base-macbook-outperforms-your-spark-cluster-for-single-node-work/</guid><description>DuckDB&apos;s vectorized columnar engine, Apple Silicon&apos;s unified memory bandwidth, and modern NVMe throughput combine to make distributed systems unnecessary for most analytical workloads under a few hundred gigabytes.</description><pubDate>Thu, 12 Mar 2026 16:30:07 GMT</pubDate></item><item><title>Why the DeepSeek Architecture Matters More Than the DeepSeek Benchmarks</title><link>https://nebelwolfi.xyz/blog/2026-03-12-why-the-deepseek-architecture-matters-more-than-the-deepseek-benchmarks/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-why-the-deepseek-architecture-matters-more-than-the-deepseek-benchmarks/</guid><description>The headline was Nvidia&apos;s $589 billion market cap loss. The durable story was in the technical report: hardware scarcity forced architectural innovations that are now MIT-licensed infrastructure for the entire open-source AI ecosystem.</description><pubDate>Thu, 12 Mar 2026 05:05:58 GMT</pubDate></item><item><title>Why Zig&apos;s Generic Functions Don&apos;t Make Behavioral Promises</title><link>https://nebelwolfi.xyz/blog/2026-03-12-why-zig-s-generic-functions-don-t-make-behavioral-promises/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-why-zig-s-generic-functions-don-t-make-behavioral-promises/</guid><description>Zig&apos;s comptime lets functions inspect their type parameters at compile time, which breaks parametricity and removes the behavioral guarantees that type signatures carry in Haskell or Rust. The Rust specialization debate shows exactly why that trade-off is harder than it looks.</description><pubDate>Thu, 12 Mar 2026 16:40:00 GMT</pubDate></item><item><title>Zig Comptime Is Two-Stage Computation, and That Is Why Parametricity Does Not Apply</title><link>https://nebelwolfi.xyz/blog/2026-03-12-zig-comptime-is-two-stage-computation-and-that-is-why-parametricity-does-not-app/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-zig-comptime-is-two-stage-computation-and-that-is-why-parametricity-does-not-app/</guid><description>Zig&apos;s comptime feature is not a variant of generics but a two-stage computation model borrowed from partial evaluation research. Understanding that distinction explains why parametricity cannot hold and what you can build instead.</description><pubDate>Thu, 12 Mar 2026 16:51:59 GMT</pubDate></item><item><title>Zig&apos;s Comptime Generics Are a Reflection System in Disguise</title><link>https://nebelwolfi.xyz/blog/2026-03-12-zig-s-comptime-generics-are-a-reflection-system-in-disguise/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-zig-s-comptime-generics-are-a-reflection-system-in-disguise/</guid><description>Zig&apos;s comptime looks like parametric generics but behaves like a compile-time reflection system, which explains why it breaks parametricity, what you gain from it, and why that trade-off is deliberate.</description><pubDate>Thu, 12 Mar 2026 16:58:48 GMT</pubDate></item><item><title>Zig&apos;s Comptime and the Free Theorems It Breaks</title><link>https://nebelwolfi.xyz/blog/2026-03-12-zig-s-comptime-and-the-free-theorems-it-breaks/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-12-zig-s-comptime-and-the-free-theorems-it-breaks/</guid><description>Zig&apos;s comptime feature makes generic functions non-parametric, meaning their type signatures don&apos;t bound their behavior the way parametric polymorphism does. Here&apos;s what that tradeoff costs and why it&apos;s coherent for systems programming.</description><pubDate>Thu, 12 Mar 2026 16:34:22 GMT</pubDate></item><item><title>53% Faster, 61% Fewer Allocations: What the Liquid Speedup Teaches About Ruby at Scale</title><link>https://nebelwolfi.xyz/blog/2026-03-13-53-faster-61-fewer-allocations-what-the-liquid-speedup-teaches-about-ruby-at-sca/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-53-faster-61-fewer-allocations-what-the-liquid-speedup-teaches-about-ruby-at-sca/</guid><description>Shopify&apos;s Liquid template engine recently landed a significant performance improvement: 53% faster parse and render, 61% fewer allocations. The techniques behind it are a practical guide to where Ruby&apos;s runtime costs actually accumulate.</description><pubDate>Fri, 13 Mar 2026 06:20:43 GMT</pubDate></item><item><title>A $999 MacBook Running 50GB Analytics Queries: DuckDB Made the Infrastructure Argument Obsolete</title><link>https://nebelwolfi.xyz/blog/2026-03-13-a-999-macbook-running-50gb-analytics-queries-duckdb-made-the-infrastructure-argu/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-a-999-macbook-running-50gb-analytics-queries-duckdb-made-the-infrastructure-argu/</guid><description>DuckDB&apos;s vectorized engine, out-of-core spilling, and native Parquet support let a base-model MacBook Air handle data workloads that once required a Spark cluster. Here&apos;s why the architecture works, and what it means for the history of &apos;big data.&apos;</description><pubDate>Fri, 13 Mar 2026 20:00:40 GMT</pubDate></item><item><title>A Language Designer Takes Aim at the Prompt Engineering Mess</title><link>https://nebelwolfi.xyz/blog/2026-03-13-a-language-designer-takes-aim-at-the-prompt-engineering-mess/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-a-language-designer-takes-aim-at-the-prompt-engineering-mess/</guid><description>Andrey Breslav, the principal designer of Kotlin, has built CodeSpeak: a formal specification language for talking to LLMs. It&apos;s an argument that the way we prompt AI today is fundamentally broken, and it deserves a serious hearing.</description><pubDate>Fri, 13 Mar 2026 17:11:21 GMT</pubDate></item><item><title>Agentic Engineering Has a Phase Transition, and Most Teams Hit It Unprepared</title><link>https://nebelwolfi.xyz/blog/2026-03-13-agentic-engineering-has-a-phase-transition-and-most-teams-hit-it-unprepared/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-agentic-engineering-has-a-phase-transition-and-most-teams-hit-it-unprepared/</guid><description>Why the jump from single-tool agents to multi-step planning is a structural change in how systems fail, and what production infrastructure Level 3 actually requires before it can be trusted.</description><pubDate>Fri, 13 Mar 2026 15:41:46 GMT</pubDate></item><item><title>Agents That Build Tools: What a DABStep Win Reveals About Data Analysis Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-13-agents-that-build-tools-what-a-dabstep-win-reveals-about-data-analysis-architect/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-agents-that-build-tools-what-a-dabstep-win-reveals-about-data-analysis-architect/</guid><description>NVIDIA&apos;s NeMo Agent Toolkit hit first place on the DABStep benchmark by generating reusable, registry-backed Python functions instead of ephemeral code blocks, a design pattern with real implications for how analytical agents accumulate and apply knowledge.</description><pubDate>Fri, 13 Mar 2026 21:21:06 GMT</pubDate></item><item><title>Agents Write Code. They Don&apos;t Maintain Codebases.</title><link>https://nebelwolfi.xyz/blog/2026-03-13-agents-write-code-they-don-t-maintain-codebases/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-agents-write-code-they-don-t-maintain-codebases/</guid><description>Erik Doernenburg&apos;s CCMenu experiment and GitClear&apos;s 150-million-line analysis converge on the same finding: coding agents increase velocity while quietly reducing maintenance activity, creating a compounding gap between code that works and codebases that stay healthy.</description><pubDate>Fri, 13 Mar 2026 11:17:12 GMT</pubDate></item><item><title>AI Tools Are Productive for Contributors and Expensive for Maintainers</title><link>https://nebelwolfi.xyz/blog/2026-03-13-ai-tools-are-productive-for-contributors-and-expensive-for-maintainers/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-ai-tools-are-productive-for-contributors-and-expensive-for-maintainers/</guid><description>A Carnegie Mellon study on AI&apos;s impact on open-source projects adds to a growing body of evidence that the costs and benefits of AI-assisted contributions fall on different people.</description><pubDate>Fri, 13 Mar 2026 12:41:46 GMT</pubDate></item><item><title>Amortized Reasoning: What NVIDIA&apos;s DABStep Win Reveals About When to Spend Compute</title><link>https://nebelwolfi.xyz/blog/2026-03-13-amortized-reasoning-what-nvidia-s-dabstep-win-reveals-about-when-to-spend-comput/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-amortized-reasoning-what-nvidia-s-dabstep-win-reveals-about-when-to-spend-comput/</guid><description>NVIDIA&apos;s NeMo Agent Toolkit hit #1 on the DABStep financial data benchmark by inverting the usual approach: instead of scaling inference compute, it builds a reusable code library before the benchmark even starts.</description><pubDate>Fri, 13 Mar 2026 21:16:46 GMT</pubDate></item><item><title>Anthropic&apos;s AI Usage Report: Why the Debugging Finding Matters More Than the 50% Productivity Headline</title><link>https://nebelwolfi.xyz/blog/2026-03-13-anthropic-s-ai-usage-report-why-the-debugging-finding-matters-more-than-the-50-p/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-anthropic-s-ai-usage-report-why-the-debugging-finding-matters-more-than-the-50-p/</guid><description>Anthropic&apos;s internal study found their developers use AI primarily for debugging and understanding existing code, not writing new code. That finding, more than the headline productivity numbers, reveals something important about where these tools actually provide value.</description><pubDate>Fri, 13 Mar 2026 12:36:44 GMT</pubDate></item><item><title>Architecture Fitness Functions Are the Missing Safeguard for AI-Assisted Codebases</title><link>https://nebelwolfi.xyz/blog/2026-03-13-architecture-fitness-functions-are-the-missing-safeguard-for-ai-assisted-codebas/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-architecture-fitness-functions-are-the-missing-safeguard-for-ai-assisted-codebas/</guid><description>Erik Doernenburg&apos;s CCMenu experiment confirms that AI coding agents degrade internal code quality in ways standard code review misses. The pattern predates LLMs, but the unpredictability of generated code demands a more targeted solution than earlier code generation tools required.</description><pubDate>Fri, 13 Mar 2026 11:06:21 GMT</pubDate></item><item><title>Cargo&apos;s New Build Dir Layout Finally Separates What You Built from How You Built It</title><link>https://nebelwolfi.xyz/blog/2026-03-13-cargo-s-new-build-dir-layout-finally-separates-what-you-built-from-how-you-built/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-cargo-s-new-build-dir-layout-finally-separates-what-you-built-from-how-you-built/</guid><description>Cargo&apos;s -Zbuild-dir-new-layout nightly flag restructures the target directory so that final outputs and intermediate build artifacts no longer share the same space, fixing years of fragile tool assumptions.</description><pubDate>Fri, 13 Mar 2026 19:47:26 GMT</pubDate></item><item><title>Asyncio Was Always Two Libraries Pretending to Be One</title><link>https://nebelwolfi.xyz/blog/2026-03-13-asyncio-was-always-two-libraries-pretending-to-be-one/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-asyncio-was-always-two-libraries-pretending-to-be-one/</guid><description>Python asyncio works, but its layered history of callbacks, futures, coroutines, and tasks reveals a design grown by accretion rather than intent. Trio shows what structured concurrency looks like when you start from first principles.</description><pubDate>Fri, 13 Mar 2026 19:41:58 GMT</pubDate></item><item><title>Building the Harness: Why AI-Assisted Code Quality Is an Infrastructure Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-13-building-the-harness-why-ai-assisted-code-quality-is-an-infrastructure-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-building-the-harness-why-ai-assisted-code-quality-is-an-infrastructure-problem/</guid><description>Harness engineering frames AI coding assistance as a team infrastructure concern rather than an individual workflow habit. Here is what that means in practice for context engineering, architectural constraints, and codebase hygiene.</description><pubDate>Fri, 13 Mar 2026 07:54:57 GMT</pubDate></item><item><title>Choosing the Right Training Method: What HuggingFace Skills Reveals About SFT, DPO, and GRPO</title><link>https://nebelwolfi.xyz/blog/2026-03-13-choosing-the-right-training-method-what-huggingface-skills-reveals-about-sft-dpo/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-choosing-the-right-training-method-what-huggingface-skills-reveals-about-sft-dpo/</guid><description>HuggingFace&apos;s Skills framework automatically selects between SFT, DPO, and GRPO based on dataset structure, making it a useful lens for understanding when each post-training method actually applies.</description><pubDate>Fri, 13 Mar 2026 02:14:19 GMT</pubDate></item><item><title>Chrome 146 DevTools: Shadow DOM Finally Gets Visible, and AI Gets Structured Data</title><link>https://nebelwolfi.xyz/blog/2026-03-13-chrome-146-devtools-shadow-dom-finally-gets-visible-and-ai-gets-structured-data/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-chrome-146-devtools-shadow-dom-finally-gets-visible-and-ai-gets-structured-data/</guid><description>Chrome 146 fixes a long-standing blind spot for Web Components developers with proper Adopted Stylesheets inspection, while introducing DevTools MCP with --slim mode as a structured-data alternative to screenshot-based browser automation for AI tools.</description><pubDate>Fri, 13 Mar 2026 15:35:09 GMT</pubDate></item><item><title>Chrome 146&apos;s DevTools MCP: The Difference Between Exposing Capabilities and Encoding Expertise</title><link>https://nebelwolfi.xyz/blog/2026-03-13-chrome-146-s-devtools-mcp-the-difference-between-exposing-capabilities-and-encod/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-chrome-146-s-devtools-mcp-the-difference-between-exposing-capabilities-and-encod/</guid><description>Chrome 146 ships DevTools MCP with named skills for LCP and accessibility analysis that return expert-shaped structured data rather than raw CDP output, a design distinction with real implications for how AI tool interfaces should be built.</description><pubDate>Fri, 13 Mar 2026 15:41:50 GMT</pubDate></item><item><title>Chrome 146 Ships the Platform-Level Answers to Problems Libraries Have Owned for Years</title><link>https://nebelwolfi.xyz/blog/2026-03-13-chrome-146-ships-the-platform-level-answers-to-problems-libraries-have-owned-for/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-chrome-146-ships-the-platform-level-answers-to-problems-libraries-have-owned-for/</guid><description>Chrome 146 brings a stable Sanitizer API and Scoped Custom Element Registries to the platform, two features that absorb functionality that developers have relied on third-party libraries to provide. Here is what that shift actually looks like in code.</description><pubDate>Fri, 13 Mar 2026 15:34:23 GMT</pubDate></item><item><title>Chrome 146: When the Browser Finally Catches Up to Its Own Libraries</title><link>https://nebelwolfi.xyz/blog/2026-03-13-chrome-146-when-the-browser-finally-catches-up-to-its-own-libraries/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-chrome-146-when-the-browser-finally-catches-up-to-its-own-libraries/</guid><description>Chrome 146 ships native HTML sanitization, scoped custom element registries, and scroll timeline extensions, three features that replace established user-space workarounds with first-class platform primitives.</description><pubDate>Fri, 13 Mar 2026 15:36:13 GMT</pubDate></item><item><title>Chunked Prefill and the Latency-Throughput Trade-off in LLM Serving</title><link>https://nebelwolfi.xyz/blog/2026-03-13-chunked-prefill-and-the-latency-throughput-trade-off-in-llm-serving/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-chunked-prefill-and-the-latency-throughput-trade-off-in-llm-serving/</guid><description>Continuous batching improves LLM inference throughput by scheduling at the iteration level, but mixing prefill and decode phases creates interference that degrades per-token latency; chunked prefill is the engineering response.</description><pubDate>Fri, 13 Mar 2026 02:35:11 GMT</pubDate></item><item><title>Claude Code Hooks: The Enforcement Layer That CLAUDE.md Can&apos;t Be</title><link>https://nebelwolfi.xyz/blog/2026-03-13-claude-code-hooks-the-enforcement-layer-that-claude-md-can-t-be/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-claude-code-hooks-the-enforcement-layer-that-claude-md-can-t-be/</guid><description>Claude Code&apos;s hooks system provides machine-enforced policy invariants that natural language instructions alone cannot guarantee, solving a structural limitation that becomes visible when agents run long autonomous tasks.</description><pubDate>Fri, 13 Mar 2026 11:00:07 GMT</pubDate></item><item><title>Context Engineering Has a Trust Problem: Prompt Injection and MCP-Connected Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-13-context-engineering-has-a-trust-problem-prompt-injection-and-mcp-connected-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-context-engineering-has-a-trust-problem-prompt-injection-and-mcp-connected-agent/</guid><description>As coding agents gain access to external systems via MCP, each new context source becomes a potential injection point. Here&apos;s how to think about trust boundaries, hook-based defenses, and minimal-permission configuration for agents that read from the outside world.</description><pubDate>Fri, 13 Mar 2026 11:01:57 GMT</pubDate></item><item><title>Context Engineering Over Context Accumulation: Lessons from Tavily&apos;s Deep Research Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-13-context-engineering-over-context-accumulation-lessons-from-tavily-s-deep-researc/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-context-engineering-over-context-accumulation-lessons-from-tavily-s-deep-researc/</guid><description>Tavily&apos;s Deep Research agent achieved state-of-the-art results on DeepResearch Bench while cutting token consumption by 66% versus Open Deep Research. The key was rethinking how context flows through a research loop, not adding more tools or model calls.</description><pubDate>Fri, 13 Mar 2026 03:43:24 GMT</pubDate></item><item><title>Context Engineering: The New Discipline Hiding Inside Your Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-13-context-engineering-the-new-discipline-hiding-inside-your-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-context-engineering-the-new-discipline-hiding-inside-your-coding-agent/</guid><description>Context engineering for coding agents has evolved from a simple system prompt into a layered discipline involving project memory files, tool-based retrieval, and dynamic context budgets. Here&apos;s what that means in practice.</description><pubDate>Fri, 13 Mar 2026 10:50:22 GMT</pubDate></item><item><title>Context Position Is Architecture: The Attention Problem Inside Your Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-13-context-position-is-architecture-the-attention-problem-inside-your-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-context-position-is-architecture-the-attention-problem-inside-your-coding-agent/</guid><description>Model attention degrades for information in the middle of long contexts, and every agentic session grows its context window. Here is what that means for how you design CLAUDE.md files and structure multi-step agent tasks.</description><pubDate>Fri, 13 Mar 2026 11:08:13 GMT</pubDate></item><item><title>Context Windows Are Budgets: The Architecture Behind Modern Coding Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-13-context-windows-are-budgets-the-architecture-behind-modern-coding-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-context-windows-are-budgets-the-architecture-behind-modern-coding-agents/</guid><description>Context engineering has replaced prompt engineering as the core discipline for coding agent development. This post examines the three distinct layers, static injection, semi-static indexing, and dynamic retrieval, and why every design decision in tools like Claude Code and Aider is really an allocation problem.</description><pubDate>Fri, 13 Mar 2026 11:02:54 GMT</pubDate></item><item><title>Delegating the Fine-Tuning Loop: What HuggingFace Skills Gets Right About Agent-Driven ML</title><link>https://nebelwolfi.xyz/blog/2026-03-13-delegating-the-fine-tuning-loop-what-huggingface-skills-gets-right-about-agent-d/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-delegating-the-fine-tuning-loop-what-huggingface-skills-gets-right-about-agent-d/</guid><description>HuggingFace&apos;s Skills repository turns complex ML training workflows into conversational instructions, letting agents like Codex and Claude Code handle everything from dataset validation to GGUF export.</description><pubDate>Fri, 13 Mar 2026 02:11:06 GMT</pubDate></item><item><title>Delegating the Fine-Tuning Loop: What HuggingFace Skills Reveals About Agent-Native ML</title><link>https://nebelwolfi.xyz/blog/2026-03-13-delegating-the-fine-tuning-loop-what-huggingface-skills-reveals-about-agent-nati/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-delegating-the-fine-tuning-loop-what-huggingface-skills-reveals-about-agent-nati/</guid><description>HuggingFace Skills wraps TRL&apos;s fine-tuning pipeline as MCP tools, letting Claude orchestrate the complete training lifecycle through natural language. The more interesting story is what the system&apos;s SKILL.md interface pattern reveals about designing agent-native tooling.</description><pubDate>Fri, 13 Mar 2026 02:20:35 GMT</pubDate></item><item><title>Encoding Architecture as Tests: What AI-Assisted Development Demands of Your Codebase</title><link>https://nebelwolfi.xyz/blog/2026-03-13-encoding-architecture-as-tests-what-ai-assisted-development-demands-of-your-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-encoding-architecture-as-tests-what-ai-assisted-development-demands-of-your-code/</guid><description>AI coding agents have no access to the architectural knowledge embedded in a codebase&apos;s structure. Architectural fitness functions — executable tests for structural properties — are the technical response, and they matter more now than they ever did.</description><pubDate>Fri, 13 Mar 2026 11:03:18 GMT</pubDate></item><item><title>Every Abstraction Is a What/How Translation. LLMs Changed the Nature of the Guarantee.</title><link>https://nebelwolfi.xyz/blog/2026-03-13-every-abstraction-is-a-what-how-translation-llms-changed-the-nature-of-the-guara/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-every-abstraction-is-a-what-how-translation-llms-changed-the-nature-of-the-guara/</guid><description>Martin Fowler&apos;s conversation with Unmesh Joshi and Rebecca Parsons on LLMs and the what/how loop connects to a pattern as old as computing itself: every abstraction layer hides a class of &apos;how&apos; decisions to free cognitive space. What LLMs change is that this translation is now probabilistic rather than deterministic.</description><pubDate>Fri, 13 Mar 2026 11:01:58 GMT</pubDate></item><item><title>Evaluating Agents Is a Different Problem at Every Level</title><link>https://nebelwolfi.xyz/blog/2026-03-13-evaluating-agents-is-a-different-problem-at-every-level/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-evaluating-agents-is-a-different-problem-at-every-level/</guid><description>A taxonomy of agentic engineering levels tells you what to build. What it doesn&apos;t address is how to verify that what you built is working correctly, and the testing strategies that hold at Level 2 fail in detectable ways starting at Level 3.</description><pubDate>Fri, 13 Mar 2026 15:46:36 GMT</pubDate></item><item><title>Facial Recognition Keeps Jailing Innocent People Because the Math Doesn&apos;t Work at Scale</title><link>https://nebelwolfi.xyz/blog/2026-03-13-facial-recognition-keeps-jailing-innocent-people-because-the-math-doesn-t-work-a/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-facial-recognition-keeps-jailing-innocent-people-because-the-math-doesn-t-work-a/</guid><description>An innocent grandmother spent months in a North Dakota jail after an AI facial recognition misidentification. This piece examines why these wrongful arrests keep happening: the probability math of 1:N database searches, NIST-documented demographic disparities of up to 34x higher false positive rates, and the persistent gap between policy language and investigative practice.</description><pubDate>Fri, 13 Mar 2026 17:08:32 GMT</pubDate></item><item><title>Fine-Tuning as a Conversation: Inside Hugging Face&apos;s LLM Trainer Skill</title><link>https://nebelwolfi.xyz/blog/2026-03-13-fine-tuning-as-a-conversation-inside-hugging-face-s-llm-trainer-skill/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-fine-tuning-as-a-conversation-inside-hugging-face-s-llm-trainer-skill/</guid><description>Hugging Face&apos;s hf-llm-trainer skill lets Claude Code orchestrate LLM fine-tuning jobs on cloud GPUs through plain-English prompts. Here&apos;s what the pipeline actually looks like and what the &quot;skills&quot; abstraction means for MLOps tooling.</description><pubDate>Fri, 13 Mar 2026 02:14:10 GMT</pubDate></item><item><title>Fine-Tuning as a Tool Call: How MCP Turns Claude Into an ML Workflow Orchestrator</title><link>https://nebelwolfi.xyz/blog/2026-03-13-fine-tuning-as-a-tool-call-how-mcp-turns-claude-into-an-ml-workflow-orchestrator/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-fine-tuning-as-a-tool-call-how-mcp-turns-claude-into-an-ml-workflow-orchestrator/</guid><description>HuggingFace&apos;s December 2025 experiment in using Claude and MCP to orchestrate open source LLM fine-tuning reveals a useful architectural pattern: packaging domain expertise as agent-ready skill bundles rather than fine-tuned model weights.</description><pubDate>Fri, 13 Mar 2026 02:25:45 GMT</pubDate></item><item><title>Fine-Tuning as a Tool Call: What HuggingFace Skills Gets Right About Agent-Driven ML</title><link>https://nebelwolfi.xyz/blog/2026-03-13-fine-tuning-as-a-tool-call-what-huggingface-skills-gets-right-about-agent-driven/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-fine-tuning-as-a-tool-call-what-huggingface-skills-gets-right-about-agent-driven/</guid><description>HuggingFace Skills lets Claude orchestrate a complete LLM fine-tuning pipeline through natural language. This post digs into the architecture, the SKILL.md interface pattern, and what it reveals about building tools for coding agents.</description><pubDate>Fri, 13 Mar 2026 02:17:25 GMT</pubDate></item><item><title>Formalizing the LLM Interface: What Andrey Breslav Sees That Prompt Engineers Miss</title><link>https://nebelwolfi.xyz/blog/2026-03-13-formalizing-the-llm-interface-what-andrey-breslav-sees-that-prompt-engineers-mis/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-formalizing-the-llm-interface-what-andrey-breslav-sees-that-prompt-engineers-mis/</guid><description>Kotlin&apos;s lead designer is building Codespeak, a language for communicating with LLMs through formal specifications rather than English. Here&apos;s why that distinction matters more than it sounds.</description><pubDate>Fri, 13 Mar 2026 17:11:06 GMT</pubDate></item><item><title>Freedom Is an Architecture: What GNU Emacs Gets Right That Your IDE Doesn&apos;t</title><link>https://nebelwolfi.xyz/blog/2026-03-13-freedom-is-an-architecture-what-gnu-emacs-gets-right-that-your-ide-doesn-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-freedom-is-an-architecture-what-gnu-emacs-gets-right-that-your-ide-doesn-t/</guid><description>&quot;Computing in freedom&quot; sounds like a philosophical position, but in GNU Emacs it is a direct consequence of a specific technical design. The entire editor is a running Lisp machine you can inspect and modify at any time, and that changes what freedom actually means in practice.</description><pubDate>Fri, 13 Mar 2026 15:15:32 GMT</pubDate></item><item><title>From 15% to 90%: The Architecture Behind NVIDIA&apos;s DABStep Victory</title><link>https://nebelwolfi.xyz/blog/2026-03-13-from-15-to-90-the-architecture-behind-nvidia-s-dabstep-victory/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-from-15-to-90-the-architecture-behind-nvidia-s-dabstep-victory/</guid><description>NVIDIA&apos;s NeMo Data Explorer hit #1 on the DABStep data analysis benchmark by distilling domain expertise into reusable Python tool libraries, letting a small fast model outperform expensive frontier models on hard analytical tasks.</description><pubDate>Fri, 13 Mar 2026 21:22:23 GMT</pubDate></item><item><title>From Clobber Lists to Storytelling: How Rust Gave Inline Assembly a Safety Model</title><link>https://nebelwolfi.xyz/blog/2026-03-13-from-clobber-lists-to-storytelling-how-rust-gave-inline-assembly-a-safety-model/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-from-clobber-lists-to-storytelling-how-rust-gave-inline-assembly-a-safety-model/</guid><description>Rust&apos;s asm! macro takes a fundamentally different approach to inline assembly than C&apos;s clobber-list model, and Ralf Jung&apos;s storytelling framework explains why that difference matters for correctness.</description><pubDate>Fri, 13 Mar 2026 15:18:58 GMT</pubDate></item><item><title>From Padding to PagedAttention: The Research Arc Behind Continuous Batching</title><link>https://nebelwolfi.xyz/blog/2026-03-13-from-padding-to-pagedattention-the-research-arc-behind-continuous-batching/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-from-padding-to-pagedattention-the-research-arc-behind-continuous-batching/</guid><description>The HuggingFace first-principles walkthrough on continuous batching explains the mechanism clearly. This post traces the research history behind it, showing how each solved problem revealed the next bottleneck in LLM serving.</description><pubDate>Fri, 13 Mar 2026 02:15:42 GMT</pubDate></item><item><title>From Prompt to Published Model: Codex as an End-to-End ML Engineer</title><link>https://nebelwolfi.xyz/blog/2026-03-13-from-prompt-to-published-model-codex-as-an-end-to-end-ml-engineer/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-from-prompt-to-published-model-codex-as-an-end-to-end-ml-engineer/</guid><description>A retrospective on HuggingFace&apos;s December 2025 Skills integration with OpenAI&apos;s Codex, examining how the MCP-powered pipeline handles the full fine-tuning workflow and what it means for developers who want to train specialized open source models without becoming TRL experts.</description><pubDate>Fri, 13 Mar 2026 02:10:51 GMT</pubDate></item><item><title>From Static Instructions to Live System State: MCP as a Context Layer</title><link>https://nebelwolfi.xyz/blog/2026-03-13-from-static-instructions-to-live-system-state-mcp-as-a-context-layer/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-from-static-instructions-to-live-system-state-mcp-as-a-context-layer/</guid><description>The Model Context Protocol enables coding agents to pull live data from external systems through the same tool-call mechanism they use to read files; understanding how to design these integrations changes what context engineering means in practice.</description><pubDate>Fri, 13 Mar 2026 11:11:15 GMT</pubDate></item><item><title>From Ubiquitous Language to Executable Specifications: What LLMs Reveal About Domain Precision</title><link>https://nebelwolfi.xyz/blog/2026-03-13-from-ubiquitous-language-to-executable-specifications-what-llms-reveal-about-dom/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-from-ubiquitous-language-to-executable-specifications-what-llms-reveal-about-dom/</guid><description>Martin Fowler&apos;s January 2026 conversation with Rebecca Parsons and Unmesh Joshi draws on Parsons&apos;s formal semantics background to illuminate a specific problem: natural language prompts carry denotational intent but no operational binding, and LLMs trained on domain language honor vocabulary without honoring contracts.</description><pubDate>Fri, 13 Mar 2026 11:12:43 GMT</pubDate></item><item><title>Harness Engineering: Why the Leverage Is in the Infrastructure, Not the Model</title><link>https://nebelwolfi.xyz/blog/2026-03-13-harness-engineering-why-the-leverage-is-in-the-infrastructure-not-the-model/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-harness-engineering-why-the-leverage-is-in-the-infrastructure-not-the-model/</guid><description>OpenAI&apos;s framing of harness engineering gives AI-enabled software development a vocabulary it&apos;s been missing, covering context engineering, architectural constraints, and codebase garbage collection as three disciplines software engineers already understand.</description><pubDate>Fri, 13 Mar 2026 07:53:15 GMT</pubDate></item><item><title>How a Flawed Algorithm Becomes Probable Cause</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-a-flawed-algorithm-becomes-probable-cause/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-a-flawed-algorithm-becomes-probable-cause/</guid><description>A North Dakota grandmother spent months in jail after AI facial recognition misidentified her as a fraud suspect. This is at least the seventh documented case of its kind in the US, and the pattern behind each one is the same.</description><pubDate>Fri, 13 Mar 2026 17:09:24 GMT</pubDate></item><item><title>How Liquid Got 53% Faster: Allocation Reduction in a Sandboxed Ruby Template Engine</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-liquid-got-53-faster-allocation-reduction-in-a-sandboxed-ruby-template-engin/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-liquid-got-53-faster-allocation-reduction-in-a-sandboxed-ruby-template-engin/</guid><description>Shopify&apos;s Liquid template engine recently landed a 53% parse+render speedup with 61% fewer object allocations. The numbers reveal why Ruby performance work often starts with the garbage collector, not the CPU.</description><pubDate>Fri, 13 Mar 2026 06:18:32 GMT</pubDate></item><item><title>How Cargo&apos;s Build Directory Became a Mess, and What Layout v2 Does to Fix It</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-cargo-s-build-directory-became-a-mess-and-what-layout-v2-does-to-fix-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-cargo-s-build-directory-became-a-mess-and-what-layout-v2-does-to-fix-it/</guid><description>Cargo&apos;s target/ directory has been a mix of final artifacts and intermediate build state since its earliest days. The new build-dir-new-layout flag on nightly finally separates the two, and the Rust team needs your help finding what the crater run missed.</description><pubDate>Fri, 13 Mar 2026 19:47:54 GMT</pubDate></item><item><title>How LLMs Make the Case for Property-Based Testing That Formal Methods Never Could</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-llms-make-the-case-for-property-based-testing-that-formal-methods-never-coul/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-llms-make-the-case-for-property-based-testing-that-formal-methods-never-coul/</guid><description>Rebecca Parsons&apos;s denotational semantics background in the Fowler/Joshi/Parsons conversation points at a sixty-year-old problem: making &apos;what&apos; specifications machine-verifiable. LLMs change the cost structure in ways that finally favor the pragmatic tools that came from that tradition.</description><pubDate>Fri, 13 Mar 2026 11:18:25 GMT</pubDate></item><item><title>How the Local AI Inference Ecosystem Matured: GGUF, Ollama, and Hardware Trade-offs</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-the-local-ai-inference-ecosystem-matured-gguf-ollama-and-hardware-trade-offs/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-the-local-ai-inference-ecosystem-matured-gguf-ollama-and-hardware-trade-offs/</guid><description>The emergence of a hardware compatibility checker for local AI models signals how far the ecosystem has come. Here is what the tooling stack, quantization formats, and hardware trade-offs look like heading into 2026.</description><pubDate>Fri, 13 Mar 2026 19:47:13 GMT</pubDate></item><item><title>How Transformers v5 Solved a 400-Architecture Maintenance Crisis</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-transformers-v5-solved-a-400-architecture-maintenance-crisis/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-transformers-v5-solved-a-400-architecture-maintenance-crisis/</guid><description>A deep-dive into how Transformers v5 rewired its contributor model, replacing copy-paste boilerplate with a static code generation pipeline, and what the new AttentionInterface and built-in server reveal about the library&apos;s trajectory.</description><pubDate>Fri, 13 Mar 2026 02:22:37 GMT</pubDate></item><item><title>How to Systematically Assess Internal Code Quality After Using a Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-to-systematically-assess-internal-code-quality-after-using-a-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-to-systematically-assess-internal-code-quality-after-using-a-coding-agent/</guid><description>Erik Doernenburg&apos;s CCMenu experiment asks a question most developers skip: not whether agent-written code works, but whether it&apos;s well-structured. This post walks through the specific measurement techniques that make that assessment possible.</description><pubDate>Fri, 13 Mar 2026 11:05:15 GMT</pubDate></item><item><title>How Transformers v5 Solved Its Biggest Maintenance Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-transformers-v5-solved-its-biggest-maintenance-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-transformers-v5-solved-its-biggest-maintenance-problem/</guid><description>HuggingFace Transformers v5 introduces a modular authoring system that generates flat, readable model implementations from inheritance-based definitions, addressing years of copy-paste debt across 100+ model architectures.</description><pubDate>Fri, 13 Mar 2026 02:13:22 GMT</pubDate></item><item><title>How Zig Rewrote Its Own Compiler While Keeping the Lights On</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-zig-rewrote-its-own-compiler-while-keeping-the-lights-on/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-zig-rewrote-its-own-compiler-while-keeping-the-lights-on/</guid><description>Zig&apos;s transition from a C++ compiler to a self-hosted implementation is a case study in architectural honesty, incremental compilation, and bootstrapping under real constraints.</description><pubDate>Fri, 13 Mar 2026 06:40:11 GMT</pubDate></item><item><title>How Transformers v5 Untangled Five Years of Attention Class Sprawl</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-transformers-v5-untangled-five-years-of-attention-class-sprawl/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-transformers-v5-untangled-five-years-of-attention-class-sprawl/</guid><description>HuggingFace Transformers v5 ships a new AttentionInterface that replaces per-model attention subclasses with a single dispatch registry, cutting hundreds of duplicate classes across 400+ architectures. Here&apos;s what changed and why it matters.</description><pubDate>Fri, 13 Mar 2026 02:25:05 GMT</pubDate></item><item><title>How Zig&apos;s Bootstrap Strategy Solves a Problem Other Languages Ignored</title><link>https://nebelwolfi.xyz/blog/2026-03-13-how-zig-s-bootstrap-strategy-solves-a-problem-other-languages-ignored/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-how-zig-s-bootstrap-strategy-solves-a-problem-other-languages-ignored/</guid><description>When Zig retired its C++ compiler in late 2022, the real story wasn&apos;t the self-hosting milestone itself but the WASM-based bootstrap chain that made it possible. A retrospective look at what the transition actually changed.</description><pubDate>Fri, 13 Mar 2026 06:40:12 GMT</pubDate></item><item><title>LLM Inference as a Queueing Problem: The Theory Behind Continuous Batching</title><link>https://nebelwolfi.xyz/blog/2026-03-13-llm-inference-as-a-queueing-problem-the-theory-behind-continuous-batching/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-llm-inference-as-a-queueing-problem-the-theory-behind-continuous-batching/</guid><description>Continuous batching fixed LLM throughput by eliminating head-of-line blocking, a well-known queueing problem. Understanding Little&apos;s Law and utilization cliffs explains both why it works and where its limits are.</description><pubDate>Fri, 13 Mar 2026 02:29:19 GMT</pubDate></item><item><title>LLM Inference Scheduling Is Just OS Memory Management Again</title><link>https://nebelwolfi.xyz/blog/2026-03-13-llm-inference-scheduling-is-just-os-memory-management-again/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-llm-inference-scheduling-is-just-os-memory-management-again/</guid><description>Continuous batching solved LLM throughput by borrowing ideas from operating systems. A look at how the field went from naive batching to PagedAttention, and why the analogy runs deeper than it first appears.</description><pubDate>Fri, 13 Mar 2026 02:17:40 GMT</pubDate></item><item><title>LLMs and the Abstraction Loop That Has Been Running Since Assembly</title><link>https://nebelwolfi.xyz/blog/2026-03-13-llms-and-the-abstraction-loop-that-has-been-running-since-assembly/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-llms-and-the-abstraction-loop-that-has-been-running-since-assembly/</guid><description>Martin Fowler&apos;s conversation with Unmesh Joshi and Rebecca Parsons frames LLMs through the lens of what/how abstraction, a tension as old as programming itself. This post traces that tension through software history and examines what changes when the &apos;how&apos; can be generated on demand.</description><pubDate>Fri, 13 Mar 2026 11:07:24 GMT</pubDate></item><item><title>LLMs Changed Where the What/How Loop Breaks, Not Whether It Does</title><link>https://nebelwolfi.xyz/blog/2026-03-13-llms-changed-where-the-what-how-loop-breaks-not-whether-it-does/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-llms-changed-where-the-what-how-loop-breaks-not-whether-it-does/</guid><description>The what/how loop at the center of Fowler, Parsons, and Joshi&apos;s January 2026 conversation is not a new problem introduced by AI. It is the foundational abstraction challenge of software engineering, and understanding its fifty-year history clarifies both where LLMs give real leverage and where they fail.</description><pubDate>Fri, 13 Mar 2026 11:04:41 GMT</pubDate></item><item><title>One Million Tokens: What Changes When the Context Window Reaches This Scale</title><link>https://nebelwolfi.xyz/blog/2026-03-13-one-million-tokens-what-changes-when-the-context-window-reaches-this-scale/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-one-million-tokens-what-changes-when-the-context-window-reaches-this-scale/</guid><description>Anthropic&apos;s 1 million token context is now generally available for claude-opus-4-6 and claude-sonnet-4-6, crossing thresholds that enable qualitatively different use cases beyond what 200k allowed.</description><pubDate>Fri, 13 Mar 2026 19:40:15 GMT</pubDate></item><item><title>Prompt Injection as a Data Pipe: Understanding URL-Based Exfiltration in LLMs</title><link>https://nebelwolfi.xyz/blog/2026-03-13-prompt-injection-as-a-data-pipe-understanding-url-based-exfiltration-in-llms/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-prompt-injection-as-a-data-pipe-understanding-url-based-exfiltration-in-llms/</guid><description>URL-based exfiltration turns an LLM&apos;s instruction-following against its users, using indirect prompt injection to encode sensitive data into outbound HTTP requests. Here is how the attack works and what Google&apos;s Gemini mitigations reveal about defending against it.</description><pubDate>Fri, 13 Mar 2026 06:23:15 GMT</pubDate></item><item><title>Reading Before Writing: What Anthropic&apos;s Internal Claude Data Reveals</title><link>https://nebelwolfi.xyz/blog/2026-03-13-reading-before-writing-what-anthropic-s-internal-claude-data-reveals/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-reading-before-writing-what-anthropic-s-internal-claude-data-reveals/</guid><description>Anthropic&apos;s internal report on AI-assisted development shows debugging and code comprehension dominate over feature writing, offering a more grounded picture of where AI tools provide value than productivity numbers alone suggest.</description><pubDate>Fri, 13 Mar 2026 12:37:03 GMT</pubDate></item><item><title>Reproducible Builds Were Never Enough: What Malus Gets Right About Supply Chain Security</title><link>https://nebelwolfi.xyz/blog/2026-03-13-reproducible-builds-were-never-enough-what-malus-gets-right-about-supply-chain-s/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-reproducible-builds-were-never-enough-what-malus-gets-right-about-supply-chain-s/</guid><description>Malus offers hermetic build environments as a managed service, promising clean and attested artifacts without the overhead of self-hosting Nix or Bazel. The idea is sound, but the hard problems are in who you trust to run the clean room.</description><pubDate>Fri, 13 Mar 2026 17:14:36 GMT</pubDate></item><item><title>Roofline Models and Ragged Batches: The Hardware Logic Behind Continuous Batching</title><link>https://nebelwolfi.xyz/blog/2026-03-13-roofline-models-and-ragged-batches-the-hardware-logic-behind-continuous-batching/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-roofline-models-and-ragged-batches-the-hardware-logic-behind-continuous-batching/</guid><description>Continuous batching is usually explained as a scheduling improvement, but its real driver is GPU memory bandwidth. This post traces the hardware constraints that make high-batch-size decoding so valuable and shows why PagedAttention and chunked prefill follow directly from the same analysis.</description><pubDate>Fri, 13 Mar 2026 02:27:48 GMT</pubDate></item><item><title>Separating Learning from Inference: Inside NVIDIA&apos;s DABStep-Winning Agent Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-13-separating-learning-from-inference-inside-nvidia-s-dabstep-winning-agent-archite/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-separating-learning-from-inference-inside-nvidia-s-dabstep-winning-agent-archite/</guid><description>NVIDIA&apos;s NeMo Agent Toolkit topped the DABStep benchmark by running an offline domain-learning phase that builds a reusable Python helper library, letting a lightweight model solve complex financial analysis tasks 30x faster and 35% more accurately than full-context baselines.</description><pubDate>Fri, 13 Mar 2026 21:32:54 GMT</pubDate></item><item><title>SKILL.md as Agent Brain: What HuggingFace&apos;s Fine-Tuning Pipeline Gets Right</title><link>https://nebelwolfi.xyz/blog/2026-03-13-skill-md-as-agent-brain-what-huggingface-s-fine-tuning-pipeline-gets-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-skill-md-as-agent-brain-what-huggingface-s-fine-tuning-pipeline-gets-right/</guid><description>HuggingFace&apos;s Skills system, published December 2025, encodes ML training expertise as structured markdown documents that Claude Code reads via MCP, turning fine-tuning pipelines into conversational instructions without sacrificing technical depth.</description><pubDate>Fri, 13 Mar 2026 02:15:54 GMT</pubDate></item><item><title>Snowbird to Deer Valley: The Questions Software Development Still Hasn&apos;t Answered</title><link>https://nebelwolfi.xyz/blog/2026-03-13-snowbird-to-deer-valley-the-questions-software-development-still-hasn-t-answered/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-snowbird-to-deer-valley-the-questions-software-development-still-hasn-t-answered/</guid><description>Twenty-five years after the Agile Manifesto was written in Utah, Thoughtworks gathered practitioners in Utah again to ask what comes next. The symmetry is elegant, but the problems the industry faces now bear almost no resemblance to the ones Agile was built to solve.</description><pubDate>Fri, 13 Mar 2026 07:58:14 GMT</pubDate></item><item><title>Specs as a First-Class LLM Interface: What CodeSpeak Gets Right</title><link>https://nebelwolfi.xyz/blog/2026-03-13-specs-as-a-first-class-llm-interface-what-codespeak-gets-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-specs-as-a-first-class-llm-interface-what-codespeak-gets-right/</guid><description>Andrey Breslav, the designer of Kotlin, has built CodeSpeak, a language for talking to LLMs through formal specifications rather than natural language prompts. Here&apos;s why that distinction matters more than it might seem.</description><pubDate>Fri, 13 Mar 2026 17:09:31 GMT</pubDate></item><item><title>Stages of Agency: What Each Level of Agentic Engineering Demands in Practice</title><link>https://nebelwolfi.xyz/blog/2026-03-13-stages-of-agency-what-each-level-of-agentic-engineering-demands-in-practice/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-stages-of-agency-what-each-level-of-agentic-engineering-demands-in-practice/</guid><description>A technical look at how the engineering demands shift across each level of agentic AI systems, why the transition from tool use to multi-step planning is a phase change rather than an incremental step, and what infrastructure practitioners actually need to build at each stage.</description><pubDate>Fri, 13 Mar 2026 15:32:01 GMT</pubDate></item><item><title>SWE-bench Scores Are Rising, But the Code Isn&apos;t Always Merge-Ready</title><link>https://nebelwolfi.xyz/blog/2026-03-13-swe-bench-scores-are-rising-but-the-code-isn-t-always-merge-ready/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-swe-bench-scores-are-rising-but-the-code-isn-t-always-merge-ready/</guid><description>METR&apos;s review of SWE-bench-passing PRs found that a large fraction would be rejected by real maintainers. The gap between passing a test suite and writing acceptable code is exactly where software engineering judgment lives.</description><pubDate>Fri, 13 Mar 2026 19:58:14 GMT</pubDate></item><item><title>Teaching Frontier Models to Train Open Ones: Inside HuggingFace&apos;s Skills Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-13-teaching-frontier-models-to-train-open-ones-inside-huggingface-s-skills-architec/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-teaching-frontier-models-to-train-open-ones-inside-huggingface-s-skills-architec/</guid><description>HuggingFace&apos;s skills framework packages ML engineering expertise as agent-consumable tools, letting Claude orchestrate complete LLM fine-tuning pipelines from a single natural language prompt. A retrospective look at what the December 2025 release actually got right.</description><pubDate>Fri, 13 Mar 2026 02:19:59 GMT</pubDate></item><item><title>SWE-bench Scores Don&apos;t Tell You What You Think They Tell You</title><link>https://nebelwolfi.xyz/blog/2026-03-13-swe-bench-scores-don-t-tell-you-what-you-think-they-tell-you/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-swe-bench-scores-don-t-tell-you-what-you-think-they-tell-you/</guid><description>METR&apos;s review of SWE-bench-passing PRs found that many would be rejected in real code review. The gap reveals what automated benchmarks can and cannot measure about AI coding quality.</description><pubDate>Fri, 13 Mar 2026 19:57:31 GMT</pubDate></item><item><title>The Abstract Machine Meets the Black Box: How MiniRust Narrates Inline Assembly</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-abstract-machine-meets-the-black-box-how-minirust-narrates-inline-assembly/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-abstract-machine-meets-the-black-box-how-minirust-narrates-inline-assembly/</guid><description>Ralf Jung&apos;s MiniRust project defines Rust&apos;s semantics through operational storytelling, and inline assembly is the hardest chapter to write -- this post explores how asm! operand options map to formal abstract machine behavior and why getting that story wrong produces real undefined behavior.</description><pubDate>Fri, 13 Mar 2026 15:17:06 GMT</pubDate></item><item><title>Telling the Compiler a True Story: Inline Assembly in Rust&apos;s Abstract Machine</title><link>https://nebelwolfi.xyz/blog/2026-03-13-telling-the-compiler-a-true-story-inline-assembly-in-rust-s-abstract-machine/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-telling-the-compiler-a-true-story-inline-assembly-in-rust-s-abstract-machine/</guid><description>Ralf Jung&apos;s framing of inline assembly as storytelling offers a coherent way to reason about Rust&apos;s asm! options and operand declarations as semantic claims about the abstract machine, with direct implications for how undefined behavior arises in unsafe code.</description><pubDate>Fri, 13 Mar 2026 15:21:23 GMT</pubDate></item><item><title>The Abstraction Layer That Finally Swallows the Role</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-abstraction-layer-that-finally-swallows-the-role/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-abstraction-layer-that-finally-swallows-the-role/</guid><description>Simon Willison&apos;s &apos;Coding After Coders&apos; frames a question worth taking seriously: when LLMs can write most production code, what exactly is a programmer? The answer requires looking at every prior abstraction shift that reshaped the job.</description><pubDate>Fri, 13 Mar 2026 16:00:38 GMT</pubDate></item><item><title>The Amplification Problem: Harness Engineering in an Agent-First World</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-amplification-problem-harness-engineering-in-an-agent-first-world/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-amplification-problem-harness-engineering-in-an-agent-first-world/</guid><description>When AI coding tools shift from suggestion to agentic execution, the cost of pattern ambiguity changes fundamentally. An incomplete migration or stale context file is no longer a fixed liability; it is a recurring cost charged every time an agent works in that area.</description><pubDate>Fri, 13 Mar 2026 08:01:02 GMT</pubDate></item><item><title>The Annotation That Held Transformers Together for Five Years</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-annotation-that-held-transformers-together-for-five-years/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-annotation-that-held-transformers-together-for-five-years/</guid><description>HuggingFace Transformers v5 replaces five years of copy-paste model definitions with a modular inheritance system. Here&apos;s what the technical mechanics look like and why the design took so long to get right.</description><pubDate>Fri, 13 Mar 2026 02:25:13 GMT</pubDate></item><item><title>The Architecture Spectrum That Determines How Designable Terminal UIs Are</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-architecture-spectrum-that-determines-how-designable-terminal-uis-are/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-architecture-spectrum-that-determines-how-designable-terminal-uis-are/</guid><description>TUI frameworks range from raw cursor APIs to CSS flexbox engines, and where a framework sits on that spectrum determines whether visual tooling like TUI Studio can generate useful, maintainable code for it.</description><pubDate>Fri, 13 Mar 2026 19:52:01 GMT</pubDate></item><item><title>The Attack Surface Shifts at Every Level of Agent Autonomy</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-attack-surface-shifts-at-every-level-of-agent-autonomy/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-attack-surface-shifts-at-every-level-of-agent-autonomy/</guid><description>As agentic systems move from stateless LLM calls through tool use, multi-step planning, persistent memory, and multi-agent coordination, the security threat model changes at each transition. This is a map of those changes, with concrete mitigations at every level.</description><pubDate>Fri, 13 Mar 2026 15:57:10 GMT</pubDate></item><item><title>The Bottleneck Doesn&apos;t Disappear When AI Writes the Code</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-bottleneck-doesn-t-disappear-when-ai-writes-the-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-bottleneck-doesn-t-disappear-when-ai-writes-the-code/</guid><description>Every decade produces a credible prediction that programming is about to be automated away. The AI coding wave is more capable than anything that came before it, but the structural history of why earlier predictions partially failed reveals what is actually changing this time.</description><pubDate>Fri, 13 Mar 2026 02:02:21 GMT</pubDate></item><item><title>The C++ Compiler Zig Left Behind, and the WASM File That Replaced It</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-c-compiler-zig-left-behind-and-the-wasm-file-that-replaced-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-c-compiler-zig-left-behind-and-the-wasm-file-that-replaced-it/</guid><description>In December 2022, Zig retired its C++ compiler and became self-hosted. The bootstrap mechanism at the core of that transition is more technically interesting than the headline suggests.</description><pubDate>Fri, 13 Mar 2026 06:44:07 GMT</pubDate></item><item><title>The Code That Passes Tests but Rots in Place: AI Agents and Internal Quality</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-code-that-passes-tests-but-rots-in-place-ai-agents-and-internal-quality/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-code-that-passes-tests-but-rots-in-place-ai-agents-and-internal-quality/</guid><description>Using CCMenu as a real-world test case, this post examines how coding agents affect internal code quality, why the degradation is largely invisible to standard tooling, and what disciplined teams need to do about it.</description><pubDate>Fri, 13 Mar 2026 10:53:25 GMT</pubDate></item><item><title>The Codebase is Now Part of the Prompt</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-codebase-is-now-part-of-the-prompt/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-codebase-is-now-part-of-the-prompt/</guid><description>Harness engineering names something developers using AI coding tools have been doing intuitively but inconsistently: deliberately shaping the codebase, context, and constraints so the AI produces useful output.</description><pubDate>Fri, 13 Mar 2026 07:54:51 GMT</pubDate></item><item><title>The Context Budget Problem: How Coding Agents Decide What to See</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-context-budget-problem-how-coding-agents-decide-what-to-see/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-context-budget-problem-how-coding-agents-decide-what-to-see/</guid><description>Modern coding agents like Claude Code have unlocked a new layer of control over what information the model sees at any given moment. Here&apos;s what the full context engineering stack actually looks like.</description><pubDate>Fri, 13 Mar 2026 10:53:09 GMT</pubDate></item><item><title>The Contracts Hidden in Rust&apos;s asm! Options</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-contracts-hidden-in-rust-s-asm-options/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-contracts-hidden-in-rust-s-asm-options/</guid><description>Ralf Jung&apos;s storytelling model for unsafe Rust gives inline assembly a coherent safety framework by treating the asm! macro&apos;s options as explicit, verifiable contracts between programmer and compiler.</description><pubDate>Fri, 13 Mar 2026 15:15:51 GMT</pubDate></item><item><title>The Correctness Trap: What Coding Agents Do to Your Internal Code Quality</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-correctness-trap-what-coding-agents-do-to-your-internal-code-quality/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-correctness-trap-what-coding-agents-do-to-your-internal-code-quality/</guid><description>AI coding agents reliably ship working features, but a close look at a real codebase reveals a pattern: external quality holds while internal quality quietly degrades. Here is why that happens and what it costs you.</description><pubDate>Fri, 13 Mar 2026 11:04:48 GMT</pubDate></item><item><title>The Documentation Debt That Coding Agents Are Calling In</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-documentation-debt-that-coding-agents-are-calling-in/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-documentation-debt-that-coding-agents-are-calling-in/</guid><description>Martin Fowler&apos;s February 2026 taxonomy of context engineering options for coding agents documents an explosion of new tooling. The more consequential story is how configuring that tooling forces teams to surface architectural knowledge that was never formally written down.</description><pubDate>Fri, 13 Mar 2026 11:05:41 GMT</pubDate></item><item><title>The Editing Model That Predated Multi-Cursor by Three Decades</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-editing-model-that-predated-multi-cursor-by-three-decades/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-editing-model-that-predated-multi-cursor-by-three-decades/</guid><description>Plan 9&apos;s Sam and Acme introduced structural regular expressions and selection-first editing in 1987, a model that modern editors like Kakoune and Helix are still working to recover. Here&apos;s what made it different and why it keeps resurfacing.</description><pubDate>Fri, 13 Mar 2026 06:20:48 GMT</pubDate></item><item><title>The Enforcement Layer: Why Declarative Context Instructions Fall Short</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-enforcement-layer-why-declarative-context-instructions-fall-short/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-enforcement-layer-why-declarative-context-instructions-fall-short/</guid><description>CLAUDE.md and its equivalents encode project conventions that coding agents read on session start, but natural language instructions have structural failure modes. Hooks and tool restrictions are the programmatic enforcement layer that makes context engineering reliable.</description><pubDate>Fri, 13 Mar 2026 11:00:20 GMT</pubDate></item><item><title>The Failure Mode Intuitions That LLMs Cannot Hand You</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-failure-mode-intuitions-that-llms-cannot-hand-you/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-failure-mode-intuitions-that-llms-cannot-hand-you/</guid><description>Unmesh Joshi&apos;s November 2025 article argues that LLMs shortcut the learning loop. Here is the specific category of technical knowledge that gets bypassed: the failure mode intuitions that only form through debugging systems that break under load.</description><pubDate>Fri, 13 Mar 2026 12:49:10 GMT</pubDate></item><item><title>The Filesystem as Plugin API: What Plan 9&apos;s Acme Gets Right About Extensibility</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-filesystem-as-plugin-api-what-plan-9-s-acme-gets-right-about-extensibility/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-filesystem-as-plugin-api-what-plan-9-s-acme-gets-right-about-extensibility/</guid><description>Plan 9&apos;s Acme editor exposes every window as a filesystem object and every piece of text as executable, building an extensibility model that requires no plugin API, no embedded scripting language, and no editor-specific knowledge.</description><pubDate>Fri, 13 Mar 2026 06:20:45 GMT</pubDate></item><item><title>The Gap Between Benchmark and Production: Claude&apos;s 1M Context Goes GA</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-gap-between-benchmark-and-production-claude-s-1m-context-goes-ga/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-gap-between-benchmark-and-production-claude-s-1m-context-goes-ga/</guid><description>Anthropic has made one million token context windows generally available for Claude Opus 4.6 and Sonnet 4.6. The GA milestone matters less for what it enables technically and more for what it changes operationally: SLAs, stable pricing, and production-ready serving for long-context workloads.</description><pubDate>Fri, 13 Mar 2026 19:43:54 GMT</pubDate></item><item><title>The Hardware Math Behind Running AI on Your Own Machine</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-hardware-math-behind-running-ai-on-your-own-machine/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-hardware-math-behind-running-ai-on-your-own-machine/</guid><description>Tools like canirun.ai make local AI hardware compatibility approachable, but the real story is in the numbers: VRAM budgets, quantization tradeoffs, and the KV cache overhead that most compatibility guides skip.</description><pubDate>Fri, 13 Mar 2026 19:40:42 GMT</pubDate></item><item><title>The Gap Between Passing SWE-bench and Writing Code That Gets Merged</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-gap-between-passing-swe-bench-and-writing-code-that-gets-merged/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-gap-between-passing-swe-bench-and-writing-code-that-gets-merged/</guid><description>METR found that many AI-generated patches which pass SWE-bench&apos;s test-based evaluation would not be accepted by real project maintainers, revealing a fundamental limitation in how AI coding benchmarks are designed and interpreted.</description><pubDate>Fri, 13 Mar 2026 19:57:00 GMT</pubDate></item><item><title>The Human Reviewer Is the Test That AI Benchmarks Keep Failing</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-human-reviewer-is-the-test-that-ai-benchmarks-keep-failing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-human-reviewer-is-the-test-that-ai-benchmarks-keep-failing/</guid><description>A METR study found that many AI solutions passing SWE-bench would not be accepted by real project maintainers, revealing a systematic gap between automated test evaluation and the broader judgment of human code review.</description><pubDate>Fri, 13 Mar 2026 20:04:38 GMT</pubDate></item><item><title>The Inline That Rewrites Your Code: Go&apos;s Source-Level Migration Engine</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-inline-that-rewrites-your-code-go-s-source-level-migration-engine/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-inline-that-rewrites-your-code-go-s-source-level-migration-engine/</guid><description>Go 1.26&apos;s //go:fix inline directive lets package authors mark deprecated functions as self-migrating, enabling automatic source-level transformation across entire codebases with a single command.</description><pubDate>Fri, 13 Mar 2026 15:51:25 GMT</pubDate></item><item><title>The Institutional Knowledge Your Coding Agent Can&apos;t Absorb</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-institutional-knowledge-your-coding-agent-can-t-absorb/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-institutional-knowledge-your-coding-agent-can-t-absorb/</guid><description>Coding agent context files like CLAUDE.md require externalizing tacit knowledge that human developers absorb through experience but models can only know if you write it down. Understanding what makes an entry high or low value reveals as much about teams as it does about AI tooling.</description><pubDate>Fri, 13 Mar 2026 11:05:26 GMT</pubDate></item><item><title>The Interface Definition Language Is Back, and This Time the Server Is a Language Model</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-interface-definition-language-is-back-and-this-time-the-server-is-a-language/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-interface-definition-language-is-back-and-this-time-the-server-is-a-language/</guid><description>Andrey Breslav&apos;s CodeSpeak fits into a 30-year tradition of interface spec languages for system boundaries that don&apos;t share your type system. That lineage helps explain both what it will likely get right and where the genuinely hard problems live.</description><pubDate>Fri, 13 Mar 2026 17:17:59 GMT</pubDate></item><item><title>The Internal Quality Problem That AI Coding Agents Don&apos;t Solve</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-internal-quality-problem-that-ai-coding-agents-don-t-solve/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-internal-quality-problem-that-ai-coding-agents-don-t-solve/</guid><description>Erik Doernenburg&apos;s CCMenu experiment offers a careful practitioner look at what coding agents do to internal code quality. Working code and well-structured code are not the same thing, and the gap shows up in ways that tests will not catch.</description><pubDate>Fri, 13 Mar 2026 10:57:32 GMT</pubDate></item><item><title>The Internal Quality Test That Coding Agent Benchmarks Don&apos;t Run</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-internal-quality-test-that-coding-agent-benchmarks-don-t-run/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-internal-quality-test-that-coding-agent-benchmarks-don-t-run/</guid><description>Erik Doernenburg&apos;s experiment adding a feature to CCMenu with a coding agent surfaces a question most AI coding evaluations skip: what actually happens to internal code quality after the agent is done?</description><pubDate>Fri, 13 Mar 2026 11:06:42 GMT</pubDate></item><item><title>The LoRA Adapter Trick Behind RapidFire AI&apos;s 20x Fine-tuning Claims</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-lora-adapter-trick-behind-rapidfire-ai-s-20x-fine-tuning-claims/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-lora-adapter-trick-behind-rapidfire-ai-s-20x-fine-tuning-claims/</guid><description>RapidFire AI speeds up TRL hyperparameter search by time-multiplexing multiple LoRA configs on a single GPU, exploiting the small size of adapters relative to base models. Here&apos;s what that means in practice.</description><pubDate>Fri, 13 Mar 2026 03:47:07 GMT</pubDate></item><item><title>The Math Behind Running LLMs on Your Own Hardware</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-math-behind-running-llms-on-your-own-hardware/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-math-behind-running-llms-on-your-own-hardware/</guid><description>A hardware compatibility checker like canirun.ai is a useful starting point, but the underlying memory arithmetic, quantization formats, and KV cache behavior are the real story behind why your GPU can or cannot run a given model.</description><pubDate>Fri, 13 Mar 2026 19:39:10 GMT</pubDate></item><item><title>The OS Ideas That Unlocked LLM Inference Throughput</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-os-ideas-that-unlocked-llm-inference-throughput/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-os-ideas-that-unlocked-llm-inference-throughput/</guid><description>Continuous batching transformed LLM serving by applying iteration-level scheduling to the token generation loop. This post traces the full evolution from Orca&apos;s 2022 scheduling insight through PagedAttention, chunked prefill, and prefill-decode disaggregation, showing how each step borrowed a concept from classical operating systems research.</description><pubDate>Fri, 13 Mar 2026 02:21:07 GMT</pubDate></item><item><title>The Primary Lever in Agentic Engineering Shifts at Every Level</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-primary-lever-in-agentic-engineering-shifts-at-every-level/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-primary-lever-in-agentic-engineering-shifts-at-every-level/</guid><description>Each level of agent autonomy changes which engineering skills actually determine reliability, from prompt quality at Level 1-2 to workflow architecture and context management at Level 3 and above. Understanding where your leverage sits at each stage is the prerequisite to diagnosing why a system fails.</description><pubDate>Fri, 13 Mar 2026 15:58:39 GMT</pubDate></item><item><title>The Quadratic Context Problem: What Tavily&apos;s Deep Research Actually Fixed</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-quadratic-context-problem-what-tavily-s-deep-research-actually-fixed/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-quadratic-context-problem-what-tavily-s-deep-research-actually-fixed/</guid><description>Tavily&apos;s deep research agent achieved state-of-the-art results not by using a better LLM, but by solving the quadratic token accumulation problem that causes research agents to overflow context windows. A technical look at distilled reflections and why the architecture matters.</description><pubDate>Fri, 13 Mar 2026 03:46:43 GMT</pubDate></item><item><title>The Quality Violations That Pass Every Gate: What the CCMenu Experiment Actually Shows</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-quality-violations-that-pass-every-gate-what-the-ccmenu-experiment-actually-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-quality-violations-that-pass-every-gate-what-the-ccmenu-experiment-actually-/</guid><description>Erik Doernenburg&apos;s CCMenu experiment, published in January 2026, found that AI coding agents systematically degrade internal code quality in ways that tests, linters, and code review all miss. The reason why reveals a structural problem most teams using agents haven&apos;t addressed.</description><pubDate>Fri, 13 Mar 2026 11:12:54 GMT</pubDate></item><item><title>The Rendering Channel Problem: How URL Injection Turns LLMs Into Data Pipes</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-rendering-channel-problem-how-url-injection-turns-llms-into-data-pipes/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-rendering-channel-problem-how-url-injection-turns-llms-into-data-pipes/</guid><description>Google&apos;s recent work mitigating URL-based exfiltration in Gemini highlights a structural vulnerability class that affects any AI assistant that processes external content and renders rich output. Here&apos;s how the attack works and why fixing it is harder than it looks.</description><pubDate>Fri, 13 Mar 2026 06:21:04 GMT</pubDate></item><item><title>The Reviewer Who Wasn&apos;t There From the Start</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-reviewer-who-wasn-t-there-from-the-start/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-reviewer-who-wasn-t-there-from-the-start/</guid><description>Erik Doernenburg&apos;s CCMenu experiment reveals how coding agents degrade internal code quality, but its findings rest on a hidden premise: the evaluator is the original author. For most teams, that isn&apos;t true, and that gap requires a different kind of solution.</description><pubDate>Fri, 13 Mar 2026 11:05:18 GMT</pubDate></item><item><title>The Specification Problem That LLMs Keep Exposing</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-specification-problem-that-llms-keep-exposing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-specification-problem-that-llms-keep-exposing/</guid><description>Martin Fowler&apos;s conversation with Unmesh Joshi and Rebecca Parsons frames the what/how loop as a cognitive load problem, but the underexplored angle is that the &apos;what&apos; was never the tractable part. LLMs are making visible the specification debt that was always embedded in the act of writing code.</description><pubDate>Fri, 13 Mar 2026 11:08:38 GMT</pubDate></item><item><title>The Story Your Assembly Has to Tell: Inline Asm and Rust&apos;s Memory Model</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-story-your-assembly-has-to-tell-inline-asm-and-rust-s-memory-model/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-story-your-assembly-has-to-tell-inline-asm-and-rust-s-memory-model/</guid><description>Rust&apos;s inline assembly API forces you to make explicit promises about memory, registers, and aliasing. Understanding why those promises exist reveals something fundamental about how Rust reasons about unsafe code.</description><pubDate>Fri, 13 Mar 2026 15:17:25 GMT</pubDate></item><item><title>The Straggler Problem: How Iteration-Level Scheduling Fixed LLM Serving</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-straggler-problem-how-iteration-level-scheduling-fixed-llm-serving/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-straggler-problem-how-iteration-level-scheduling-fixed-llm-serving/</guid><description>Continuous batching solved LLM serving throughput by evicting finished sequences at every decode step rather than waiting for the slowest one. This post traces the full technical chain from static batching through PagedAttention, chunked prefill, and disaggregated serving.</description><pubDate>Fri, 13 Mar 2026 02:17:46 GMT</pubDate></item><item><title>The Structural Specification Your Agent Isn&apos;t Getting</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-structural-specification-your-agent-isn-t-getting/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-structural-specification-your-agent-isn-t-getting/</guid><description>When you prompt a coding agent to add a feature, you write a functional specification. Erik Doernenburg&apos;s CCMenu experiment shows what happens to code structure when the structural half of that specification never gets written.</description><pubDate>Fri, 13 Mar 2026 11:16:09 GMT</pubDate></item><item><title>The Temporal What: Side Effects and Ordering in the Age of LLM-Generated Code</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-temporal-what-side-effects-and-ordering-in-the-age-of-llm-generated-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-temporal-what-side-effects-and-ordering-in-the-age-of-llm-generated-code/</guid><description>Martin Fowler&apos;s conversation with Unmesh Joshi and Rebecca Parsons on the what/how loop focuses on structural specification, but the temporal dimension of the &apos;what&apos;, ordering constraints, side effect sequencing, and failure behavior, is the part LLMs consistently miss and developers rarely write down.</description><pubDate>Fri, 13 Mar 2026 11:13:41 GMT</pubDate></item><item><title>The Three Lifetimes of Coding Agent Context</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-three-lifetimes-of-coding-agent-context/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-three-lifetimes-of-coding-agent-context/</guid><description>Context engineering for coding agents is commonly treated as a space problem. It is actually a time problem too: different context has different lifetimes, and designing for those lifetimes changes what you build and when.</description><pubDate>Fri, 13 Mar 2026 10:56:11 GMT</pubDate></item><item><title>The Two-Sided Design of Transformers v5: Code Generation for Contributors, Single Files for Everyone Else</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-two-sided-design-of-transformers-v5-code-generation-for-contributors-single-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-two-sided-design-of-transformers-v5-code-generation-for-contributors-single-/</guid><description>Transformers v5 introduces a linter-based modular contribution system that generates traditional single-file model definitions, solving the maintenance scaling problem of 400+ model architectures without breaking the legibility guarantee users depend on.</description><pubDate>Fri, 13 Mar 2026 02:22:51 GMT</pubDate></item><item><title>The Two-Phase Problem That Continuous Batching Had to Solve Twice</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-two-phase-problem-that-continuous-batching-had-to-solve-twice/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-two-phase-problem-that-continuous-batching-had-to-solve-twice/</guid><description>Continuous batching solved LLM serving throughput, but naive implementation causes latency spikes by mixing prefill and decode in ways that starve active sequences. Chunked prefill is why modern serving systems actually work.</description><pubDate>Fri, 13 Mar 2026 02:26:45 GMT</pubDate></item><item><title>The Unspecified API That Half the Rust Build Toolchain Depends On</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-unspecified-api-that-half-the-rust-build-toolchain-depends-on/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-unspecified-api-that-half-the-rust-build-toolchain-depends-on/</guid><description>Cargo&apos;s -Zbuild-dir-new-layout nightly flag is about more than cleaning up a directory. It exposes how much of the Rust tooling ecosystem grew by reading build internals that were never stable, and why fixing this now is a prerequisite for artifact dependencies.</description><pubDate>Fri, 13 Mar 2026 19:56:45 GMT</pubDate></item><item><title>The Unfixable Compiler: Why Zig&apos;s Stage1 Had to Go</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-unfixable-compiler-why-zig-s-stage1-had-to-go/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-unfixable-compiler-why-zig-s-stage1-had-to-go/</guid><description>Zig&apos;s 2022 removal of its C++ compiler went deeper than a typical self-hosting milestone. Stage1 had structural correctness bugs that could not be patched, and its replacement introduced a new architecture, a novel bootstrap strategy, and multi-backend compilation that changed how Zig development works.</description><pubDate>Fri, 13 Mar 2026 06:39:59 GMT</pubDate></item><item><title>The URL as an Exfiltration Channel: What Gemini&apos;s Mitigation Reveals About LLM Security Boundaries</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-url-as-an-exfiltration-channel-what-gemini-s-mitigation-reveals-about-llm-se/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-url-as-an-exfiltration-channel-what-gemini-s-mitigation-reveals-about-llm-se/</guid><description>Google&apos;s published mitigation of URL-based exfiltration in Gemini illustrates why defending against data leakage in AI assistants requires layered controls across model training, output classification, and rendering pipelines, not just safer prompts.</description><pubDate>Fri, 13 Mar 2026 06:24:21 GMT</pubDate></item><item><title>The Visual Layer That Terminal UI Development Was Missing</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-visual-layer-that-terminal-ui-development-was-missing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-visual-layer-that-terminal-ui-development-was-missing/</guid><description>TUI Studio brings a visual canvas to terminal UI layout design, a capability the ecosystem has lacked not from lack of interest but from genuine technical constraints. Here&apos;s why it took this long and what modern TUI frameworks had to get right first.</description><pubDate>Fri, 13 Mar 2026 19:43:54 GMT</pubDate></item><item><title>The What/How Loop Has Been Running Since Assembly, and LLMs Just Changed the Stakes</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-what-how-loop-has-been-running-since-assembly-and-llms-just-changed-the-stak/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-what-how-loop-has-been-running-since-assembly-and-llms-just-changed-the-stak/</guid><description>A look at how LLMs fit into a seventy-year pattern of automating the &apos;how&apos; in software development, why the bottleneck reliably shifts upward each time, and what that means for the precision required of specifications today.</description><pubDate>Fri, 13 Mar 2026 11:18:57 GMT</pubDate></item><item><title>The What Has to Be As Precise As the How Used to Be</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-what-has-to-be-as-precise-as-the-how-used-to-be/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-what-has-to-be-as-precise-as-the-how-used-to-be/</guid><description>Martin Fowler&apos;s January 2026 conversation with Joshi and Parsons positions LLMs as the next step up software&apos;s abstraction staircase, but what it actually surfaces is that writing a good &apos;what&apos; specification requires a precision discipline most developers have never had to practice explicitly.</description><pubDate>Fri, 13 Mar 2026 11:11:20 GMT</pubDate></item><item><title>The What/How Loop Is a Training Loop, and LLMs Changed the Training</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-what-how-loop-is-a-training-loop-and-llms-changed-the-training/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-what-how-loop-is-a-training-loop-and-llms-changed-the-training/</guid><description>LLMs accelerate the what/how loop in software development but eliminate the failure events that historically built developer expertise. The Fowler, Parsons, and Joshi conversation on LLMs and abstraction points to a subtler cost than code quality: developers who skip the how layer lose the ability to evaluate whether the generated implementation matches their actual intent.</description><pubDate>Fri, 13 Mar 2026 11:26:39 GMT</pubDate></item><item><title>The What/How Loop Was Building Something Besides Software</title><link>https://nebelwolfi.xyz/blog/2026-03-13-the-what-how-loop-was-building-something-besides-software/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-the-what-how-loop-was-building-something-besides-software/</guid><description>Martin Fowler&apos;s January 2026 conversation with Unmesh Joshi and Rebecca Parsons frames the what/how loop as a cognitive load problem. The angle worth examining is what the loop was doing to the developer traversing it, and what gets lost when an LLM traverses it instead.</description><pubDate>Fri, 13 Mar 2026 11:11:48 GMT</pubDate></item><item><title>Three IRs, One WASM File: Looking Back at Zig&apos;s Self-Hosting Transition</title><link>https://nebelwolfi.xyz/blog/2026-03-13-three-irs-one-wasm-file-looking-back-at-zig-s-self-hosting-transition/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-three-irs-one-wasm-file-looking-back-at-zig-s-self-hosting-transition/</guid><description>A technical retrospective on Zig&apos;s 2022 transition from a C++ compiler to a self-hosted implementation, examining the three-layer IR pipeline, multiple code generation backends, and the zig1.wasm bootstrap chain.</description><pubDate>Fri, 13 Mar 2026 06:39:25 GMT</pubDate></item><item><title>Three LLM Serving Systems, Three KV Cache Strategies</title><link>https://nebelwolfi.xyz/blog/2026-03-13-three-llm-serving-systems-three-kv-cache-strategies/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-three-llm-serving-systems-three-kv-cache-strategies/</guid><description>vLLM, TGI, and TensorRT-LLM all implement continuous batching, but their KV cache allocation choices produce different memory utilization, preemption behavior, and throughput under realistic workloads.</description><pubDate>Fri, 13 Mar 2026 02:31:02 GMT</pubDate></item><item><title>Three Ways to Solve Code Retrieval, and Why Each One Fails Differently</title><link>https://nebelwolfi.xyz/blog/2026-03-13-three-ways-to-solve-code-retrieval-and-why-each-one-fails-differently/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-three-ways-to-solve-code-retrieval-and-why-each-one-fails-differently/</guid><description>Aider&apos;s AST-based repo maps, Cursor&apos;s embedding search, and Claude Code&apos;s agentic retrieval are fundamentally different architectural bets on the same problem. Understanding how each works determines where each breaks down.</description><pubDate>Fri, 13 Mar 2026 10:57:33 GMT</pubDate></item><item><title>Transformers v5 and the Infrastructure Layer That Was Always There</title><link>https://nebelwolfi.xyz/blog/2026-03-13-transformers-v5-and-the-infrastructure-layer-that-was-always-there/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-transformers-v5-and-the-infrastructure-layer-that-was-always-there/</guid><description>Hugging Face&apos;s Transformers v5 is less a feature release and more a structural repositioning of the library as ecosystem infrastructure. The new AttentionInterface, PyTorch consolidation, and interoperability-first design collectively turn clean model definitions into a shared specification for the broader AI toolchain.</description><pubDate>Fri, 13 Mar 2026 02:15:00 GMT</pubDate></item><item><title>Transformers v5 Changed How Models Are Authored, Not Just How They Run</title><link>https://nebelwolfi.xyz/blog/2026-03-13-transformers-v5-changed-how-models-are-authored-not-just-how-they-run/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-transformers-v5-changed-how-models-are-authored-not-just-how-they-run/</guid><description>Hugging Face&apos;s Transformers v5 introduces modular model definitions backed by code generation, a structural shift that addresses years of accumulated maintenance burden without breaking existing user workflows.</description><pubDate>Fri, 13 Mar 2026 02:21:43 GMT</pubDate></item><item><title>Verifiable Rewards and Why They Matter: The Technical Case for GRPO in HuggingFace&apos;s Fine-Tuning Pipeline</title><link>https://nebelwolfi.xyz/blog/2026-03-13-verifiable-rewards-and-why-they-matter-the-technical-case-for-grpo-in-huggingfac/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-verifiable-rewards-and-why-they-matter-the-technical-case-for-grpo-in-huggingfac/</guid><description>HuggingFace&apos;s Codex integration supports three training methods: SFT, DPO, and GRPO. The third one, rooted in DeepSeek-R1&apos;s reinforcement learning work, operates on fundamentally different assumptions and applies to a narrower but important class of problems.</description><pubDate>Fri, 13 Mar 2026 02:21:26 GMT</pubDate></item><item><title>Visual Tooling Finally Arrives for Terminal UI Development</title><link>https://nebelwolfi.xyz/blog/2026-03-13-visual-tooling-finally-arrives-for-terminal-ui-development/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-visual-tooling-finally-arrives-for-terminal-ui-development/</guid><description>TUI Studio brings a visual design tool to terminal UI development, addressing a long-standing productivity gap in frameworks like Ratatui and Bubble Tea where layout work has always required compile-run-squint iteration cycles.</description><pubDate>Fri, 13 Mar 2026 19:43:13 GMT</pubDate></item><item><title>What 400 Architectures Taught the Transformers Team About Code Generation</title><link>https://nebelwolfi.xyz/blog/2026-03-13-what-400-architectures-taught-the-transformers-team-about-code-generation/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-what-400-architectures-taught-the-transformers-team-about-code-generation/</guid><description>Transformers v5 replaces five years of copy-paste annotations and 1,600 redundant attention classes with a two-layer code generation system, letting contributors write only what differs from a parent model while keeping fully readable generated files for users.</description><pubDate>Fri, 13 Mar 2026 02:31:08 GMT</pubDate></item><item><title>What Actually Ends When Programming Ends</title><link>https://nebelwolfi.xyz/blog/2026-03-13-what-actually-ends-when-programming-ends/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-what-actually-ends-when-programming-ends/</guid><description>Simon Willison&apos;s &apos;Coding After Coders&apos; names something real — but what&apos;s ending is not programming. It&apos;s the era where keystrokes were the bottleneck, and the two kinds of work that survive look very different from each other.</description><pubDate>Fri, 13 Mar 2026 15:34:45 GMT</pubDate></item><item><title>What Happens to Your Codebase After an AI Agent Touches It</title><link>https://nebelwolfi.xyz/blog/2026-03-13-what-happens-to-your-codebase-after-an-ai-agent-touches-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-what-happens-to-your-codebase-after-an-ai-agent-touches-it/</guid><description>Erik Doernenburg&apos;s experiment using AI coding agents on CCMenu reveals a predictable pattern: code that works but quietly degrades internal quality through duplication, complexity, and tighter coupling.</description><pubDate>Fri, 13 Mar 2026 11:08:32 GMT</pubDate></item><item><title>What Rust&apos;s Inline Assembly Owes the Memory Model</title><link>https://nebelwolfi.xyz/blog/2026-03-13-what-rust-s-inline-assembly-owes-the-memory-model/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-what-rust-s-inline-assembly-owes-the-memory-model/</guid><description>Ralf Jung&apos;s storytelling framework for inline assembly semantics shows that writing asm! in Rust requires more than correct register constraints. You also have to construct a valid argument that every memory access is sound within Rust&apos;s abstract machine.</description><pubDate>Fri, 13 Mar 2026 15:22:11 GMT</pubDate></item><item><title>What&apos;s Actually Happening When an Algorithm Interviews You for a Job</title><link>https://nebelwolfi.xyz/blog/2026-03-13-what-s-actually-happening-when-an-algorithm-interviews-you-for-a-job/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-what-s-actually-happening-when-an-algorithm-interviews-you-for-a-job/</guid><description>AI-conducted job interviews are no longer rare. This post examines the technical architecture behind these systems, what they&apos;re actually measuring, and what the regulatory landscape looks like for candidates navigating automated hiring.</description><pubDate>Fri, 13 Mar 2026 19:59:12 GMT</pubDate></item><item><title>What the Algorithm Is Scoring When It Interviews You for a Job</title><link>https://nebelwolfi.xyz/blog/2026-03-13-what-the-algorithm-is-scoring-when-it-interviews-you-for-a-job/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-what-the-algorithm-is-scoring-when-it-interviews-you-for-a-job/</guid><description>AI-conducted job interviews are now routine, but the gap between what vendors claim their systems measure and what they actually detect reveals persistent problems that scale rather than solve the biases already present in human hiring.</description><pubDate>Fri, 13 Mar 2026 20:09:19 GMT</pubDate></item><item><title>When a $0.30 Fine-Tune Is the Right Bet, and When It Isn&apos;t</title><link>https://nebelwolfi.xyz/blog/2026-03-13-when-a-0-30-fine-tune-is-the-right-bet-and-when-it-isn-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-when-a-0-30-fine-tune-is-the-right-bet-and-when-it-isn-t/</guid><description>HuggingFace&apos;s automated fine-tuning pipeline makes small model training trivially cheap, but the strategic questions around task fit, data quality, and evaluation design still determine whether a fine-tuned 0.6B model outperforms prompting a large one.</description><pubDate>Fri, 13 Mar 2026 02:18:32 GMT</pubDate></item><item><title>When Clean Room Development Becomes Infrastructure</title><link>https://nebelwolfi.xyz/blog/2026-03-13-when-clean-room-development-becomes-infrastructure/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-when-clean-room-development-becomes-infrastructure/</guid><description>Malus offers clean room reverse engineering as a managed service, turning a decades-old legal technique into repeatable process. Here is what that means for copyleft licensing and open source strategy.</description><pubDate>Fri, 13 Mar 2026 17:14:49 GMT</pubDate></item><item><title>When Facial Recognition Becomes Probable Cause: The Math Behind Wrongful Arrests</title><link>https://nebelwolfi.xyz/blog/2026-03-13-when-facial-recognition-becomes-probable-cause-the-math-behind-wrongful-arrests/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-when-facial-recognition-becomes-probable-cause-the-math-behind-wrongful-arrests/</guid><description>A grandmother in North Dakota spent months in jail after a facial recognition system misidentified her. This is not an anomaly — it is the predictable output of deploying probabilistic search tools in legal contexts that treat their results as evidence.</description><pubDate>Fri, 13 Mar 2026 17:11:17 GMT</pubDate></item><item><title>When Million-Token Context Is Table Stakes, Attention Quality Is the Differentiator</title><link>https://nebelwolfi.xyz/blog/2026-03-13-when-million-token-context-is-table-stakes-attention-quality-is-the-differentiat/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-when-million-token-context-is-table-stakes-attention-quality-is-the-differentiat/</guid><description>Anthropic&apos;s Claude Opus 4.6 and Sonnet 4.6 have joined Gemini and GPT-5.4 at 1M token context windows. The number is the new baseline; the question worth asking is whether Anthropic&apos;s historical advantage in context quality holds at this scale.</description><pubDate>Fri, 13 Mar 2026 19:40:08 GMT</pubDate></item><item><title>When Running AI Locally Is Worth It, and When It Is Not</title><link>https://nebelwolfi.xyz/blog/2026-03-13-when-running-ai-locally-is-worth-it-and-when-it-is-not/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-when-running-ai-locally-is-worth-it-and-when-it-is-not/</guid><description>A practical look at the economics, usability thresholds, privacy considerations, and workflow tradeoffs of running language models locally versus cloud APIs, going beyond the hardware compatibility question that tools like canirun.ai answer.</description><pubDate>Fri, 13 Mar 2026 19:45:15 GMT</pubDate></item><item><title>When the Answer Is the Wrong Reward: LLMs and the Learning Loop</title><link>https://nebelwolfi.xyz/blog/2026-03-13-when-the-answer-is-the-wrong-reward-llms-and-the-learning-loop/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-when-the-answer-is-the-wrong-reward-llms-and-the-learning-loop/</guid><description>Unmesh Joshi&apos;s November 2025 piece on Martin Fowler&apos;s site argues LLMs undermine the learning loop. Here&apos;s a look at the specific neurological and pedagogical mechanism that makes this true, and what to do about it.</description><pubDate>Fri, 13 Mar 2026 12:39:16 GMT</pubDate></item><item><title>When the Kotlin Creator Turns to Specs for LLMs, It Is Worth Paying Attention</title><link>https://nebelwolfi.xyz/blog/2026-03-13-when-the-kotlin-creator-turns-to-specs-for-llms-it-is-worth-paying-attention/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-when-the-kotlin-creator-turns-to-specs-for-llms-it-is-worth-paying-attention/</guid><description>Andrey Breslav, creator of Kotlin, has introduced Codespeak, a language designed to communicate with LLMs through formal specifications rather than English prose. Here is what that means architecturally, and how it fits into a growing body of prior work trying to solve the same problem.</description><pubDate>Fri, 13 Mar 2026 17:10:53 GMT</pubDate></item><item><title>Why Fixing URL Exfiltration in LLMs Requires Defense at Every Layer</title><link>https://nebelwolfi.xyz/blog/2026-03-13-why-fixing-url-exfiltration-in-llms-requires-defense-at-every-layer/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-why-fixing-url-exfiltration-in-llms-requires-defense-at-every-layer/</guid><description>Google&apos;s public writeup on Gemini&apos;s URL-based exfiltration mitigations reveals why no single fix closes this attack class, and what a real defense-in-depth strategy looks like across model, rendering, and network layers.</description><pubDate>Fri, 13 Mar 2026 06:25:56 GMT</pubDate></item><item><title>Why Go&apos;s Source-Level Inliner Required 7,000 Lines to Do Something That Sounds Simple</title><link>https://nebelwolfi.xyz/blog/2026-03-13-why-go-s-source-level-inliner-required-7-000-lines-to-do-something-that-sounds-s/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-why-go-s-source-level-inliner-required-7-000-lines-to-do-something-that-sounds-s/</guid><description>Go 1.26 ships `//go:fix inline`, a directive that lets library authors publish machine-readable migration instructions. The underlying source-level inliner is 7,000 lines of dense logic, and understanding why reveals exactly where automated refactoring gets hard.</description><pubDate>Fri, 13 Mar 2026 15:51:05 GMT</pubDate></item><item><title>Why Open Source Bounties Backfire: The Behavioral Economics Case</title><link>https://nebelwolfi.xyz/blog/2026-03-13-why-open-source-bounties-backfire-the-behavioral-economics-case/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-why-open-source-bounties-backfire-the-behavioral-economics-case/</guid><description>Andrew Kelley&apos;s 2023 argument that bounties damage open source projects has aged well. The Bountysource collapse and decades of behavioral economics research explain why, and point toward what actually works.</description><pubDate>Fri, 13 Mar 2026 06:39:19 GMT</pubDate></item><item><title>Why Plan 9&apos;s Acme Has No Plugin System (And Doesn&apos;t Need One)</title><link>https://nebelwolfi.xyz/blog/2026-03-13-why-plan-9-s-acme-has-no-plugin-system-and-doesn-t-need-one/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-why-plan-9-s-acme-has-no-plugin-system-and-doesn-t-need-one/</guid><description>Plan 9&apos;s Acme editor exposes its entire state as a 9P filesystem, making any external program a first-class extension. Here&apos;s why that thirty-year-old design decision still holds up.</description><pubDate>Fri, 13 Mar 2026 06:17:20 GMT</pubDate></item><item><title>Why Prompt Injection Resists the Fixes That Worked for SQL Injection</title><link>https://nebelwolfi.xyz/blog/2026-03-13-why-prompt-injection-resists-the-fixes-that-worked-for-sql-injection/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-why-prompt-injection-resists-the-fixes-that-worked-for-sql-injection/</guid><description>Google&apos;s URL exfiltration mitigations in Gemini are well-engineered, but they address a structural problem that has no model-level solution yet. Understanding why reveals what application-layer defense actually needs to do.</description><pubDate>Fri, 13 Mar 2026 06:26:29 GMT</pubDate></item><item><title>Why the CCMenu Experiment Worked: Tacit Knowledge and the Limits of AI Code Review</title><link>https://nebelwolfi.xyz/blog/2026-03-13-why-the-ccmenu-experiment-worked-tacit-knowledge-and-the-limits-of-ai-code-revie/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-why-the-ccmenu-experiment-worked-tacit-knowledge-and-the-limits-of-ai-code-revie/</guid><description>Erik Doernenburg&apos;s assessment of coding agents on his own CCMenu project is more credible than most AI benchmarks because he built the codebase. That fact is the real finding, and it has implications for every team using agents on established codebases.</description><pubDate>Fri, 13 Mar 2026 11:02:59 GMT</pubDate></item><item><title>Your Codebase Is Now Infrastructure for AI</title><link>https://nebelwolfi.xyz/blog/2026-03-13-your-codebase-is-now-infrastructure-for-ai/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-your-codebase-is-now-infrastructure-for-ai/</guid><description>Harness Engineering reframes AI coding productivity as an environment problem rather than a prompt problem. Here is what it means to deliberately engineer the context, constraints, and hygiene that AI assistants operate within.</description><pubDate>Fri, 13 Mar 2026 07:56:02 GMT</pubDate></item><item><title>Why the Model Context Protocol Will Outlast the Current Generation of Coding Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-13-why-the-model-context-protocol-will-outlast-the-current-generation-of-coding-age/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-why-the-model-context-protocol-will-outlast-the-current-generation-of-coding-age/</guid><description>MCP is more than a plugin system for Claude Code and Cursor. As a standardized JSON-RPC interface for tools, resources, and prompts, it separates context sourcing from agent implementation in a way that creates durable ecosystem effects. Here is the design reasoning behind that bet.</description><pubDate>Fri, 13 Mar 2026 11:10:12 GMT</pubDate></item><item><title>Zig&apos;s Bootstrap Gambit: What the Self-Hosted Compiler Reveals About the Language&apos;s Philosophy</title><link>https://nebelwolfi.xyz/blog/2026-03-13-zig-s-bootstrap-gambit-what-the-self-hosted-compiler-reveals-about-the-language-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-13-zig-s-bootstrap-gambit-what-the-self-hosted-compiler-reveals-about-the-language-/</guid><description>A retrospective look at Zig&apos;s 2022 transition from a C++ compiler to a self-hosted implementation, and what its unusual WebAssembly bootstrap strategy reveals about the language&apos;s core design values.</description><pubDate>Fri, 13 Mar 2026 06:40:54 GMT</pubDate></item><item><title>Amazon&apos;s AI Sign-Off Policy and the Provenance Problem It Can&apos;t Yet Enforce</title><link>https://nebelwolfi.xyz/blog/2026-03-14-amazon-s-ai-sign-off-policy-and-the-provenance-problem-it-can-t-yet-enforce/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-amazon-s-ai-sign-off-policy-and-the-provenance-problem-it-can-t-yet-enforce/</guid><description>Amazon is requiring senior engineers to approve AI-assisted changes after a string of production outages. The policy is sound, but it exposes a deeper gap: the tooling to reliably attribute and audit AI-generated code doesn&apos;t exist yet.</description><pubDate>Sat, 14 Mar 2026 01:16:49 GMT</pubDate></item><item><title>Amazon&apos;s Senior Sign-Off Rule Is the Right Response to AI-Caused Outages</title><link>https://nebelwolfi.xyz/blog/2026-03-14-amazon-s-senior-sign-off-rule-is-the-right-response-to-ai-caused-outages/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-amazon-s-senior-sign-off-rule-is-the-right-response-to-ai-caused-outages/</guid><description>Amazon&apos;s requirement for senior engineer approval on AI-assisted code changes targets the specific failure mode automated tools cannot catch: plausible-but-wrong code that only breaks under production conditions a model could never have seen.</description><pubDate>Sat, 14 Mar 2026 01:23:46 GMT</pubDate></item><item><title>Amazon&apos;s Sign-Off Policy Reveals a Problem the Industry Has No Tooling to Solve</title><link>https://nebelwolfi.xyz/blog/2026-03-14-amazon-s-sign-off-policy-reveals-a-problem-the-industry-has-no-tooling-to-solve/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-amazon-s-sign-off-policy-reveals-a-problem-the-industry-has-no-tooling-to-solve/</guid><description>Amazon&apos;s new requirement for senior engineers to approve AI-assisted code changes is the right first step, but it exposes a deeper gap: the software industry has no standard way to track which code an AI actually wrote.</description><pubDate>Sat, 14 Mar 2026 01:28:00 GMT</pubDate></item><item><title>Before the Context Fills: Why Design Alignment Has to Come First in AI Development</title><link>https://nebelwolfi.xyz/blog/2026-03-14-before-the-context-fills-why-design-alignment-has-to-come-first-in-ai-developmen/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-before-the-context-fills-why-design-alignment-has-to-come-first-in-ai-developmen/</guid><description>The case for front-loading design before AI writes code goes beyond workflow discipline. Attention gradients, lossy compaction, and the structural privilege of session-start instructions make early design alignment mechanically superior to mid-session correction.</description><pubDate>Sat, 14 Mar 2026 03:57:30 GMT</pubDate></item><item><title>C++ Coroutines and What the Compiler Needs from You</title><link>https://nebelwolfi.xyz/blog/2026-03-14-c-coroutines-and-what-the-compiler-needs-from-you/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-c-coroutines-and-what-the-compiler-needs-from-you/</guid><description>C++20 coroutines shift the complexity of async machinery from the runtime to the programmer. Here&apos;s what the compiler generates, what you must supply, and how it compares to Rust and Python.</description><pubDate>Sat, 14 Mar 2026 01:48:54 GMT</pubDate></item><item><title>C++ Ranges at Five: Composable by Design, Complicated in Practice</title><link>https://nebelwolfi.xyz/blog/2026-03-14-c-ranges-at-five-composable-by-design-complicated-in-practice/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-c-ranges-at-five-composable-by-design-complicated-in-practice/</guid><description>Five years after C++20, the tradeoffs behind lazy range adaptors, sentinel types, and borrowed ranges are visible in real codebases. Here is what those decisions actually cost.</description><pubDate>Sat, 14 Mar 2026 02:02:22 GMT</pubDate></item><item><title>CFI in C++: From Hardware Guards to Type-Based Checks, and Why You Probably Want Both</title><link>https://nebelwolfi.xyz/blog/2026-03-14-cfi-in-c-from-hardware-guards-to-type-based-checks-and-why-you-probably-want-bot/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-cfi-in-c-from-hardware-guards-to-type-based-checks-and-why-you-probably-want-bot/</guid><description>James McNellis&apos;s Meeting C++ keynote frames control flow integrity not as a single feature but as a layered family of defenses, each trading policy granularity against runtime cost. Here is what that spectrum looks like in practice and what it means for your C++ builds.</description><pubDate>Sat, 14 Mar 2026 04:16:01 GMT</pubDate></item><item><title>CFI in C++: What Each Implementation Actually Enforces</title><link>https://nebelwolfi.xyz/blog/2026-03-14-cfi-in-c-what-each-implementation-actually-enforces/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-cfi-in-c-what-each-implementation-actually-enforces/</guid><description>Control Flow Integrity constrains where execution can go after a memory corruption bug, but Clang&apos;s software CFI, Intel CET, and ARM PAC make very different promises. Here is what each one enforces and where the coverage ends.</description><pubDate>Sat, 14 Mar 2026 02:07:49 GMT</pubDate></item><item><title>Chasing Higher-Kinded Abstractions in Rust, Until the Solver Gives Up</title><link>https://nebelwolfi.xyz/blog/2026-03-14-chasing-higher-kinded-abstractions-in-rust-until-the-solver-gives-up/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-chasing-higher-kinded-abstractions-in-rust-until-the-solver-gives-up/</guid><description>Rust lacks native higher-kinded types, and the standard workarounds using GATs and defunctionalization work until they don&apos;t, when the trait solver hits inductive cycles it cannot resolve.</description><pubDate>Sat, 14 Mar 2026 10:14:04 GMT</pubDate></item><item><title>Claude Code Is Not Just Another Autocomplete</title><link>https://nebelwolfi.xyz/blog/2026-03-14-claude-code-is-not-just-another-autocomplete/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-claude-code-is-not-just-another-autocomplete/</guid><description>Steve Klabnik&apos;s guide to using Claude for software development is a good entry point, but the more interesting story is how agentic AI coding tools require you to rethink your entire workflow, not just your editor plugins.</description><pubDate>Sat, 14 Mar 2026 14:40:40 GMT</pubDate></item><item><title>Closing the Gap: What NVIDIA&apos;s Agentic Retrieval Results Say About Embedding Model Selection</title><link>https://nebelwolfi.xyz/blog/2026-03-14-closing-the-gap-what-nvidia-s-agentic-retrieval-results-say-about-embedding-mode/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-closing-the-gap-what-nvidia-s-agentic-retrieval-results-say-about-embedding-mode/</guid><description>NVIDIA&apos;s NeMo Retriever agentic pipeline demonstrates that an iterative reasoning loop can close 40-50% of the performance gap between strong and weak embedding models, shifting the core engineering question from which retriever to choose to how much reasoning budget you can afford.</description><pubDate>Sat, 14 Mar 2026 01:20:35 GMT</pubDate></item><item><title>Conditional Impls: Capability Propagation Through Rust&apos;s Type System</title><link>https://nebelwolfi.xyz/blog/2026-03-14-conditional-impls-capability-propagation-through-rust-s-type-system/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-conditional-impls-capability-propagation-through-rust-s-type-system/</guid><description>Conditional trait implementations let Rust propagate capabilities through generic types at compile time, encoding type-level if/then reasoning that C++ SFINAE and Haskell instance constraints also attempt, but with distinct tradeoffs. This post traces the pattern from basics through the standard library, the PhantomData derive problem, auto traits, and the long-stalled specialization RFC.</description><pubDate>Sat, 14 Mar 2026 01:19:34 GMT</pubDate></item><item><title>DBSC: How Chrome 145 Moves Session Security Into Hardware</title><link>https://nebelwolfi.xyz/blog/2026-03-14-dbsc-how-chrome-145-moves-session-security-into-hardware/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-dbsc-how-chrome-145-moves-session-security-into-hardware/</guid><description>Chrome 145 ships Device Bound Session Credentials for Windows, binding browser sessions to TPM-backed keys. Here is what that means for the cookie theft attack chain and what servers need to do to opt in.</description><pubDate>Sat, 14 Mar 2026 02:25:41 GMT</pubDate></item><item><title>Debugging at Compile Time: How CLion 2025.3 Steps Inside the Constexpr Evaluator</title><link>https://nebelwolfi.xyz/blog/2026-03-14-debugging-at-compile-time-how-clion-2025-3-steps-inside-the-constexpr-evaluator/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-debugging-at-compile-time-how-clion-2025-3-steps-inside-the-constexpr-evaluator/</guid><description>CLion 2025.3 ships an in-IDE constexpr interpreter that lets C++ developers set breakpoints and step through compile-time evaluation interactively. This post traces why the problem is harder than it looks, what compilers actually do during constexpr evaluation internally, and what this means for serious compile-time C++ programming.</description><pubDate>Sat, 14 Mar 2026 02:30:41 GMT</pubDate></item><item><title>Decades of Extensibility, Now with AI: What Emacs and Neovim Actually Offer in 2026</title><link>https://nebelwolfi.xyz/blog/2026-03-14-decades-of-extensibility-now-with-ai-what-emacs-and-neovim-actually-offer-in-202/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-decades-of-extensibility-now-with-ai-what-emacs-and-neovim-actually-offer-in-202/</guid><description>Every decade brings a new editor that promises to make Emacs and Vim obsolete. The AI wave is the most credible challenge yet, but the extensibility model that kept these editors alive is exactly what makes AI integration tractable.</description><pubDate>Sat, 14 Mar 2026 10:16:45 GMT</pubDate></item><item><title>Every Framework Gets Component Namespacing for Free: What Scoped Registries Change for Web Components</title><link>https://nebelwolfi.xyz/blog/2026-03-14-every-framework-gets-component-namespacing-for-free-what-scoped-registries-chang/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-every-framework-gets-component-namespacing-for-free-what-scoped-registries-chang/</guid><description>Chrome 146 ships constructible custom element registries, letting shadow roots maintain isolated element namespaces. Here&apos;s the problem this solves, what years of polyfill workarounds looked like, and how the new API compares to how component frameworks handle the same challenge.</description><pubDate>Sat, 14 Mar 2026 02:59:55 GMT</pubDate></item><item><title>Forward Edge, Backward Edge: Getting Serious About CFI in Modern C++</title><link>https://nebelwolfi.xyz/blog/2026-03-14-forward-edge-backward-edge-getting-serious-about-cfi-in-modern-c/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-forward-edge-backward-edge-getting-serious-about-cfi-in-modern-c/</guid><description>Control Flow Integrity in C++ comes in two distinct flavors that address different attack surfaces. This post breaks down vtable hijacking, clang CFI, Microsoft CFG, Intel CET shadow stacks, and ARM PAC, tracing how they fit together into a coherent defense.</description><pubDate>Sat, 14 Mar 2026 02:55:28 GMT</pubDate></item><item><title>Git Worktrees and Direnv Are Already Your Parallel Agent Runtime</title><link>https://nebelwolfi.xyz/blog/2026-03-14-git-worktrees-and-direnv-are-already-your-parallel-agent-runtime/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-git-worktrees-and-direnv-are-already-your-parallel-agent-runtime/</guid><description>Running multiple AI coding agents in parallel doesn&apos;t require containers or complex infrastructure. Git worktrees and direnv compose naturally to give each agent an isolated workspace, using tools that have existed for years.</description><pubDate>Sat, 14 Mar 2026 14:52:29 GMT</pubDate></item><item><title>From Detection to Remediation: What Codex Security Is Actually Trying to Solve</title><link>https://nebelwolfi.xyz/blog/2026-03-14-from-detection-to-remediation-what-codex-security-is-actually-trying-to-solve/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-from-detection-to-remediation-what-codex-security-is-actually-trying-to-solve/</guid><description>OpenAI&apos;s Codex Security research preview aims to close the gap between finding vulnerabilities and safely fixing them. Here&apos;s what the approach gets right and where the real risks lie.</description><pubDate>Sat, 14 Mar 2026 01:09:00 GMT</pubDate></item><item><title>Go 1.25&apos;s Test Bubbles Fix the Right Problem in Async Testing</title><link>https://nebelwolfi.xyz/blog/2026-03-14-go-1-25-s-test-bubbles-fix-the-right-problem-in-async-testing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-go-1-25-s-test-bubbles-fix-the-right-problem-in-async-testing/</guid><description>Go 1.25 graduates testing/synctest to stable, introducing fake-clock test bubbles that eliminate the need to thread Clock interfaces through production code just to make time-dependent tests work.</description><pubDate>Sat, 14 Mar 2026 04:26:08 GMT</pubDate></item><item><title>Go 1.26: Green Tea GC by Default, and How //go:fix inline Closes the Deprecation Gap</title><link>https://nebelwolfi.xyz/blog/2026-03-14-go-1-26-green-tea-gc-by-default-and-how-go-fix-inline-closes-the-deprecation-gap/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-go-1-26-green-tea-gc-by-default-and-how-go-fix-inline-closes-the-deprecation-gap/</guid><description>Go 1.26 makes the Green Tea garbage collector the default and rebuilds go fix with a new //go:fix inline directive, two infrastructure investments that quietly improve every Go program without requiring code changes.</description><pubDate>Sat, 14 Mar 2026 04:30:43 GMT</pubDate></item><item><title>Go&apos;s New Flight Recorder and the Three-Release Engineering Journey Behind It</title><link>https://nebelwolfi.xyz/blog/2026-03-14-go-s-new-flight-recorder-and-the-three-release-engineering-journey-behind-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-go-s-new-flight-recorder-and-the-three-release-engineering-journey-behind-it/</guid><description>Go 1.25 adds a production-safe flight recorder to the runtime/trace package, letting services snapshot the last few seconds of execution on demand. Here&apos;s what makes it work and why it took three releases to get there.</description><pubDate>Sat, 14 Mar 2026 04:22:59 GMT</pubDate></item><item><title>go fix&apos;s New Inline Engine Changes How Go Handles Deprecated APIs</title><link>https://nebelwolfi.xyz/blog/2026-03-14-go-fix-s-new-inline-engine-changes-how-go-handles-deprecated-apis/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-go-fix-s-new-inline-engine-changes-how-go-handles-deprecated-apis/</guid><description>Go 1.26 rewrites the go fix tool on top of a type-aware analysis framework and introduces the //go:fix inline directive, giving library authors a way to make deprecations machine-executable for the first time.</description><pubDate>Sat, 14 Mar 2026 04:33:28 GMT</pubDate></item><item><title>GPU Physics Forced Sixteen RL Teams to the Same Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-14-gpu-physics-forced-sixteen-rl-teams-to-the-same-architecture/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-gpu-physics-forced-sixteen-rl-teams-to-the-same-architecture/</guid><description>Sixteen independent teams building RL infrastructure for LLMs all converged on the same disaggregated actor-learner architecture. The pattern was solved for video game RL in 2018; the LLM version is harder for reasons rooted in autoregressive generation and KV cache memory pressure.</description><pubDate>Sat, 14 Mar 2026 03:24:42 GMT</pubDate></item><item><title>How Descript Built an AI Dubbing Pipeline That Makes Global Distribution Affordable</title><link>https://nebelwolfi.xyz/blog/2026-03-14-how-descript-built-an-ai-dubbing-pipeline-that-makes-global-distribution-afforda/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-how-descript-built-an-ai-dubbing-pipeline-that-makes-global-distribution-afforda/</guid><description>Descript&apos;s AI-powered dubbing pipeline uses OpenAI&apos;s APIs to dramatically reduce the cost of video localization, making what once required studio budgets accessible to individual creators.</description><pubDate>Sat, 14 Mar 2026 03:09:09 GMT</pubDate></item><item><title>How NetBSD&apos;s TCP Stack Loses Throughput and What It Takes to Get It Back</title><link>https://nebelwolfi.xyz/blog/2026-03-14-how-netbsd-s-tcp-stack-loses-throughput-and-what-it-takes-to-get-it-back/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-how-netbsd-s-tcp-stack-loses-throughput-and-what-it-takes-to-get-it-back/</guid><description>A look at the structural reasons BSD TCP performance lags behind Linux, and what kernel-level fixes for NetBSD reveal about how the networking stack has aged.</description><pubDate>Sat, 14 Mar 2026 03:51:32 GMT</pubDate></item><item><title>JSLinux at Fifteen: What x86_64 Support Required, and Why RISC-V Was the Detour</title><link>https://nebelwolfi.xyz/blog/2026-03-14-jslinux-at-fifteen-what-x86-64-support-required-and-why-risc-v-was-the-detour/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-jslinux-at-fifteen-what-x86-64-support-required-and-why-risc-v-was-the-detour/</guid><description>Fabrice Bellard&apos;s JSLinux just added x86_64 support, fifteen years after launching as a 32-bit x86 emulator. The technical gap between x86-32 and x86_64 explains why RISC-V became the preferred architecture in between.</description><pubDate>Sat, 14 Mar 2026 01:34:26 GMT</pubDate></item><item><title>LLMs Don&apos;t Have a Kernel Mode</title><link>https://nebelwolfi.xyz/blog/2026-03-14-llms-don-t-have-a-kernel-mode/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-llms-don-t-have-a-kernel-mode/</guid><description>OpenAI&apos;s instruction hierarchy training teaches LLMs to respect a trust ordering between system prompts, user messages, and tool outputs. Understanding why this had to be a training problem, not an architectural one, clarifies both what the approach achieves and where its limits are.</description><pubDate>Sat, 14 Mar 2026 04:10:57 GMT</pubDate></item><item><title>One Million Tokens: What Anthropic&apos;s Context Expansion Actually Changes</title><link>https://nebelwolfi.xyz/blog/2026-03-14-one-million-tokens-what-anthropic-s-context-expansion-actually-changes/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-one-million-tokens-what-anthropic-s-context-expansion-actually-changes/</guid><description>Claude Opus 4.6 and Sonnet 4.6 now support 1M token context windows in general availability. Here&apos;s what the engineering behind it means and where it actually moves the needle for developers.</description><pubDate>Sat, 14 Mar 2026 05:56:37 GMT</pubDate></item><item><title>Managing Neovim Plugins Without a Plugin Manager</title><link>https://nebelwolfi.xyz/blog/2026-03-14-managing-neovim-plugins-without-a-plugin-manager/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-managing-neovim-plugins-without-a-plugin-manager/</guid><description>vim.pack is Neovim&apos;s built-in Lua module for native package management, offering a declarative, dependency-free way to load plugins. This post covers how it works, how it compares to lazy.nvim, and when it earns a place in your config.</description><pubDate>Sat, 14 Mar 2026 14:43:18 GMT</pubDate></item><item><title>NetBSD TCP and the Hidden Cost of Conservative Kernel Defaults</title><link>https://nebelwolfi.xyz/blog/2026-03-14-netbsd-tcp-and-the-hidden-cost-of-conservative-kernel-defaults/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-netbsd-tcp-and-the-hidden-cost-of-conservative-kernel-defaults/</guid><description>A deep look at how NetBSD&apos;s TCP stack, rooted in 4.4BSD heritage, creates performance cliffs that only show up under measurement, and what the kernel is actually doing when throughput falls short.</description><pubDate>Sat, 14 Mar 2026 03:11:05 GMT</pubDate></item><item><title>Python&apos;s Distribution Problem Is Why Rust CLI Tools Keep Winning</title><link>https://nebelwolfi.xyz/blog/2026-03-14-python-s-distribution-problem-is-why-rust-cli-tools-keep-winning/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-python-s-distribution-problem-is-why-rust-cli-tools-keep-winning/</guid><description>Building a CLI tool in Rust gives you a single static binary and near-zero startup time, but the bigger advantage over Python is one most developers only discover when they try to ship their tool to actual users.</description><pubDate>Sat, 14 Mar 2026 01:17:23 GMT</pubDate></item><item><title>Retrieval as a Reasoning Problem: What NVIDIA&apos;s Agentic Pipeline Gets Right</title><link>https://nebelwolfi.xyz/blog/2026-03-14-retrieval-as-a-reasoning-problem-what-nvidia-s-agentic-pipeline-gets-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-retrieval-as-a-reasoning-problem-what-nvidia-s-agentic-pipeline-gets-right/</guid><description>NVIDIA&apos;s NeMo Retriever agentic pipeline replaces single-shot vector search with a ReACT-based reasoning loop, hitting #1 on ViDoRe v3 and #2 on BRIGHT. Here&apos;s what the architecture actually looks like and what it costs.</description><pubDate>Sat, 14 Mar 2026 01:12:07 GMT</pubDate></item><item><title>Rust&apos;s CLI Ecosystem Is More Than a Performance Story</title><link>https://nebelwolfi.xyz/blog/2026-03-14-rust-s-cli-ecosystem-is-more-than-a-performance-story/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-rust-s-cli-ecosystem-is-more-than-a-performance-story/</guid><description>Behind the startup time benchmarks and single-binary arguments, Rust&apos;s CLI toolchain offers a development experience that changes how you design command-line tools from the ground up.</description><pubDate>Sat, 14 Mar 2026 01:25:23 GMT</pubDate></item><item><title>Rust&apos;s Conditional Impls: The Pattern Behind Composable Generic APIs</title><link>https://nebelwolfi.xyz/blog/2026-03-14-rust-s-conditional-impls-the-pattern-behind-composable-generic-apis/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-rust-s-conditional-impls-the-pattern-behind-composable-generic-apis/</guid><description>Conditional trait implementations in Rust, expressed through where clauses on impl blocks, are the mechanism behind the standard library&apos;s composable design. Understanding how they work, where they fail, and how they compare to Swift, C++, and Haskell reveals a core design principle of Rust&apos;s type system.</description><pubDate>Sat, 14 Mar 2026 01:21:31 GMT</pubDate></item><item><title>Rust&apos;s Trait Solver at the Breaking Point: HKT Emulation and Inductive Cycles</title><link>https://nebelwolfi.xyz/blog/2026-03-14-rust-s-trait-solver-at-the-breaking-point-hkt-emulation-and-inductive-cycles/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-rust-s-trait-solver-at-the-breaking-point-hkt-emulation-and-inductive-cycles/</guid><description>Attempting to emulate higher-kinded types in Rust via GATs can push the trait solver into inductive cycles and crash the compiler. This post explores the mechanics behind those failures and what the next-generation trait solver is doing to address them.</description><pubDate>Sat, 14 Mar 2026 10:14:37 GMT</pubDate></item><item><title>Scoped Enums and the Type-Erasure Trap in C++ Error Handling</title><link>https://nebelwolfi.xyz/blog/2026-03-14-scoped-enums-and-the-type-erasure-trap-in-c-error-handling/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-scoped-enums-and-the-type-erasure-trap-in-c-error-handling/</guid><description>C++11 gave us both enum class and std::error_code, but these two features work against each other in ways the standard never resolved. Here&apos;s what that friction reveals about C++ error handling design, and why std::expected changes the picture.</description><pubDate>Sat, 14 Mar 2026 03:29:25 GMT</pubDate></item><item><title>Shipping a CLI Tool: The Distribution Problem Python Never Solved</title><link>https://nebelwolfi.xyz/blog/2026-03-14-shipping-a-cli-tool-the-distribution-problem-python-never-solved/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-shipping-a-cli-tool-the-distribution-problem-python-never-solved/</guid><description>Building a CLI tool in Python is fast; getting it onto someone else&apos;s machine reliably is not. Rust&apos;s single-binary output solves a problem Python has patched around for years without ever fixing.</description><pubDate>Sat, 14 Mar 2026 01:16:13 GMT</pubDate></item><item><title>Startup Time, Single Binaries, and Why Rust Fits CLI Work</title><link>https://nebelwolfi.xyz/blog/2026-03-14-startup-time-single-binaries-and-why-rust-fits-cli-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-startup-time-single-binaries-and-why-rust-fits-cli-work/</guid><description>A technical breakdown of why Rust outperforms Python for CLI tool development, covering startup overhead, binary distribution, type-safe argument parsing with clap, and the ecosystem patterns that back it up.</description><pubDate>Sat, 14 Mar 2026 01:16:12 GMT</pubDate></item><item><title>The Architectural Bet Behind C++26 Static Reflection</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-architectural-bet-behind-c-26-static-reflection/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-architectural-bet-behind-c-26-static-reflection/</guid><description>C++26 standardizes reflection for C++ with P2996, and its static, compile-time-only design is a deliberate architectural choice that sets it apart from how Java, Python, and Rust approach the same problem.</description><pubDate>Sat, 14 Mar 2026 01:47:16 GMT</pubDate></item><item><title>The Audio Engineering Layer That AI Dubbing Pipelines Keep Getting Wrong</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-audio-engineering-layer-that-ai-dubbing-pipelines-keep-getting-wrong/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-audio-engineering-layer-that-ai-dubbing-pipelines-keep-getting-wrong/</guid><description>Descript&apos;s AI dubbing pipeline has made real progress on timing and translation, but the harder problem — making synthesized speech sound like it was recorded in the same acoustic space as the original — remains largely unaddressed and largely undiscussed.</description><pubDate>Sat, 14 Mar 2026 03:48:55 GMT</pubDate></item><item><title>The Architecture Every RL Training Library Independently Reinvented</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-architecture-every-rl-training-library-independently-reinvented/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-architecture-every-rl-training-library-independently-reinvented/</guid><description>Sixteen independent teams building RL infrastructure for LLMs all converged on the same disaggregated architecture. The convergence reveals fundamental GPU physics constraints that make colocation of generation and training deeply inefficient.</description><pubDate>Sat, 14 Mar 2026 03:17:37 GMT</pubDate></item><item><title>The Cache Miss Problem That Green Tea GC Was Designed to Solve</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-cache-miss-problem-that-green-tea-gc-was-designed-to-solve/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-cache-miss-problem-that-green-tea-gc-was-designed-to-solve/</guid><description>Go&apos;s Green Tea GC delivers up to 40% reductions in GC CPU time not by changing the mark-and-sweep algorithm, but by rethinking the data structures the GC operates on. Here&apos;s what that means in practice.</description><pubDate>Sat, 14 Mar 2026 04:37:23 GMT</pubDate></item><item><title>The Calibration Protocol Hidden Inside Every DDR4 Boot</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-calibration-protocol-hidden-inside-every-ddr4-boot/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-calibration-protocol-hidden-inside-every-ddr4-boot/</guid><description>DDR4 memory training is a multi-phase calibration ritual that runs entirely before your OS loads, compensating for PCB routing imperfections and tuning reference voltages to sub-percent precision. Here is what is actually happening during those 300 milliseconds.</description><pubDate>Sat, 14 Mar 2026 03:07:23 GMT</pubDate></item><item><title>The Confused Deputy Problem at the Heart of Agentic Email</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-confused-deputy-problem-at-the-heart-of-agentic-email/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-confused-deputy-problem-at-the-heart-of-agentic-email/</guid><description>Letting an AI agent manage your email sounds like a productivity win, but it runs headfirst into a fundamental security problem: email is an untrusted, adversarial input surface, and granting an agent authority to act on its contents is architecturally dangerous.</description><pubDate>Sat, 14 Mar 2026 01:06:13 GMT</pubDate></item><item><title>The Extensibility Advantage: How Emacs and Neovim Are Absorbing AI Tooling</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-extensibility-advantage-how-emacs-and-neovim-are-absorbing-ai-tooling/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-extensibility-advantage-how-emacs-and-neovim-are-absorbing-ai-tooling/</guid><description>As AI-first editors like Cursor reshape how developers write code, Emacs and Neovim&apos;s plugin ecosystems are proving more capable of absorbing the shift than critics expected, though not without real friction.</description><pubDate>Sat, 14 Mar 2026 10:19:53 GMT</pubDate></item><item><title>The Import Tax: Why CLI Tools Keep Moving to Rust</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-import-tax-why-cli-tools-keep-moving-to-rust/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-import-tax-why-cli-tools-keep-moving-to-rust/</guid><description>Python&apos;s startup overhead isn&apos;t just slow by degree, it&apos;s slow by structure. Here&apos;s what the mechanisms look like, and why Rust keeps winning the CLI tool space for anyone distributing to real users.</description><pubDate>Sat, 14 Mar 2026 01:15:09 GMT</pubDate></item><item><title>The Indie Chip Era Is Here, and Dabao Is One of Its Builders</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-indie-chip-era-is-here-and-dabao-is-one-of-its-builders/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-indie-chip-era-is-here-and-dabao-is-one-of-its-builders/</guid><description>The Baochip Dabao project on Crowd Supply represents a new wave of solo hardware makers going all the way to custom silicon. Here is what the open silicon ecosystem looks like from the ground level, and why this particular moment makes it viable.</description><pubDate>Sat, 14 Mar 2026 14:45:58 GMT</pubDate></item><item><title>The Frame, the Handle, and the Protocol: How C++ Coroutines Actually Work</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-frame-the-handle-and-the-protocol-how-c-coroutines-actually-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-frame-the-handle-and-the-protocol-how-c-coroutines-actually-work/</guid><description>C++20 coroutines look like magic at the call site but are built on a precise three-party protocol between the caller, the promise, and the awaitable. Here is what the compiler actually generates and why every design decision in that protocol exists.</description><pubDate>Sat, 14 Mar 2026 01:58:51 GMT</pubDate></item><item><title>The Plausibility Problem: What Fifteen Years of Automated Program Repair Research Tells Us About Codex Security</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-plausibility-problem-what-fifteen-years-of-automated-program-repair-research/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-plausibility-problem-what-fifteen-years-of-automated-program-repair-research/</guid><description>OpenAI&apos;s Codex Security promises AI-generated patches for detected vulnerabilities. A field called Automated Program Repair has been wrestling with the same problem since 2010, and its lessons are directly relevant.</description><pubDate>Sat, 14 Mar 2026 01:13:01 GMT</pubDate></item><item><title>The Isochrony Problem: What Makes AI Dubbing Actually Hard</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-isochrony-problem-what-makes-ai-dubbing-actually-hard/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-isochrony-problem-what-makes-ai-dubbing-actually-hard/</guid><description>Descript&apos;s AI dubbing pipeline, built on OpenAI&apos;s APIs, solves a constraint satisfaction problem that has nothing to do with translation quality. The real difficulty is making speech fit time.</description><pubDate>Sat, 14 Mar 2026 03:27:17 GMT</pubDate></item><item><title>The Propagation Principle: How Conditional Impls Make Rust Generics Composable</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-propagation-principle-how-conditional-impls-make-rust-generics-composable/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-propagation-principle-how-conditional-impls-make-rust-generics-composable/</guid><description>Conditional impls in Rust use where clauses to implement traits for generic types only when their type parameters meet specific conditions, threading capabilities like Clone, DoubleEndedIterator, and Send through arbitrarily deep generic nesting automatically.</description><pubDate>Sat, 14 Mar 2026 01:28:54 GMT</pubDate></item><item><title>The Retrieval Generalization Problem That Dense Embeddings Never Solved</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-retrieval-generalization-problem-that-dense-embeddings-never-solved/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-retrieval-generalization-problem-that-dense-embeddings-never-solved/</guid><description>NVIDIA&apos;s NeMo Retriever wraps RAG in a ReACT-style agent loop, letting an LLM iteratively refine retrieval queries across multiple calls. The benchmark results reveal a real trade-off between dataset-specific specialization and cross-domain robustness.</description><pubDate>Sat, 14 Mar 2026 01:14:16 GMT</pubDate></item><item><title>The Recursive Generator Problem That Kept std::generator Out of C++20</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-recursive-generator-problem-that-kept-std-generator-out-of-c-20/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-recursive-generator-problem-that-kept-std-generator-out-of-c-20/</guid><description>C++20 shipped co_yield as a language keyword but deliberately omitted std::generator. The core reason was a real stack-growth problem in recursive generators that required a new library primitive to solve correctly.</description><pubDate>Sat, 14 Mar 2026 04:04:45 GMT</pubDate></item><item><title>The Retriever as a Tool: Inside NVIDIA NeMo&apos;s Agentic RAG Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-retriever-as-a-tool-inside-nvidia-nemo-s-agentic-rag-architecture/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-retriever-as-a-tool-inside-nvidia-nemo-s-agentic-rag-architecture/</guid><description>NVIDIA&apos;s NeMo Retriever wraps dense embedding retrieval in a ReACT reasoning loop and hits top-2 on two major benchmarks without task-specific tuning. Here&apos;s what the architecture trade-offs actually look like, and when the cost is worth it.</description><pubDate>Sat, 14 Mar 2026 01:19:13 GMT</pubDate></item><item><title>The Subcommand Architecture Problem That Python CLI Tools Never Fully Solved</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-subcommand-architecture-problem-that-python-cli-tools-never-fully-solved/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-subcommand-architecture-problem-that-python-cli-tools-never-fully-solved/</guid><description>Startup time and binary distribution get the headlines when comparing Rust and Python for CLI tools. The more interesting story is structural: how Rust&apos;s enum-based subcommand model changes what it means to maintain a CLI as it grows.</description><pubDate>Sat, 14 Mar 2026 01:24:41 GMT</pubDate></item><item><title>The Surveillance Infrastructure Hidden Inside Child Safety Laws</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-surveillance-infrastructure-hidden-inside-child-safety-laws/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-surveillance-infrastructure-hidden-inside-child-safety-laws/</guid><description>Age verification laws require building identity-linked access logs held by unregulated third parties, and the precedents from CIPA and SESTA-FOSTA show what that infrastructure becomes over time.</description><pubDate>Sat, 14 Mar 2026 02:23:22 GMT</pubDate></item><item><title>The Verification Problem That Closed-Loop Security Patching Has to Solve</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-verification-problem-that-closed-loop-security-patching-has-to-solve/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-verification-problem-that-closed-loop-security-patching-has-to-solve/</guid><description>OpenAI&apos;s Codex Security enters a research space with a 15-year history of automated program repair. The hard part was never writing the patch; it was knowing whether the patch is correct.</description><pubDate>Sat, 14 Mar 2026 02:32:36 GMT</pubDate></item><item><title>Two C++ Coroutine Problems That Libraries Cannot Fix</title><link>https://nebelwolfi.xyz/blog/2026-03-14-two-c-coroutine-problems-that-libraries-cannot-fix/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-two-c-coroutine-problems-that-libraries-cannot-fix/</guid><description>Andrzej Krzemieński&apos;s coroutine critique targets two structural problems that no library work resolves: reference parameters that dangle silently across suspension points, and coroutines that are syntactically indistinguishable from regular functions at the call site.</description><pubDate>Sat, 14 Mar 2026 01:54:02 GMT</pubDate></item><item><title>Visible Reasoning as a Safety Layer: Why Plausibility Is Not Faithfulness</title><link>https://nebelwolfi.xyz/blog/2026-03-14-visible-reasoning-as-a-safety-layer-why-plausibility-is-not-faithfulness/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-visible-reasoning-as-a-safety-layer-why-plausibility-is-not-faithfulness/</guid><description>OpenAI argues that chain-of-thought reasoning creates a safety inspection surface for reasoning models, but empirical research on CoT faithfulness complicates that argument in ways that matter for how much autonomy these models should have.</description><pubDate>Sat, 14 Mar 2026 02:12:47 GMT</pubDate></item><item><title>What Compiling Scheme to Wasm Reveals About Wasm as a Target</title><link>https://nebelwolfi.xyz/blog/2026-03-14-what-compiling-scheme-to-wasm-reveals-about-wasm-as-a-target/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-what-compiling-scheme-to-wasm-reveals-about-wasm-as-a-target/</guid><description>Eli Bendersky&apos;s Scheme-to-WebAssembly compiler exposes three problems that toy tutorials skip entirely: proper tail calls, GC-managed closures, and first-class continuations. The proposals that shipped in 2023-2024 finally make clean solutions possible, and that matters for every language with similar semantics.</description><pubDate>Sat, 14 Mar 2026 02:43:53 GMT</pubDate></item><item><title>What Amazon&apos;s Mandatory AI Meeting Signals</title><link>https://nebelwolfi.xyz/blog/2026-03-14-what-amazon-s-mandatory-ai-meeting-signals/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-what-amazon-s-mandatory-ai-meeting-signals/</guid><description>Amazon&apos;s mandatory all-hands engineering meeting after AI-related outages follows a recognizable corporate governance pattern. The meeting signals organizational priority, but the durable response requires tooling, not just process.</description><pubDate>Sat, 14 Mar 2026 01:19:29 GMT</pubDate></item><item><title>What It Actually Means to Execute Programs Inside a Transformer</title><link>https://nebelwolfi.xyz/blog/2026-03-14-what-it-actually-means-to-execute-programs-inside-a-transformer/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-what-it-actually-means-to-execute-programs-inside-a-transformer/</guid><description>A technical deep-dive into the circuit complexity theory behind the claim that transformers can execute arbitrary programs during the forward pass, tracing the lineage from RASP to looped transformer constructions and what the &apos;exponential speedup&apos; claim actually means.</description><pubDate>Sat, 14 Mar 2026 01:38:50 GMT</pubDate></item><item><title>What the Model Actually Does with Your CLAUDE.md</title><link>https://nebelwolfi.xyz/blog/2026-03-14-what-the-model-actually-does-with-your-claude-md/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-what-the-model-actually-does-with-your-claude-md/</guid><description>Knowledge priming works, but not for the reasons most developers assume. Understanding the mechanics at the model level, including context window positioning, token budgeting, and the signal-to-noise ratio problem, changes how you write and maintain priming files.</description><pubDate>Sat, 14 Mar 2026 03:39:20 GMT</pubDate></item><item><title>When Rust&apos;s Trait Solver Meets Higher-Kinded Types: A Story About Inductive Cycles and Compiler Grief</title><link>https://nebelwolfi.xyz/blog/2026-03-14-when-rust-s-trait-solver-meets-higher-kinded-types-a-story-about-inductive-cycle/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-when-rust-s-trait-solver-meets-higher-kinded-types-a-story-about-inductive-cycle/</guid><description>Emulating higher-kinded types in Rust with GATs and trait gymnastics can drive rustc into inductive cycles that crash or hang the compiler. Here&apos;s what&apos;s actually happening beneath the surface.</description><pubDate>Sat, 14 Mar 2026 10:15:25 GMT</pubDate></item><item><title>When the AI Security Scanner Reads Adversarial Code</title><link>https://nebelwolfi.xyz/blog/2026-03-14-when-the-ai-security-scanner-reads-adversarial-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-when-the-ai-security-scanner-reads-adversarial-code/</guid><description>OpenAI&apos;s Codex Security agent reads your entire codebase to reason about vulnerabilities, but that same capability creates a specific attack surface: adversarial instructions embedded in code can influence the agent&apos;s reasoning, potentially suppressing findings or manufacturing false confidence.</description><pubDate>Sat, 14 Mar 2026 02:39:57 GMT</pubDate></item><item><title>Why C++ Has Fifteen Ways to Filter a Container</title><link>https://nebelwolfi.xyz/blog/2026-03-14-why-c-has-fifteen-ways-to-filter-a-container/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-why-c-has-fifteen-ways-to-filter-a-container/</guid><description>Counting the methods for filtering a container in C++ reveals a stratigraphic record of the language&apos;s evolution, from the erase-remove idiom to C++20 ranges and beyond. Understanding which layer to use is what separates modern C++ from legacy C++.</description><pubDate>Sat, 14 Mar 2026 03:42:50 GMT</pubDate></item><item><title>Why JSPI Is the Right Fix for WebAssembly&apos;s Async Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-14-why-jspi-is-the-right-fix-for-webassembly-s-async-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-why-jspi-is-the-right-fix-for-webassembly-s-async-problem/</guid><description>JavaScript Promise Integration (JSPI) solves the structural mismatch between WebAssembly&apos;s synchronous execution model and the browser&apos;s async-first environment at the engine level, replacing the compiler-transform workarounds that have dominated the ecosystem for years.</description><pubDate>Sat, 14 Mar 2026 01:39:26 GMT</pubDate></item><item><title>Why Your Team Keeps Paying for the Same AI Context, Session After Session</title><link>https://nebelwolfi.xyz/blog/2026-03-14-why-your-team-keeps-paying-for-the-same-ai-context-session-after-session/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-why-your-team-keeps-paying-for-the-same-ai-context-session-after-session/</guid><description>Rahul Garg&apos;s knowledge priming pattern on Martin Fowler&apos;s blog reframes AI coding friction as a team coordination problem, not a model quality problem. The economic case for proactive context investment compounds across every developer and every session.</description><pubDate>Sat, 14 Mar 2026 02:50:56 GMT</pubDate></item><item><title>Windows UTF-16 Conversion: The API Flags Most C++ Code Gets Wrong</title><link>https://nebelwolfi.xyz/blog/2026-03-14-windows-utf-16-conversion-the-api-flags-most-c-code-gets-wrong/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-windows-utf-16-conversion-the-api-flags-most-c-code-gets-wrong/</guid><description>A technical look at WideCharToMultiByte and MultiByteToWideChar, the two-pass sizing pattern, surrogate pair handling, and why the deprecated std::codecvt family quietly corrupts data.</description><pubDate>Sat, 14 Mar 2026 01:41:31 GMT</pubDate></item><item><title>Environment Isolation for AI Agents Is an Old Problem With Older Solutions</title><link>https://nebelwolfi.xyz/blog/2026-03-14-environment-isolation-for-ai-agents-is-an-old-problem-with-older-solutions/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-environment-isolation-for-ai-agents-is-an-old-problem-with-older-solutions/</guid><description>The requirements for running parallel AI coding agents, isolated filesystem state and scoped environment variables, are the same requirements that motivated chroot in 1979 and virtualenv in 2007. Git worktrees and direnv already cover both.</description><pubDate>Sat, 14 Mar 2026 14:48:44 GMT</pubDate></item><item><title>Conversation Over Completion: What Claude Changes About Development Workflows</title><link>https://nebelwolfi.xyz/blog/2026-03-14-conversation-over-completion-what-claude-changes-about-development-workflows/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-conversation-over-completion-what-claude-changes-about-development-workflows/</guid><description>Steve Klabnik&apos;s guide to using Claude for software development highlights a real workflow shift. Claude&apos;s 200,000-token context window and conversation-oriented design make it fundamentally different from autocomplete-first tools like Copilot or Cursor, and those differences matter most for developers who care about correctness.</description><pubDate>Sat, 14 Mar 2026 14:49:48 GMT</pubDate></item><item><title>The Real Cost of Choosing Yjs for Collaborative Editing</title><link>https://nebelwolfi.xyz/blog/2026-03-14-the-real-cost-of-choosing-yjs-for-collaborative-editing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-the-real-cost-of-choosing-yjs-for-collaborative-editing/</guid><description>Yjs is the go-to CRDT library for collaborative editing, but Moment.dev&apos;s decision to abandon it reveals architectural constraints that matter the moment your use case goes beyond a text editor.</description><pubDate>Sat, 14 Mar 2026 19:19:32 GMT</pubDate></item><item><title>What It Actually Takes to Build a 2FA Desktop Client in Go</title><link>https://nebelwolfi.xyz/blog/2026-03-14-what-it-actually-takes-to-build-a-2fa-desktop-client-in-go/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-what-it-actually-takes-to-build-a-2fa-desktop-client-in-go/</guid><description>A technical deep-dive into building a TOTP desktop authenticator in Go, covering the algorithm, GUI framework trade-offs, secure secret storage, and QR code import, with concrete code examples throughout.</description><pubDate>Sat, 14 Mar 2026 19:17:18 GMT</pubDate></item><item><title>Yjs Tombstones and the Production Cost of Forever History</title><link>https://nebelwolfi.xyz/blog/2026-03-14-yjs-tombstones-and-the-production-cost-of-forever-history/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-yjs-tombstones-and-the-production-cost-of-forever-history/</guid><description>Yjs&apos;s CRDT model accumulates tombstones indefinitely, causing documents to balloon 10-100x their visible size in long-lived server contexts. Here&apos;s what that costs in practice, why GC rarely fires, and what the alternatives look like.</description><pubDate>Sat, 14 Mar 2026 19:23:25 GMT</pubDate></item><item><title>Building a TOTP Desktop Client in Go: Algorithm to Keychain</title><link>https://nebelwolfi.xyz/blog/2026-03-14-building-a-totp-desktop-client-in-go-algorithm-to-keychain/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-building-a-totp-desktop-client-in-go-algorithm-to-keychain/</guid><description>Building a 2FA desktop client in Go looks trivial until you account for secure secret storage, GUI framework trade-offs, and clipboard lifecycle. This post walks through the real engineering decisions.</description><pubDate>Sat, 14 Mar 2026 19:20:13 GMT</pubDate></item><item><title>Post-Mortem Debugging: What GDB Teaches You About Reading a Crash Scene</title><link>https://nebelwolfi.xyz/blog/2026-03-14-post-mortem-debugging-what-gdb-teaches-you-about-reading-a-crash-scene/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-post-mortem-debugging-what-gdb-teaches-you-about-reading-a-crash-scene/</guid><description>A deep dive into the craft of core dump analysis with GDB, exploring the methodology, key commands, and mental models that turn a crashed process into a solvable mystery.</description><pubDate>Sat, 14 Mar 2026 19:20:13 GMT</pubDate></item><item><title>When Public Records Become an Attack Surface: The Companies House Address Vulnerability</title><link>https://nebelwolfi.xyz/blog/2026-03-14-when-public-records-become-an-attack-surface-the-companies-house-address-vulnera/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-when-public-records-become-an-attack-surface-the-companies-house-address-vulnera/</guid><description>A newly disclosed vulnerability in Companies House allowed attackers to hijack UK companies by manipulating director address records, exposing a fundamental design flaw in how the UK&apos;s company registry handles identity and verification.</description><pubDate>Sat, 14 Mar 2026 19:25:57 GMT</pubDate></item><item><title>Debugging as a Game: What GDB Murder Mysteries Teach You That Tutorials Can&apos;t</title><link>https://nebelwolfi.xyz/blog/2026-03-14-debugging-as-a-game-what-gdb-murder-mysteries-teach-you-that-tutorials-can-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-14-debugging-as-a-game-what-gdb-murder-mysteries-teach-you-that-tutorials-can-t/</guid><description>A look at why interactive debugging challenges like GDB murder mysteries build crash-reading skills faster than documentation, with a tour of post-mortem techniques across language ecosystems.</description><pubDate>Sat, 14 Mar 2026 19:29:24 GMT</pubDate></item><item><title>Accountability Trees: The Structural Defense Against AI Slop</title><link>https://nebelwolfi.xyz/blog/2026-03-15-accountability-trees-the-structural-defense-against-ai-slop/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-accountability-trees-the-structural-defense-against-ai-slop/</guid><description>Tree-style invite systems make AI content flooding expensive by attaching human social accountability to account provisioning, not just account behavior. Here is why the architecture matters and what platform builders can learn from it.</description><pubDate>Sun, 15 Mar 2026 04:14:55 GMT</pubDate></item><item><title>The Case for Korean Keywords: Han, Rust, and the Persistent Dream of Non-English Code</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-case-for-korean-keywords-han-rust-and-the-persistent-dream-of-non-english-co/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-case-for-korean-keywords-han-rust-and-the-persistent-dream-of-non-english-co/</guid><description>Han is a statically-typed programming language written in Rust where every keyword is in Hangul. It&apos;s a new entry in a 60-year tradition of non-English languages worth understanding on its own terms.</description><pubDate>Sun, 15 Mar 2026 08:44:47 GMT</pubDate></item><item><title>Building a Programming Language in Hangul: Han, Unicode, and the Non-English Tradition</title><link>https://nebelwolfi.xyz/blog/2026-03-15-building-a-programming-language-in-hangul-han-unicode-and-the-non-english-tradit/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-building-a-programming-language-in-hangul-han-unicode-and-the-non-english-tradit/</guid><description>Han is a statically-typed programming language with Korean Hangul keywords, built in Rust with LLVM IR codegen and an LSP server. Here is why Hangul is technically tractable for a lexer, and where Han fits in the long history of non-English programming languages.</description><pubDate>Sun, 15 Mar 2026 08:44:53 GMT</pubDate></item><item><title>Every Language Supports Unicode Identifiers. Almost None Let You Write Keywords in Your Own Script.</title><link>https://nebelwolfi.xyz/blog/2026-03-15-every-language-supports-unicode-identifiers-almost-none-let-you-write-keywords-i/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-every-language-supports-unicode-identifiers-almost-none-let-you-write-keywords-i/</guid><description>Han, a new Korean programming language written in Rust, exposes a gap that&apos;s been sitting in plain sight for decades: Unicode identifier support and Unicode keyword support are completely different problems, and mainstream languages have only solved the easier one.</description><pubDate>Sun, 15 Mar 2026 08:46:25 GMT</pubDate></item><item><title>What the Rust Project&apos;s AI Survey Reveals About Language Design and LLMs</title><link>https://nebelwolfi.xyz/blog/2026-03-15-what-the-rust-project-s-ai-survey-reveals-about-language-design-and-llms/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-what-the-rust-project-s-ai-survey-reveals-about-language-design-and-llms/</guid><description>The Rust project&apos;s internal survey on AI tools reveals a community navigating real tension between Rust&apos;s philosophy of explicit correctness and the probabilistic nature of large language models. The findings say as much about language design as they do about AI.</description><pubDate>Sun, 15 Mar 2026 13:15:05 GMT</pubDate></item><item><title>The Memory War at Ring Zero: Inside Kernel Anti-Cheat Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-memory-war-at-ring-zero-inside-kernel-anti-cheat-architecture/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-memory-war-at-ring-zero-inside-kernel-anti-cheat-architecture/</guid><description>Kernel-mode anti-cheats like Vanguard, EasyAntiCheat, and BattlEye operate at ring 0 to counter kernel-level cheat drivers, relying on Windows callback infrastructure to monitor everything from process creation to handle access. Here is what that architecture actually looks like under the hood, and what deploying it at scale has cost.</description><pubDate>Sun, 15 Mar 2026 13:21:33 GMT</pubDate></item><item><title>Spotify&apos;s AI DJ and the Problem of Sounding Right Without Being Right</title><link>https://nebelwolfi.xyz/blog/2026-03-15-spotify-s-ai-dj-and-the-problem-of-sounding-right-without-being-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-spotify-s-ai-dj-and-the-problem-of-sounding-right-without-being-right/</guid><description>Spotify AI DJ couples a recommendation engine with a language model to generate DJ commentary, but the architecture means the LLM cannot verify what it is saying about the music it introduces. The result is confident commentary that frequently misfires on facts.</description><pubDate>Sun, 15 Mar 2026 13:14:17 GMT</pubDate></item><item><title>The Borrow Checker in the Age of Language Models</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-borrow-checker-in-the-age-of-language-models/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-borrow-checker-in-the-age-of-language-models/</guid><description>Niko Matsakis recently summarized perspectives from across the Rust project on AI tools, and the range of opinions reveals something important about how Rust&apos;s strict ownership model interacts with AI-assisted development in ways most coverage misses.</description><pubDate>Sun, 15 Mar 2026 13:14:48 GMT</pubDate></item><item><title>The Arms Race Below the OS: Kernel Anti-Cheats, DMA Hardware, and Why Software Cannot Win</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-arms-race-below-the-os-kernel-anti-cheats-dma-hardware-and-why-software-cann/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-arms-race-below-the-os-kernel-anti-cheats-dma-hardware-and-why-software-cann/</guid><description>Kernel anti-cheats moved detection into Ring 0 to outrun user-mode bypasses, but DMA hardware attackers bypass software entirely by reading game memory over PCIe, sitting permanently outside any software trust boundary.</description><pubDate>Sun, 15 Mar 2026 13:15:43 GMT</pubDate></item><item><title>Rust&apos;s Borrow Checker Is an AI Stress Test, and the Survey Results Show It</title><link>https://nebelwolfi.xyz/blog/2026-03-15-rust-s-borrow-checker-is-an-ai-stress-test-and-the-survey-results-show-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-rust-s-borrow-checker-is-an-ai-stress-test-and-the-survey-results-show-it/</guid><description>The Rust project&apos;s survey of member perspectives on AI tools reveals something more interesting than opinions: it exposes exactly where probabilistic code generation breaks down against a formally verified type system.</description><pubDate>Sun, 15 Mar 2026 13:15:42 GMT</pubDate></item><item><title>The Global Semaphore That Turns 192 Cores Into a Single-Threaded Mount Queue</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-global-semaphore-that-turns-192-cores-into-a-single-threaded-mount-queue/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-global-semaphore-that-turns-192-cores-into-a-single-threaded-mount-queue/</guid><description>Netflix&apos;s battle with Linux mount namespace lock contention reveals how a kernel subsystem designed for a handful of namespaces breaks down when you&apos;re running thousands of containers on modern NUMA hardware.</description><pubDate>Sun, 15 Mar 2026 13:31:09 GMT</pubDate></item><item><title>When /proc/self/mountinfo Becomes the Enemy: Linux Mount Namespace Contention at Scale</title><link>https://nebelwolfi.xyz/blog/2026-03-15-when-proc-self-mountinfo-becomes-the-enemy-linux-mount-namespace-contention-at-s/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-when-proc-self-mountinfo-becomes-the-enemy-linux-mount-namespace-contention-at-s/</guid><description>Netflix&apos;s &quot;Mount Mayhem&quot; post exposes a deep Linux kernel scalability problem: global locks in mount namespace code paths that serialize container workloads on high-core-count CPUs.</description><pubDate>Sun, 15 Mar 2026 13:17:22 GMT</pubDate></item><item><title>When Your Linux Kernel Becomes the Bottleneck: Container Density and the Mount Namespace Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-15-when-your-linux-kernel-becomes-the-bottleneck-container-density-and-the-mount-na/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-when-your-linux-kernel-becomes-the-bottleneck-container-density-and-the-mount-na/</guid><description>Netflix&apos;s investigation into container scaling on high-core-count NUMA servers reveals deep Linux kernel VFS internals and lock contention problems that affect anyone running containers at scale.</description><pubDate>Sun, 15 Mar 2026 13:17:20 GMT</pubDate></item><item><title>When Recommendation Becomes Theater: The Architectural Flaw in Spotify&apos;s AI DJ</title><link>https://nebelwolfi.xyz/blog/2026-03-15-when-recommendation-becomes-theater-the-architectural-flaw-in-spotify-s-ai-dj/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-when-recommendation-becomes-theater-the-architectural-flaw-in-spotify-s-ai-dj/</guid><description>Spotify&apos;s AI DJ wraps a genuinely excellent recommendation engine in a confabulated commentary layer, revealing a pattern of bolting LLMs onto functional AI systems in ways those systems cannot support.</description><pubDate>Sun, 15 Mar 2026 13:19:20 GMT</pubDate></item><item><title>When Recommendation Systems Learn to Speak</title><link>https://nebelwolfi.xyz/blog/2026-03-15-when-recommendation-systems-learn-to-speak/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-when-recommendation-systems-learn-to-speak/</guid><description>Spotify&apos;s AI DJ wires a language model onto a strong recommendation engine, but without grounding the LLM in verified catalog data, the result is a confident voice that makes factual claims it cannot support.</description><pubDate>Sun, 15 Mar 2026 13:19:43 GMT</pubDate></item><item><title>AI Can Write Your Rust, But Not Teach You Why It Compiles</title><link>https://nebelwolfi.xyz/blog/2026-03-15-ai-can-write-your-rust-but-not-teach-you-why-it-compiles/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-ai-can-write-your-rust-but-not-teach-you-why-it-compiles/</guid><description>The Rust project&apos;s AI survey inadvertently maps where programmer understanding is required versus optional, and the boundary falls exactly where the borrow checker bites hardest.</description><pubDate>Sun, 15 Mar 2026 13:21:00 GMT</pubDate></item><item><title>Before the Rust Project Sets AI Policy, It Mapped the Disagreement</title><link>https://nebelwolfi.xyz/blog/2026-03-15-before-the-rust-project-sets-ai-policy-it-mapped-the-disagreement/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-before-the-rust-project-sets-ai-policy-it-mapped-the-disagreement/</guid><description>Niko Matsakis recently published a summary of how Rust project members think about AI tools, and the document&apos;s value lies as much in its form as its content. Choosing to map disagreement without resolving it is a specific governance posture that other open-source infrastructure projects should consider.</description><pubDate>Sun, 15 Mar 2026 13:21:27 GMT</pubDate></item><item><title>Layered Verification: What the Rust Project&apos;s AI Survey Implies About Tooling Investment</title><link>https://nebelwolfi.xyz/blog/2026-03-15-layered-verification-what-the-rust-project-s-ai-survey-implies-about-tooling-inv/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-layered-verification-what-the-rust-project-s-ai-survey-implies-about-tooling-inv/</guid><description>The Rust project&apos;s survey on AI tools reveals that contributor skepticism tracks almost perfectly with verification gaps, not a wholesale rejection of AI. The path forward is tighter integration between AI tools and Rust&apos;s existing verification stack.</description><pubDate>Sun, 15 Mar 2026 13:21:51 GMT</pubDate></item><item><title>The NUMA Bottleneck Inside Linux Mount Namespace Propagation</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-numa-bottleneck-inside-linux-mount-namespace-propagation/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-numa-bottleneck-inside-linux-mount-namespace-propagation/</guid><description>Netflix traced CPU spikes on container hosts to Linux mount namespace peer group traversal. The problem scales poorly with container density and is amplified by the NUMA topology of modern multi-socket servers.</description><pubDate>Sun, 15 Mar 2026 13:22:42 GMT</pubDate></item><item><title>The Arms Race Below the OS: Kernel Anti-Cheats, DMA Hardware, and Why Software Alone Can&apos;t Win</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-arms-race-below-the-os-kernel-anti-cheats-dma-hardware-and-why-software-alon/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-arms-race-below-the-os-kernel-anti-cheats-dma-hardware-and-why-software-alon/</guid><description>Kernel-level anti-cheats like Vanguard and EasyAntiCheat operate at ring 0 to detect cheats, but hardware DMA attacks bypass the OS entirely. Here is how the full technical stack works and where the real frontier lies.</description><pubDate>Sun, 15 Mar 2026 13:23:17 GMT</pubDate></item><item><title>Container Runtimes Have a Better Mount API. Most Aren&apos;t Using It Yet.</title><link>https://nebelwolfi.xyz/blog/2026-03-15-container-runtimes-have-a-better-mount-api-most-aren-t-using-it-yet/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-container-runtimes-have-a-better-mount-api-most-aren-t-using-it-yet/</guid><description>Linux&apos;s fd-based mount API, available since kernel 5.2, fundamentally reduces the lock hold times driving Netflix-scale container contention. Container runtime adoption has been uneven, and the gap matters for operators who can&apos;t wait for kernel 6.8.</description><pubDate>Sun, 15 Mar 2026 13:26:18 GMT</pubDate></item><item><title>One Global Lock, 192 Cores: How Linux Mount Namespaces Break at Container Scale</title><link>https://nebelwolfi.xyz/blog/2026-03-15-one-global-lock-192-cores-how-linux-mount-namespaces-break-at-container-scale/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-one-global-lock-192-cores-how-linux-mount-namespaces-break-at-container-scale/</guid><description>Netflix found that /proc/self/mountinfo reads were serializing hundreds of container workloads through a single kernel lock on 192-core servers. The root cause traces back to how the Linux mount namespace architecture scales with core count and container density.</description><pubDate>Sun, 15 Mar 2026 13:26:37 GMT</pubDate></item><item><title>What Rust&apos;s AI Policy Debate Is Actually About</title><link>https://nebelwolfi.xyz/blog/2026-03-15-what-rust-s-ai-policy-debate-is-actually-about/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-what-rust-s-ai-policy-debate-is-actually-about/</guid><description>The Rust project&apos;s internal disagreements about AI tooling, summarized by Niko Matsakis in late February, trace back to a foundational question in language design: whether a type system&apos;s job is to catch errors or to encode intent. The answer matters more than it might seem.</description><pubDate>Sun, 15 Mar 2026 13:26:32 GMT</pubDate></item><item><title>Rust&apos;s Async Layer Is the Second Wall AI Code Generation Hits</title><link>https://nebelwolfi.xyz/blog/2026-03-15-rust-s-async-layer-is-the-second-wall-ai-code-generation-hits/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-rust-s-async-layer-is-the-second-wall-ai-code-generation-hits/</guid><description>The Rust project&apos;s AI survey centers discussion on the borrow checker, but Rust&apos;s async model, with its state machine semantics, cancellation contracts, and executor diversity, creates a separate and harder verification problem that most coverage of the survey overlooks.</description><pubDate>Sun, 15 Mar 2026 13:28:27 GMT</pubDate></item><item><title>Container Density and the Third Wave of Linux Global Lock Bottlenecks</title><link>https://nebelwolfi.xyz/blog/2026-03-15-container-density-and-the-third-wave-of-linux-global-lock-bottlenecks/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-container-density-and-the-third-wave-of-linux-global-lock-bottlenecks/</guid><description>Netflix&apos;s mount namespace CPU saturation on 192-core hosts follows a pattern Linux has cycled through before: a global lock designed for low core counts becomes a serialization bottleneck at container density, and the kernel fix always takes years to reach production.</description><pubDate>Sun, 15 Mar 2026 13:28:46 GMT</pubDate></item><item><title>What 28 Years of curl Metrics Actually Tell You About Open-Source Software</title><link>https://nebelwolfi.xyz/blog/2026-03-15-what-28-years-of-curl-metrics-actually-tell-you-about-open-source-software/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-what-28-years-of-curl-metrics-actually-tell-you-about-open-source-software/</guid><description>Daniel Stenberg published 100 graphs tracking curl&apos;s history, and the data reveals something more interesting than growth curves: what sustained, disciplined open-source maintenance looks like over nearly three decades.</description><pubDate>Sun, 15 Mar 2026 13:30:47 GMT</pubDate></item><item><title>Mistakes Are the Best Data You Will Never Collect</title><link>https://nebelwolfi.xyz/blog/2026-03-15-mistakes-are-the-best-data-you-will-never-collect/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-mistakes-are-the-best-data-you-will-never-collect/</guid><description>Most AI personalization systems treat user corrections as noise to suppress rather than signal to amplify. Building mistake-aware user models requires rethinking how corrections flow through retrieval, context, and fine-tuning pipelines.</description><pubDate>Sun, 15 Mar 2026 13:33:35 GMT</pubDate></item><item><title>Linux Mount Peer Groups and the O(n) Work Problem Hidden Inside Lock Contention</title><link>https://nebelwolfi.xyz/blog/2026-03-15-linux-mount-peer-groups-and-the-o-n-work-problem-hidden-inside-lock-contention/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-linux-mount-peer-groups-and-the-o-n-work-problem-hidden-inside-lock-contention/</guid><description>Netflix&apos;s container scaling bottleneck traces back to mount propagation peer groups that turn each bind mount into O(n) kernel work, with the global namespace lock serializing the whole thing on modern many-core hardware.</description><pubDate>Sun, 15 Mar 2026 13:48:21 GMT</pubDate></item><item><title>The Rust AI Training Problem Is More Than a Volume Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-rust-ai-training-problem-is-more-than-a-volume-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-rust-ai-training-problem-is-more-than-a-volume-problem/</guid><description>AI models struggle with Rust partly because there&apos;s less of it in training data, but the more precise issue is that significant portions of the Rust corpus teach patterns from earlier epochs that still compile but are no longer correct or idiomatic.</description><pubDate>Sun, 15 Mar 2026 13:43:34 GMT</pubDate></item><item><title>Ninety-Six Dollars and a Gyroscope: What DIY Guided Rocketry Actually Looks Like</title><link>https://nebelwolfi.xyz/blog/2026-03-15-ninety-six-dollars-and-a-gyroscope-what-diy-guided-rocketry-actually-looks-like/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-ninety-six-dollars-and-a-gyroscope-what-diy-guided-rocketry-actually-looks-like/</guid><description>A $96 3D-printed rocket with mid-air trajectory recalculation using a $5 IMU sensor raises real questions about the engineering floor for active guidance systems, and the embedded systems story behind it is worth understanding.</description><pubDate>Sun, 15 Mar 2026 18:16:50 GMT</pubDate></item><item><title>Fifty Grams of Silicon, One Guided Rocket: The Real Engineering Behind $5 Trajectory Correction</title><link>https://nebelwolfi.xyz/blog/2026-03-15-fifty-grams-of-silicon-one-guided-rocket-the-real-engineering-behind-5-trajector/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-fifty-grams-of-silicon-one-guided-rocket-the-real-engineering-behind-5-trajector/</guid><description>A hobbyist built a $96 3D-printed guided rocket using a cheap MEMS sensor for mid-flight trajectory correction. Here&apos;s what it actually takes to make that work, and why the sensor cost matters less than you&apos;d expect.</description><pubDate>Sun, 15 Mar 2026 18:14:09 GMT</pubDate></item><item><title>TCP Hole Punching and the Elegance of Simultaneous Open</title><link>https://nebelwolfi.xyz/blog/2026-03-15-tcp-hole-punching-and-the-elegance-of-simultaneous-open/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-tcp-hole-punching-and-the-elegance-of-simultaneous-open/</guid><description>TCP hole punching is harder than UDP NAT traversal by design, but a little-known feature of RFC 793 makes direct P2P connections through NAT genuinely possible. Here&apos;s how it works at the socket level.</description><pubDate>Sun, 15 Mar 2026 18:14:48 GMT</pubDate></item><item><title>TCP Hole Punching Is Harder Than You Think, and That&apos;s What Makes It Interesting</title><link>https://nebelwolfi.xyz/blog/2026-03-15-tcp-hole-punching-is-harder-than-you-think-and-that-s-what-makes-it-interesting/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-tcp-hole-punching-is-harder-than-you-think-and-that-s-what-makes-it-interesting/</guid><description>TCP hole punching exploits a legitimate but rarely-used TCP state machine path to establish peer-to-peer connections through NAT. Here&apos;s the real engineering behind it.</description><pubDate>Sun, 15 Mar 2026 18:14:53 GMT</pubDate></item><item><title>Two SYNs, One Connection: The TCP Simultaneous Open Path Through NAT</title><link>https://nebelwolfi.xyz/blog/2026-03-15-two-syns-one-connection-the-tcp-simultaneous-open-path-through-nat/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-two-syns-one-connection-the-tcp-simultaneous-open-path-through-nat/</guid><description>TCP hole punching is usually dismissed as impractical compared to UDP, but a closer look at RFC 793&apos;s simultaneous open mechanism reveals a clean, standards-compliant path for NAT traversal that has been sitting in every TCP stack since 1981.</description><pubDate>Sun, 15 Mar 2026 18:16:12 GMT</pubDate></item><item><title>TCP Hole Punching and the Simultaneous Open Nobody Uses</title><link>https://nebelwolfi.xyz/blog/2026-03-15-tcp-hole-punching-and-the-simultaneous-open-nobody-uses/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-tcp-hole-punching-and-the-simultaneous-open-nobody-uses/</guid><description>TCP hole punching is possible without a relay server, but it requires exploiting a corner of RFC 793 that most programmers never encounter: simultaneous open. Here is how the state machine works, where the socket API fights you, and what makes a clean formulation of the algorithm possible.</description><pubDate>Sun, 15 Mar 2026 18:17:49 GMT</pubDate></item><item><title>From Server-Sent Events to Streamable HTTP: How MCP Fixed Its Deployment Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-15-from-server-sent-events-to-streamable-http-how-mcp-fixed-its-deployment-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-from-server-sent-events-to-streamable-http-how-mcp-fixed-its-deployment-problem/</guid><description>MCP&apos;s original HTTP+SSE transport conflicted with standard deployment infrastructure, and the 2025 spec revision replaced it with Streamable HTTP. A year later, the ecosystem is still sorting out what actually changed and what did not.</description><pubDate>Sun, 15 Mar 2026 18:22:54 GMT</pubDate></item><item><title>The Transport Problem at the Heart of MCP</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-transport-problem-at-the-heart-of-mcp/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-transport-problem-at-the-heart-of-mcp/</guid><description>Anthropic&apos;s Model Context Protocol got the abstraction right but shipped the wrong transport, and the ecosystem is still dealing with the consequences. Here&apos;s what broke, what&apos;s being fixed, and why MCP probably won anyway.</description><pubDate>Sun, 15 Mar 2026 18:20:56 GMT</pubDate></item><item><title>SO_REUSEPORT and a 1981 RFC: How TCP Hole Punching Works at the Socket Level</title><link>https://nebelwolfi.xyz/blog/2026-03-15-so-reuseport-and-a-1981-rfc-how-tcp-hole-punching-works-at-the-socket-level/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-so-reuseport-and-a-1981-rfc-how-tcp-hole-punching-works-at-the-socket-level/</guid><description>TCP&apos;s simultaneous open state, defined in RFC 793 and almost never triggered intentionally, turns out to be the cleanest mechanism for establishing peer-to-peer connections through NAT, provided you understand what happens at both the socket API and the NAT state table.</description><pubDate>Sun, 15 Mar 2026 18:21:32 GMT</pubDate></item><item><title>The Layout Oracle Pattern: How River Compositor Recovered X11&apos;s Best Accident</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-layout-oracle-pattern-how-river-compositor-recovered-x11-s-best-accident/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-layout-oracle-pattern-how-river-compositor-recovered-x11-s-best-accident/</guid><description>River, a Wayland compositor written in Zig, separates window layout from compositing by delegating placement decisions to external processes via a typed protocol — recovering the modularity that X11&apos;s window manager ecosystem had by accident.</description><pubDate>Sun, 15 Mar 2026 18:24:05 GMT</pubDate></item><item><title>River&apos;s Layout Protocol and the Problem Wayland Created for Window Managers</title><link>https://nebelwolfi.xyz/blog/2026-03-15-river-s-layout-protocol-and-the-problem-wayland-created-for-window-managers/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-river-s-layout-protocol-and-the-problem-wayland-created-for-window-managers/</guid><description>River, the Wayland compositor written in Zig, solves a fundamental Wayland design tension by externalizing tiling logic through the river-layout-v3 protocol, enabling an ecosystem of swappable layout generators while keeping the compositor lean.</description><pubDate>Sun, 15 Mar 2026 18:26:42 GMT</pubDate></item><item><title>Velocity Is Not Productivity, and AI Codegen Is Making That Gap Visible</title><link>https://nebelwolfi.xyz/blog/2026-03-15-velocity-is-not-productivity-and-ai-codegen-is-making-that-gap-visible/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-velocity-is-not-productivity-and-ai-codegen-is-making-that-gap-visible/</guid><description>AI coding tools make code generation faster, but faster code generation is not the same as better software delivery. A look at what the productivity research actually measures, where the hidden costs accumulate, and why the metrics most teams use are optimizing for the wrong thing.</description><pubDate>Sun, 15 Mar 2026 18:31:40 GMT</pubDate></item><item><title>Building LLM Agents Is Mostly About the Scaffolding</title><link>https://nebelwolfi.xyz/blog/2026-03-15-building-llm-agents-is-mostly-about-the-scaffolding/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-building-llm-agents-is-mostly-about-the-scaffolding/</guid><description>Agentic engineering is the practice of building reliable multi-step LLM systems, and the hard parts are context management, error recovery, and loop design, not model capability. A look at the patterns that separate working agents from production-ready systems.</description><pubDate>Sun, 15 Mar 2026 22:55:39 GMT</pubDate></item><item><title>The Engineering Discipline Hiding Inside Agentic AI</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-engineering-discipline-hiding-inside-agentic-ai/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-engineering-discipline-hiding-inside-agentic-ai/</guid><description>Agentic engineering is not chatbots with extra features. When you give an LLM tools and let it loop, you get a new category of software with distinct failure modes, security surfaces, and observability requirements.</description><pubDate>Sun, 15 Mar 2026 22:56:07 GMT</pubDate></item><item><title>Agentic Engineering Is an Architecture Problem, Not a Prompt Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-15-agentic-engineering-is-an-architecture-problem-not-a-prompt-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-agentic-engineering-is-an-architecture-problem-not-a-prompt-problem/</guid><description>Agentic engineering is the discipline of building reliable systems around LLM feedback loops, where a model takes actions, observes results, and decides what to do next. The real work is in the architecture: managing context accumulation, compounding errors, and non-deterministic costs.</description><pubDate>Sun, 15 Mar 2026 22:58:12 GMT</pubDate></item><item><title>The Business Model Hidden Inside a 49-Megabyte News Page</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-business-model-hidden-inside-a-49-megabyte-news-page/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-business-model-hidden-inside-a-49-megabyte-news-page/</guid><description>A technical breakdown of how modern news websites balloon to dozens of megabytes, driven not by editorial content but by the ad tech, tracking, and surveillance infrastructure embedded in every page load.</description><pubDate>Sun, 15 Mar 2026 22:58:13 GMT</pubDate></item><item><title>Agents Are Mostly Scaffolding: What Agentic Engineering Actually Is</title><link>https://nebelwolfi.xyz/blog/2026-03-15-agents-are-mostly-scaffolding-what-agentic-engineering-actually-is/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-agents-are-mostly-scaffolding-what-agentic-engineering-actually-is/</guid><description>Agentic engineering is the discipline of building systems where LLMs take sequences of actions toward goals, and the surprising truth is that the LLM itself is rarely where the hard work lives.</description><pubDate>Sun, 15 Mar 2026 22:59:16 GMT</pubDate></item><item><title>Claude Code Can Write Your Dotfiles, But It Cannot Own Your System State</title><link>https://nebelwolfi.xyz/blog/2026-03-15-claude-code-can-write-your-dotfiles-but-it-cannot-own-your-system-state/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-claude-code-can-write-your-dotfiles-but-it-cannot-own-your-system-state/</guid><description>Using Claude Code to configure an Arch Linux install reveals exactly where LLM agents are strong and where they break down: text manipulation is easy, system state is hard, and the gap between the two is where things get interesting.</description><pubDate>Sun, 15 Mar 2026 23:04:49 GMT</pubDate></item><item><title>Designing Memory for Agents That Outlast a Single Context Window</title><link>https://nebelwolfi.xyz/blog/2026-03-15-designing-memory-for-agents-that-outlast-a-single-context-window/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-designing-memory-for-agents-that-outlast-a-single-context-window/</guid><description>When agents need to maintain state across sessions or complex multi-step tasks, the context window alone is not enough. A look at memory architecture, retrieval strategies, and explicit state design for production agentic systems.</description><pubDate>Sun, 15 Mar 2026 23:00:39 GMT</pubDate></item><item><title>The Primary Lever in Agentic Engineering Changes at Every Level</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-primary-lever-in-agentic-engineering-changes-at-every-level/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-primary-lever-in-agentic-engineering-changes-at-every-level/</guid><description>Agentic engineering is not just prompt engineering with extra steps. What determines reliability shifts fundamentally as systems move from single tool calls to multi-step planning, and building for the wrong level is one of the most common ways teams get stuck.</description><pubDate>Sun, 15 Mar 2026 23:01:49 GMT</pubDate></item><item><title>What GitTop Reveals About Fully Agentic Coding in Practice</title><link>https://nebelwolfi.xyz/blog/2026-03-15-what-gittop-reveals-about-fully-agentic-coding-in-practice/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-what-gittop-reveals-about-fully-agentic-coding-in-practice/</guid><description>hjr265&apos;s GitTop project, a terminal TUI for git repository activity built entirely by an LLM agent, is a useful case study in what &apos;fully agentic&apos; coding actually means, where the workflow earns its place, and where it still hands the hard problems back to you.</description><pubDate>Sun, 15 Mar 2026 23:02:37 GMT</pubDate></item><item><title>What the Tool-Use Loop Reveals About Agentic Engineering</title><link>https://nebelwolfi.xyz/blog/2026-03-15-what-the-tool-use-loop-reveals-about-agentic-engineering/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-what-the-tool-use-loop-reveals-about-agentic-engineering/</guid><description>Agentic engineering is becoming a recognizable discipline, and the tool-use loop at its center introduces context management, reliability, and security concerns that look far more like distributed systems design than prompt crafting.</description><pubDate>Sun, 15 Mar 2026 23:02:50 GMT</pubDate></item><item><title>Below the CVE Scanner: How StageX Approaches the Bootstrap Trust Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-15-below-the-cve-scanner-how-stagex-approaches-the-bootstrap-trust-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-below-the-cve-scanner-how-stagex-approaches-the-bootstrap-trust-problem/</guid><description>Most container security work focuses on known CVEs and image signatures, but StageX targets the layer underneath: whether the build toolchain itself is trustworthy, through bootstrappable builds and reproducible outputs that enable distributed verification.</description><pubDate>Sun, 15 Mar 2026 23:03:08 GMT</pubDate></item><item><title>Chrome DevTools MCP Lets Agents Debug Real Sessions, Not Reproductions</title><link>https://nebelwolfi.xyz/blog/2026-03-15-chrome-devtools-mcp-lets-agents-debug-real-sessions-not-reproductions/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-chrome-devtools-mcp-lets-agents-debug-real-sessions-not-reproductions/</guid><description>Chrome DevTools MCP connects AI coding agents directly to a live, authenticated Chrome session via the Chrome DevTools Protocol, giving them access to the JS debugger, network traffic, and console state that headless automation tools deliberately strip away.</description><pubDate>Sun, 15 Mar 2026 23:05:51 GMT</pubDate></item><item><title>The Entire Linux Supply Chain Is a Trust Stack, and StageX Wants to Audit All of It</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-entire-linux-supply-chain-is-a-trust-stack-and-stagex-wants-to-audit-all-of-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-entire-linux-supply-chain-is-a-trust-stack-and-stagex-wants-to-audit-all-of-/</guid><description>StageX is a Linux distribution built on reproducible, bootstrappable builds that eliminate single points of failure across the software supply chain, from the initial bootstrap binary through to container image delivery.</description><pubDate>Sun, 15 Mar 2026 23:03:47 GMT</pubDate></item><item><title>The Connection Overhead Hidden in 100 Third-Party Origins</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-connection-overhead-hidden-in-100-third-party-origins/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-connection-overhead-hidden-in-100-third-party-origins/</guid><description>A 49MB news page is a payload problem, but the deeper performance issue is origin count: every distinct domain triggers DNS, TCP, and TLS overhead that bytes-transferred numbers never capture.</description><pubDate>Sun, 15 Mar 2026 23:04:07 GMT</pubDate></item><item><title>Testing Agents When the Path Is Variable and Only the Outcome Matters</title><link>https://nebelwolfi.xyz/blog/2026-03-15-testing-agents-when-the-path-is-variable-and-only-the-outcome-matters/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-testing-agents-when-the-path-is-variable-and-only-the-outcome-matters/</guid><description>Conventional unit tests break for agentic systems because the execution path is non-deterministic. This post covers outcome evaluation, LLM-as-judge, benchmark datasets, trace-based debugging, and eval-driven development as the practical discipline that separates demo agents from production systems.</description><pubDate>Sun, 15 Mar 2026 23:04:18 GMT</pubDate></item><item><title>The Scaffolding Is the Point: Notes on Agentic Engineering</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-scaffolding-is-the-point-notes-on-agentic-engineering/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-scaffolding-is-the-point-notes-on-agentic-engineering/</guid><description>Agentic engineering is the discipline of building reliable scaffolding around language models that act in loops. The hard problems have nothing to do with prompting.</description><pubDate>Sun, 15 Mar 2026 23:04:17 GMT</pubDate></item><item><title>CDP Meets MCP: Why Your Coding Agent Should Debug Your Real Browser Session</title><link>https://nebelwolfi.xyz/blog/2026-03-15-cdp-meets-mcp-why-your-coding-agent-should-debug-your-real-browser-session/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-cdp-meets-mcp-why-your-coding-agent-should-debug-your-real-browser-session/</guid><description>Chrome&apos;s DevTools MCP server connects AI coding agents to your live browser session via CDP, not a clean-slate automation context, and that distinction changes what debugging with an agent actually looks like.</description><pubDate>Sun, 15 Mar 2026 23:04:31 GMT</pubDate></item><item><title>Agentic Engineering Is Distributed Systems With One New Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-15-agentic-engineering-is-distributed-systems-with-one-new-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-agentic-engineering-is-distributed-systems-with-one-new-problem/</guid><description>Most of the hard problems in agentic systems already have names from distributed systems design. Understanding where the patterns come from clarifies what is genuinely new about building systems with a probabilistic decision function at the center.</description><pubDate>Sun, 15 Mar 2026 23:04:50 GMT</pubDate></item><item><title>The Scaffolding Is the Software: Engineering for LLM Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-scaffolding-is-the-software-engineering-for-llm-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-scaffolding-is-the-software-engineering-for-llm-agents/</guid><description>Agentic engineering is not primarily about choosing the right model. The scaffolding surrounding the LLM, the agent loop, context management, tool design, and retry discipline, determines whether a system works or fails in production.</description><pubDate>Sun, 15 Mar 2026 23:05:56 GMT</pubDate></item><item><title>The Decisions Inside Agent-Written Code That Nobody Explicitly Made</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-decisions-inside-agent-written-code-that-nobody-explicitly-made/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-decisions-inside-agent-written-code-that-nobody-explicitly-made/</guid><description>When an LLM agent writes your project end-to-end, it fills every unspecified gap with judgment calls you never made. hjr265&apos;s GitTop experiment is a useful lens for understanding what that costs you later.</description><pubDate>Sun, 15 Mar 2026 23:06:25 GMT</pubDate></item><item><title>The Rendering Gap: Why Unicode Attacks on npm Keep Working</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-rendering-gap-why-unicode-attacks-on-npm-keep-working/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-rendering-gap-why-unicode-attacks-on-npm-keep-working/</guid><description>Glassworm, a campaign embedding invisible Unicode characters in npm packages to hide malicious payloads, is back. This post traces the attack families behind it, why JavaScript and npm are uniquely exposed, and why four years of patches still have not closed the gap.</description><pubDate>Sun, 15 Mar 2026 23:07:50 GMT</pubDate></item><item><title>What V8 Has to Do With 5MB of Third-Party JavaScript</title><link>https://nebelwolfi.xyz/blog/2026-03-15-what-v8-has-to-do-with-5mb-of-third-party-javascript/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-what-v8-has-to-do-with-5mb-of-third-party-javascript/</guid><description>Transfer size and connection count explain why a news page is slow to download, but the CPU work that follows in V8&apos;s parse-compile-execute pipeline is where the user experience actually breaks, especially on the hardware most people own.</description><pubDate>Sun, 15 Mar 2026 23:07:46 GMT</pubDate></item><item><title>Why Real-Time Terminal Tools Are a Useful Benchmark for Agentic Code Generation</title><link>https://nebelwolfi.xyz/blog/2026-03-15-why-real-time-terminal-tools-are-a-useful-benchmark-for-agentic-code-generation/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-why-real-time-terminal-tools-are-a-useful-benchmark-for-agentic-code-generation/</guid><description>hjr265 built GitTop, a real-time git activity viewer built entirely by an LLM agent, revealing why htop-style tools sit in a favorable zone for agent-generated code and where the visual feedback loop creates friction that automated testing cannot close.</description><pubDate>Sun, 15 Mar 2026 23:07:57 GMT</pubDate></item><item><title>From Proof of Concept to Active Campaign: How Glassworm Weaponized Unicode Against the Supply Chain</title><link>https://nebelwolfi.xyz/blog/2026-03-15-from-proof-of-concept-to-active-campaign-how-glassworm-weaponized-unicode-agains/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-from-proof-of-concept-to-active-campaign-how-glassworm-weaponized-unicode-agains/</guid><description>Glassworm marks the shift from theoretical Unicode source-code attacks to operational supply chain exploitation targeting GitHub, npm, and VSCode. Here&apos;s how the attack works and what actually defends against it.</description><pubDate>Sun, 15 Mar 2026 23:08:36 GMT</pubDate></item><item><title>The Technical Solution to the 49-Megabyte Web Page Already Existed</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-technical-solution-to-the-49-megabyte-web-page-already-existed/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-technical-solution-to-the-49-megabyte-web-page-already-existed/</guid><description>Google AMP demonstrably solved the web performance problem for news pages at scale, and the story of its adoption and eventual retreat as a ranking signal explains why page bloat is fundamentally an economic problem, not a technical one.</description><pubDate>Sun, 15 Mar 2026 23:08:38 GMT</pubDate></item><item><title>The Demo Is Not the Product: On Vibecoding&apos;s Hidden Accounting</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-demo-is-not-the-product-on-vibecoding-s-hidden-accounting/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-demo-is-not-the-product-on-vibecoding-s-hidden-accounting/</guid><description>Vibecoding compresses the start of a project dramatically, but the gap between a working prototype and a shippable product remains largely unchanged. Here&apos;s where those 100 hours actually go.</description><pubDate>Sun, 15 Mar 2026 23:09:19 GMT</pubDate></item><item><title>The Projects Where Fully Agentic Coding Delivers</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-projects-where-fully-agentic-coding-delivers/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-projects-where-fully-agentic-coding-delivers/</guid><description>hjr265 built GitTop, a terminal git activity dashboard, entirely via a fully agentic coding workflow where an LLM agent handled implementation end to end. The experiment works, and examining why reveals which project types are genuinely well-suited to this workflow.</description><pubDate>Sun, 15 Mar 2026 23:09:32 GMT</pubDate></item><item><title>What Actually Fills the Gap Between a Vibecoded Prototype and a Working Product</title><link>https://nebelwolfi.xyz/blog/2026-03-15-what-actually-fills-the-gap-between-a-vibecoded-prototype-and-a-working-product/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-what-actually-fills-the-gap-between-a-vibecoded-prototype-and-a-working-product/</guid><description>Vibecoding can produce a convincing prototype in an afternoon, but Mac Budkowski&apos;s experience building Cryptosaurus illustrates why the remaining work takes 100 hours and what specifically makes it hard.</description><pubDate>Sun, 15 Mar 2026 23:10:15 GMT</pubDate></item><item><title>The Mental Model That Claude Code Cannot Build for You</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-mental-model-that-claude-code-cannot-build-for-you/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-mental-model-that-claude-code-cannot-build-for-you/</guid><description>Handing Claude Code an Arch Linux install produces a working system, but Arch&apos;s design specifically assumes you understand your configuration — and an LLM operator produces correctly-written files without transferring that understanding to you.</description><pubDate>Sun, 15 Mar 2026 23:10:55 GMT</pubDate></item><item><title>The Invisible Characters That GitHub&apos;s Bidi Warning Doesn&apos;t See</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-invisible-characters-that-github-s-bidi-warning-doesn-t-see/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-invisible-characters-that-github-s-bidi-warning-doesn-t-see/</guid><description>The Glassworm campaign targeting npm, GitHub, and VSCode exploits zero-width and Tag block Unicode characters, the portion of the invisible-character attack surface that the 2021 Trojan Source disclosure and its follow-on tooling explicitly left uncovered.</description><pubDate>Sun, 15 Mar 2026 23:10:55 GMT</pubDate></item><item><title>What a Coding Agent Gains When It Can Read Your Browser&apos;s Call Stack</title><link>https://nebelwolfi.xyz/blog/2026-03-15-what-a-coding-agent-gains-when-it-can-read-your-browser-s-call-stack/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-what-a-coding-agent-gains-when-it-can-read-your-browser-s-call-stack/</guid><description>Chrome DevTools MCP gives AI coding agents access to JavaScript breakpoints, call stacks, and live variable values in a running browser session, moving them from passive observers to active participants in the debugging loop.</description><pubDate>Sun, 15 Mar 2026 23:11:19 GMT</pubDate></item><item><title>The 100 Hours That Vibecoding Doesn&apos;t Solve</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-100-hours-that-vibecoding-doesn-t-solve/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-100-hours-that-vibecoding-doesn-t-solve/</guid><description>Mac Budkowski&apos;s account of vibecoding Cryptosaurus and spending 100+ hours turning it into a working product illuminates a pattern that better AI models won&apos;t fix: the gap between code that runs and software that ships.</description><pubDate>Sun, 15 Mar 2026 23:11:33 GMT</pubDate></item><item><title>Who Understands Your System After Claude Code Configures It</title><link>https://nebelwolfi.xyz/blog/2026-03-15-who-understands-your-system-after-claude-code-configures-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-who-understands-your-system-after-claude-code-configures-it/</guid><description>Letting an AI configure your Arch install raises a question that goes beyond technical capability: when the reasoning lives in an expired context window, how do you maintain a system you did not fully build yourself?</description><pubDate>Sun, 15 Mar 2026 23:12:04 GMT</pubDate></item><item><title>Observation Over Reproduction: What Chrome DevTools MCP Gets Right About Browser Debugging</title><link>https://nebelwolfi.xyz/blog/2026-03-15-observation-over-reproduction-what-chrome-devtools-mcp-gets-right-about-browser-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-observation-over-reproduction-what-chrome-devtools-mcp-gets-right-about-browser-/</guid><description>Chrome DevTools MCP connects AI agents to your live, authenticated Chrome session via CDP, enabling genuine pair-debugging against real state rather than reconstructed test environments. Here is what the protocol stack actually looks like and where the approach breaks down.</description><pubDate>Sun, 15 Mar 2026 23:12:20 GMT</pubDate></item><item><title>After the Demo Runs: The Work Vibecoding Leaves Behind</title><link>https://nebelwolfi.xyz/blog/2026-03-15-after-the-demo-runs-the-work-vibecoding-leaves-behind/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-after-the-demo-runs-the-work-vibecoding-leaves-behind/</guid><description>Vibecoded prototypes come together in hours, but production-ready software takes considerably longer. Understanding the structural reasons for that gap changes how you plan AI-assisted projects.</description><pubDate>Sun, 15 Mar 2026 23:14:40 GMT</pubDate></item><item><title>GitTop and the Git Tooling Gap That Nobody Filled Until Now</title><link>https://nebelwolfi.xyz/blog/2026-03-15-gittop-and-the-git-tooling-gap-that-nobody-filled-until-now/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-gittop-and-the-git-tooling-gap-that-nobody-filled-until-now/</guid><description>hjr265&apos;s GitTop fills a conceptual gap in git tooling that lazygit, tig, and gitui were never designed to fill: passive activity monitoring rather than interactive workflow management. The tool&apos;s construction via fully agentic coding also points to a shift in what personal niche tools are worth building.</description><pubDate>Sun, 15 Mar 2026 23:14:40 GMT</pubDate></item><item><title>Specification by Analogy: Why &apos;Build Me Something Like htop&apos; Works as a Project Brief</title><link>https://nebelwolfi.xyz/blog/2026-03-15-specification-by-analogy-why-build-me-something-like-htop-works-as-a-project-bri/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-specification-by-analogy-why-build-me-something-like-htop-works-as-a-project-bri/</guid><description>GitTop, a terminal git activity dashboard built through fully agentic coding, succeeds partly because &apos;make it like htop&apos; is a far denser specification than it appears, compressing dozens of design decisions into a single well-known reference.</description><pubDate>Sun, 15 Mar 2026 23:14:51 GMT</pubDate></item><item><title>Why npm Is the Weakest Link in Unicode Supply Chain Attacks</title><link>https://nebelwolfi.xyz/blog/2026-03-15-why-npm-is-the-weakest-link-in-unicode-supply-chain-attacks/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-why-npm-is-the-weakest-link-in-unicode-supply-chain-attacks/</guid><description>Glassworm targets GitHub, npm, and VSCode simultaneously, but npm is the highest-risk surface because JavaScript made deliberate language specification choices that remove the enforcement points other ecosystems used to patch this class of attack.</description><pubDate>Sun, 15 Mar 2026 23:17:44 GMT</pubDate></item><item><title>JavaScript Has No Compiler to Defend Against Glassworm, and That&apos;s By Design</title><link>https://nebelwolfi.xyz/blog/2026-03-15-javascript-has-no-compiler-to-defend-against-glassworm-and-that-s-by-design/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-javascript-has-no-compiler-to-defend-against-glassworm-and-that-s-by-design/</guid><description>Glassworm&apos;s Unicode invisible-character attacks exploit a structural gap in the JavaScript ecosystem: ECMAScript deliberately includes Cyrillic, zero-width, and Tag-block characters as valid identifier and string content, leaving no compiler-level defense where Rust and Python have one.</description><pubDate>Sun, 15 Mar 2026 23:18:21 GMT</pubDate></item><item><title>The Design Contract Hidden in &apos;Like htop but for Git&apos;</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-design-contract-hidden-in-like-htop-but-for-git/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-design-contract-hidden-in-like-htop-but-for-git/</guid><description>When hjr265 built GitTop agentically, the most effective part of the experiment was the specification: six words that encode a visual contract, an interaction model, refresh semantics, and scope exclusions that few formal design documents match in brevity.</description><pubDate>Sun, 15 Mar 2026 23:19:57 GMT</pubDate></item><item><title>Flow State, Abstraction Layers, and the Programmers Who Needed the Puzzle</title><link>https://nebelwolfi.xyz/blog/2026-03-15-flow-state-abstraction-layers-and-the-programmers-who-needed-the-puzzle/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-flow-state-abstraction-layers-and-the-programmers-who-needed-the-puzzle/</guid><description>Two 60-year-old developers had opposite reactions to Claude Code. The split between them isn&apos;t a matter of taste — it maps onto decades of psychology research about intrinsic motivation, flow state, and what programming was actually rewarding people for all along.</description><pubDate>Sun, 15 Mar 2026 23:21:35 GMT</pubDate></item><item><title>Rolling Release, Frozen Knowledge: The Staleness Gap in LLM-Configured Arch</title><link>https://nebelwolfi.xyz/blog/2026-03-15-rolling-release-frozen-knowledge-the-staleness-gap-in-llm-configured-arch/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-rolling-release-frozen-knowledge-the-staleness-gap-in-llm-configured-arch/</guid><description>Letting Claude Code configure an Arch Linux install means trusting an LLM&apos;s training-time snapshot of a system whose recommended configuration changes continuously, and the gap between those two things is not theoretical.</description><pubDate>Sun, 15 Mar 2026 23:21:58 GMT</pubDate></item><item><title>Vibecoding Compresses the Wrong Half of Engineering</title><link>https://nebelwolfi.xyz/blog/2026-03-15-vibecoding-compresses-the-wrong-half-of-engineering/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-vibecoding-compresses-the-wrong-half-of-engineering/</guid><description>Mac Budkowski&apos;s account of building Cryptosaurus with vibecoding surfaces a familiar pattern: the prototype works, but 100 hours of production engineering remains. Fred Brooks&apos;s distinction between essential and accidental complexity explains why no LLM can change that.</description><pubDate>Sun, 15 Mar 2026 23:22:09 GMT</pubDate></item><item><title>What the 100-Hour Tail End of Vibecoding Actually Contains</title><link>https://nebelwolfi.xyz/blog/2026-03-15-what-the-100-hour-tail-end-of-vibecoding-actually-contains/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-what-the-100-hour-tail-end-of-vibecoding-actually-contains/</guid><description>After a vibecoded prototype ships, a predictable category of work remains. Understanding why reveals something important about what AI coding assistance actually automates.</description><pubDate>Sun, 15 Mar 2026 23:23:10 GMT</pubDate></item><item><title>C++26 Settles the Comma Before the Ellipsis, and the Name Is Perfect</title><link>https://nebelwolfi.xyz/blog/2026-03-15-c-26-settles-the-comma-before-the-ellipsis-and-the-name-is-perfect/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-c-26-settles-the-comma-before-the-ellipsis-and-the-name-is-perfect/</guid><description>C++26 deprecates the comma-free form of C-style variadic function declarations, mandating the comma before `...`. A small cleanup, but one that traces a long line of inherited C ambiguity through fifty years of language history.</description><pubDate>Sun, 15 Mar 2026 23:24:22 GMT</pubDate></item><item><title>The Distributed Systems Problem Hidden in Every Linux Package</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-distributed-systems-problem-hidden-in-every-linux-package/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-distributed-systems-problem-hidden-in-every-linux-package/</guid><description>StageX is a Linux distribution built around reproducible builds and a bootstrappable compiler chain, treating software supply chain trust as a distributed consensus problem rather than a PKI signing problem. Here is what that distinction means in practice and why signing keys alone do not solve the attack classes that matter most.</description><pubDate>Sun, 15 Mar 2026 23:27:41 GMT</pubDate></item><item><title>The Stack That Made GitTop Possible: bubbletea, lipgloss, and the Charm Ecosystem</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-stack-that-made-gittop-possible-bubbletea-lipgloss-and-the-charm-ecosystem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-stack-that-made-gittop-possible-bubbletea-lipgloss-and-the-charm-ecosystem/</guid><description>hjr265&apos;s fully agentic GitTop project shows what the Charm toolkit unlocks for terminal tooling in Go: bubbletea&apos;s Elm-derived architecture, lipgloss&apos;s declarative styling, and bubbles&apos; pre-built components combine to make polished htop-style tools viable as personal projects.</description><pubDate>Sun, 15 Mar 2026 23:28:47 GMT</pubDate></item><item><title>The Verification Layer That Reproducible Builds Were Always Missing</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-verification-layer-that-reproducible-builds-were-always-missing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-verification-layer-that-reproducible-builds-were-always-missing/</guid><description>Reproducible builds establish the technical prerequisite for distributed verification, but that verification only works with an actual network of independent builders comparing results. StageX bets that OCI content-addressed registries, already ubiquitous in container infrastructure, provide the coordination layer that makes this practical.</description><pubDate>Sun, 15 Mar 2026 23:29:54 GMT</pubDate></item><item><title>Btrfs Snapshots Are the Safety Net That LLM System Configuration Needs</title><link>https://nebelwolfi.xyz/blog/2026-03-15-btrfs-snapshots-are-the-safety-net-that-llm-system-configuration-needs/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-btrfs-snapshots-are-the-safety-net-that-llm-system-configuration-needs/</guid><description>The discussion around letting Claude Code configure an Arch Linux install focuses on training cutoffs and mental model ownership. The more immediate gap is simpler: without filesystem-level rollback, configuration mistakes are hard to recover from. Btrfs snapshots with snapper and snap-pac change that risk profile substantially.</description><pubDate>Sun, 15 Mar 2026 23:32:18 GMT</pubDate></item><item><title>The Tick Loop That Makes bubbletea Agent-Friendly: Time as a Message</title><link>https://nebelwolfi.xyz/blog/2026-03-15-the-tick-loop-that-makes-bubbletea-agent-friendly-time-as-a-message/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-the-tick-loop-that-makes-bubbletea-agent-friendly-time-as-a-message/</guid><description>hjr265&apos;s GitTop experiment works partly because bubbletea converts real-time polling from a concurrency problem into a data-flow problem, eliminating an entire class of mistakes that agents typically make in monitoring tools.</description><pubDate>Sun, 15 Mar 2026 23:35:18 GMT</pubDate></item><item><title>How git&apos;s Plumbing Interface Powers GitTop&apos;s Real-Time Data Layer</title><link>https://nebelwolfi.xyz/blog/2026-03-15-how-git-s-plumbing-interface-powers-gittop-s-real-time-data-layer/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-15-how-git-s-plumbing-interface-powers-gittop-s-real-time-data-layer/</guid><description>GitTop reads repository data by shelling out to git with carefully crafted format strings rather than using go-git. Understanding git&apos;s plumbing/porcelain distinction explains why this is the right choice for monitoring tools and why that interface has been stable since 2005.</description><pubDate>Sun, 15 Mar 2026 23:40:49 GMT</pubDate></item><item><title>Mapping the Design Space: What the LLM Architecture Gallery Actually Reveals</title><link>https://nebelwolfi.xyz/blog/2026-03-16-mapping-the-design-space-what-the-llm-architecture-gallery-actually-reveals/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-mapping-the-design-space-what-the-llm-architecture-gallery-actually-reveals/</guid><description>Sebastian Raschka&apos;s LLM Architecture Gallery is a useful reference, but reading it as a whole reveals something more interesting: the field has converged on a tight cluster of choices while leaving several important design dimensions actively contested.</description><pubDate>Mon, 16 Mar 2026 04:04:13 GMT</pubDate></item><item><title>Reading the Diff: How Modern LLM Architectures Converged and Where They Still Diverge</title><link>https://nebelwolfi.xyz/blog/2026-03-16-reading-the-diff-how-modern-llm-architectures-converged-and-where-they-still-div/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-reading-the-diff-how-modern-llm-architectures-converged-and-where-they-still-div/</guid><description>Sebastian Raschka&apos;s LLM Architecture Gallery reveals that frontier language models share a surprisingly consistent canonical decoder block, while their most meaningful divergences cluster around inference-time efficiency pressures like KV cache and MoE routing.</description><pubDate>Mon, 16 Mar 2026 04:07:21 GMT</pubDate></item><item><title>The Shape of the Benefit: What AI Coding Tools Are Actually Delivering</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-shape-of-the-benefit-what-ai-coding-tools-are-actually-delivering/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-shape-of-the-benefit-what-ai-coding-tools-are-actually-delivering/</guid><description>The debate about AI-assisted coding splits into transformative gains versus expensive time sinks. Both camps are partially right. The productivity benefit has a specific task-shaped structure, and understanding that structure is what separates effective use from frustrating use.</description><pubDate>Mon, 16 Mar 2026 04:09:36 GMT</pubDate></item><item><title>The Recursive Machine: What It Takes to Build a CPU Out of Neural Network Weights</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-recursive-machine-what-it-takes-to-build-a-cpu-out-of-neural-network-weights/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-recursive-machine-what-it-takes-to-build-a-cpu-out-of-neural-network-weights/</guid><description>nCPU implements CPU logic as a neural network running entirely on a GPU, demonstrating that digital circuits and matrix operations share the same mathematical foundations.</description><pubDate>Mon, 16 Mar 2026 08:38:15 GMT</pubDate></item><item><title>TUI Clients for Postgres: What pgtui Gets Right About the Design Space</title><link>https://nebelwolfi.xyz/blog/2026-03-16-tui-clients-for-postgres-what-pgtui-gets-right-about-the-design-space/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-tui-clients-for-postgres-what-pgtui-gets-right-about-the-design-space/</guid><description>A new Postgres TUI client called pgtui is making the rounds, and it highlights a meaningful gap in database tooling: there is a lot of ground between psql and a full GUI that most tools never bother to explore.</description><pubDate>Mon, 16 Mar 2026 08:44:10 GMT</pubDate></item><item><title>When the CPU Becomes a Forward Pass: Neural Networks as Computer Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-16-when-the-cpu-becomes-a-forward-pass-neural-networks-as-computer-architecture/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-when-the-cpu-becomes-a-forward-pass-neural-networks-as-computer-architecture/</guid><description>nCPU implements a complete CPU using neural network operations running on GPU, a concept rooted in decades of differentiable computing research from Neural Turing Machines to NALU.</description><pubDate>Mon, 16 Mar 2026 08:37:30 GMT</pubDate></item><item><title>When a CPU Is Just a Very Long Forward Pass</title><link>https://nebelwolfi.xyz/blog/2026-03-16-when-a-cpu-is-just-a-very-long-forward-pass/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-when-a-cpu-is-just-a-very-long-forward-pass/</guid><description>The nCPU project implements a working CPU entirely in neural network tensor operations running on GPU, demonstrating that the boundary between hardware simulation and machine learning frameworks is thinner than most engineers assume.</description><pubDate>Mon, 16 Mar 2026 08:38:26 GMT</pubDate></item><item><title>The Inverted Stack: Running a CPU Through Neural Network Gates on a GPU</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-inverted-stack-running-a-cpu-through-neural-network-gates-on-a-gpu/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-inverted-stack-running-a-cpu-through-neural-network-gates-on-a-gpu/</guid><description>nCPU implements CPU logic as neural network operations executing on GPU hardware, turning a decades-old theoretical equivalence between boolean gates and perceptrons into a concrete software artifact with real implications for differentiable computing.</description><pubDate>Mon, 16 Mar 2026 08:40:14 GMT</pubDate></item><item><title>One Category Was Never Enough: How C2Y Plans to Classify Undefined Behavior</title><link>https://nebelwolfi.xyz/blog/2026-03-16-one-category-was-never-enough-how-c2y-plans-to-classify-undefined-behavior/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-one-category-was-never-enough-how-c2y-plans-to-classify-undefined-behavior/</guid><description>The C standard has used a single catch-all &apos;undefined behavior&apos; category since 1989. A new WG14 paper proposes splitting it into named tiers, and the distinction matters for security, optimization, and the long-term credibility of C as a systems language.</description><pubDate>Mon, 16 Mar 2026 08:45:36 GMT</pubDate></item><item><title>The Postgres TUI Gap and Why pgtui Is Working on the Right Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-postgres-tui-gap-and-why-pgtui-is-working-on-the-right-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-postgres-tui-gap-and-why-pgtui-is-working-on-the-right-problem/</guid><description>A new PostgreSQL TUI client called pgtui occupies the underserved middle ground between psql and GUI database clients, and the design space it is navigating is more interesting than it first appears.</description><pubDate>Mon, 16 Mar 2026 08:43:11 GMT</pubDate></item><item><title>Computation as Linear Algebra: How nCPU Builds a CPU from Neural Network Weights</title><link>https://nebelwolfi.xyz/blog/2026-03-16-computation-as-linear-algebra-how-ncpu-builds-a-cpu-from-neural-network-weights/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-computation-as-linear-algebra-how-ncpu-builds-a-cpu-from-neural-network-weights/</guid><description>nCPU implements a complete CPU as a neural network running on GPU, encoding every boolean gate as hand-coded weights. The project demonstrates concretely that computation and matrix multiplication are two implementations of the same underlying structure.</description><pubDate>Mon, 16 Mar 2026 08:43:39 GMT</pubDate></item><item><title>The Forward Pass That Executes Instructions: How a CPU Fits Inside Neural Network Weights</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-forward-pass-that-executes-instructions-how-a-cpu-fits-inside-neural-network/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-forward-pass-that-executes-instructions-how-a-cpu-fits-inside-neural-network/</guid><description>nCPU implements a working CPU as neural network weights running on GPU. The mathematics behind this traces to 1943, and understanding it shows why computation and neural networks were never as distinct as their histories suggest.</description><pubDate>Mon, 16 Mar 2026 08:44:00 GMT</pubDate></item><item><title>Naming the Demons: What C2Y&apos;s Formal Approach to Undefined Behavior Actually Proposes</title><link>https://nebelwolfi.xyz/blog/2026-03-16-naming-the-demons-what-c2y-s-formal-approach-to-undefined-behavior-actually-prop/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-naming-the-demons-what-c2y-s-formal-approach-to-undefined-behavior-actually-prop/</guid><description>WG14 paper N3861 examines undefined behavior in the upcoming C2Y standard, proposing a new &apos;erroneous behavior&apos; tier that removes the compiler&apos;s license to silently eliminate safety checks while preserving C&apos;s performance model.</description><pubDate>Mon, 16 Mar 2026 08:45:33 GMT</pubDate></item><item><title>The CPU as a Weight Matrix: What nCPU Reveals About Computation</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-cpu-as-a-weight-matrix-what-ncpu-reveals-about-computation/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-cpu-as-a-weight-matrix-what-ncpu-reveals-about-computation/</guid><description>nCPU implements a working CPU entirely as neural network tensor operations running on a GPU, demonstrating that the line between hardware logic and machine learning infrastructure is a matter of notation, not substance.</description><pubDate>Mon, 16 Mar 2026 08:45:28 GMT</pubDate></item><item><title>The Two Kinds of Undefined Behavior in C, and Why C2Y Needs to Separate Them</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-two-kinds-of-undefined-behavior-in-c-and-why-c2y-needs-to-separate-them/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-two-kinds-of-undefined-behavior-in-c-and-why-c2y-needs-to-separate-them/</guid><description>WG14 paper N3861 frames C2Y&apos;s undefined behavior work around a distinction the standard has never drawn: some UBs enable real compiler optimizations, others are obsolete artifacts from hardware that no longer exists. How the committee handles that split will shape C&apos;s safety properties for the next decade.</description><pubDate>Mon, 16 Mar 2026 08:45:50 GMT</pubDate></item><item><title>Ten Thousand Programs at Once: The Real Use Case for a Neural Network CPU</title><link>https://nebelwolfi.xyz/blog/2026-03-16-ten-thousand-programs-at-once-the-real-use-case-for-a-neural-network-cpu/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-ten-thousand-programs-at-once-the-real-use-case-for-a-neural-network-cpu/</guid><description>nCPU implements a CPU as neural network tensor operations running on GPU hardware. The interesting part is not the gate-level equivalence but what batch execution of thousands of simultaneous program traces enables.</description><pubDate>Mon, 16 Mar 2026 08:46:22 GMT</pubDate></item><item><title>Undefined Behavior as a Proof Engine: What C2Y Is Trying to Fix</title><link>https://nebelwolfi.xyz/blog/2026-03-16-undefined-behavior-as-a-proof-engine-what-c2y-is-trying-to-fix/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-undefined-behavior-as-a-proof-engine-what-c2y-is-trying-to-fix/</guid><description>C&apos;s undefined behavior was designed for hardware portability but has become a mechanism compilers use to eliminate safety checks. The upcoming C2Y standard is attempting a systematic audit to separate historical artifacts from genuine security hazards.</description><pubDate>Mon, 16 Mar 2026 08:46:52 GMT</pubDate></item><item><title>The Original Neural Network Was a Logic Gate: How nCPU Closes the Loop</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-original-neural-network-was-a-logic-gate-how-ncpu-closes-the-loop/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-original-neural-network-was-a-logic-gate-how-ncpu-closes-the-loop/</guid><description>nCPU implements a working CPU as hand-coded neural network weights running on GPU, recovering the original McCulloch-Pitts insight from 1943 that neurons compute boolean functions. The project sits at a convergence point between circuit design, binarized networks, looped transformers, and differentiable computing research.</description><pubDate>Mon, 16 Mar 2026 08:50:51 GMT</pubDate></item><item><title>From Nasal Demons to Ghost Values: How C2Y Plans to Classify Undefined Behavior</title><link>https://nebelwolfi.xyz/blog/2026-03-16-from-nasal-demons-to-ghost-values-how-c2y-plans-to-classify-undefined-behavior/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-from-nasal-demons-to-ghost-values-how-c2y-plans-to-classify-undefined-behavior/</guid><description>WG14 paper N3861 proposes replacing C&apos;s monolithic undefined behavior category with a formal taxonomy that distinguishes ghost values, erroneous behavior, and optimization-enabling UB, with real consequences for how compilers, sanitizers, and safety-critical code interact.</description><pubDate>Mon, 16 Mar 2026 08:52:36 GMT</pubDate></item><item><title>C&apos;s Undefined Behavior Was Never One Thing: The Formal Split Coming in C2Y</title><link>https://nebelwolfi.xyz/blog/2026-03-16-c-s-undefined-behavior-was-never-one-thing-the-formal-split-coming-in-c2y/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-c-s-undefined-behavior-was-never-one-thing-the-formal-split-coming-in-c2y/</guid><description>WG14 paper N3861 proposes splitting C&apos;s monolithic undefined behavior into a formal taxonomy of ghosts and demons, with a new &apos;erroneous behavior&apos; tier that has concrete implications for compilers, sanitizers, and security-critical code.</description><pubDate>Mon, 16 Mar 2026 08:53:19 GMT</pubDate></item><item><title>The Serial Dependency Problem at the Heart of nCPU, and How It Was Solved Twice</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-serial-dependency-problem-at-the-heart-of-ncpu-and-how-it-was-solved-twice/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-serial-dependency-problem-at-the-heart-of-ncpu-and-how-it-was-solved-twice/</guid><description>nCPU runs a CPU as GPU tensor operations by encoding every logic gate as a fixed-weight neuron. Its core performance bottleneck — the ripple-carry adder&apos;s sequential gate depth — has an exact analog in the RNN-to-transformer transition, and both were solved by the same parallel prefix technique.</description><pubDate>Mon, 16 Mar 2026 08:53:16 GMT</pubDate></item><item><title>From Safety Net to Scalpel: How C Compilers Learned to Exploit Undefined Behavior</title><link>https://nebelwolfi.xyz/blog/2026-03-16-from-safety-net-to-scalpel-how-c-compilers-learned-to-exploit-undefined-behavior/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-from-safety-net-to-scalpel-how-c-compilers-learned-to-exploit-undefined-behavior/</guid><description>C&apos;s undefined behavior was designed as a portability escape hatch in 1989. Over four decades, compilers turned it into an optimization mechanism that silently eliminates security checks, and the upcoming C2Y standard is finally trying to close the gap between what compilers do and what the standard permits.</description><pubDate>Mon, 16 Mar 2026 08:57:16 GMT</pubDate></item><item><title>Why Production C Needs Compiler Flags the Standard Doesn&apos;t Know About</title><link>https://nebelwolfi.xyz/blog/2026-03-16-why-production-c-needs-compiler-flags-the-standard-doesn-t-know-about/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-why-production-c-needs-compiler-flags-the-standard-doesn-t-know-about/</guid><description>Major C codebases like the Linux kernel compile with flags such as -fwrapv and -fno-strict-aliasing that override the C standard&apos;s undefined behavior model. The C2Y proposals in N3861 would formalize what these workarounds already do in practice.</description><pubDate>Mon, 16 Mar 2026 09:01:53 GMT</pubDate></item><item><title>The Rule About Uninitialized Memory That No Real Machine Follows</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-rule-about-uninitialized-memory-that-no-real-machine-follows/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-rule-about-uninitialized-memory-that-no-real-machine-follows/</guid><description>C declares reading uninitialized memory undefined behavior due to 1989 hardware trap representations that no modern architecture has. WG14 paper N3861&apos;s ghost value concept in C2Y finally reconciles the standard with what hardware actually does.</description><pubDate>Mon, 16 Mar 2026 09:01:51 GMT</pubDate></item><item><title>Thinking Before You Prompt: The Real Work in LLM-Assisted Development</title><link>https://nebelwolfi.xyz/blog/2026-03-16-thinking-before-you-prompt-the-real-work-in-llm-assisted-development/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-thinking-before-you-prompt-the-real-work-in-llm-assisted-development/</guid><description>Using LLMs to write software is less about prompting technique and more about front-loading the thinking you would have done while coding anyway. A look at what effective LLM workflows actually require.</description><pubDate>Mon, 16 Mar 2026 13:25:03 GMT</pubDate></item><item><title>The Verification Tax: What LLM-Assisted Development Actually Costs</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-verification-tax-what-llm-assisted-development-actually-costs/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-verification-tax-what-llm-assisted-development-actually-costs/</guid><description>Using LLMs to write code creates a hidden cognitive overhead that rarely appears in productivity metrics: the constant work of verifying confident-but-wrong output, managing fragmented context across sessions, and doing the emotional labor of correcting a tool that never doubts itself.</description><pubDate>Mon, 16 Mar 2026 13:30:01 GMT</pubDate></item><item><title>The Tool Loop at the Heart of Every Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-tool-loop-at-the-heart-of-every-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-tool-loop-at-the-heart-of-every-coding-agent/</guid><description>A technical look at how modern coding agents like Claude Code, Cursor, and Aider actually work, from the core tool-use loop to the unsolved problem of context window management.</description><pubDate>Mon, 16 Mar 2026 18:00:01 GMT</pubDate></item><item><title>Tool Calls All the Way Down: The Architecture Behind Coding Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-16-tool-calls-all-the-way-down-the-architecture-behind-coding-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-tool-calls-all-the-way-down-the-architecture-behind-coding-agents/</guid><description>Every coding agent, from Claude Code to Aider, runs on the same fundamental loop: an LLM, a set of tools, and a growing conversation history. Understanding that loop explains both what these agents can do well and where they fall apart.</description><pubDate>Mon, 16 Mar 2026 17:57:53 GMT</pubDate></item><item><title>The Problem SAST Was Never Built to Solve</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-problem-sast-was-never-built-to-solve/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-problem-sast-was-never-built-to-solve/</guid><description>OpenAI&apos;s Codex Security skips the traditional SAST report in favor of AI-driven constraint reasoning. Understanding why requires going back to the fundamental limitations that have always constrained static analysis tools.</description><pubDate>Mon, 16 Mar 2026 18:01:20 GMT</pubDate></item><item><title>The Agentic Loop Up Close: Context, Tools, and the Mechanics of Coding Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-agentic-loop-up-close-context-tools-and-the-mechanics-of-coding-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-agentic-loop-up-close-context-tools-and-the-mechanics-of-coding-agents/</guid><description>Every coding agent from Claude Code to Aider runs the same fundamental loop: the model emits tool calls, the scaffolding executes them, and results accumulate in context. The differences in how each tool is designed around that loop explain most of their distinct strengths and failure modes.</description><pubDate>Mon, 16 Mar 2026 18:14:23 GMT</pubDate></item><item><title>The Context Problem at the Heart of Coding Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-context-problem-at-the-heart-of-coding-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-context-problem-at-the-heart-of-coding-agents/</guid><description>Coding agents are a language model in a tool-calling loop, but the engineering challenge that separates good implementations from broken ones is context management, not the loop itself.</description><pubDate>Mon, 16 Mar 2026 17:58:46 GMT</pubDate></item><item><title>Why Constraint Reasoning Makes the SAST Report the Wrong Output</title><link>https://nebelwolfi.xyz/blog/2026-03-16-why-constraint-reasoning-makes-the-sast-report-the-wrong-output/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-why-constraint-reasoning-makes-the-sast-report-the-wrong-output/</guid><description>SAST tools produce reports because they cannot validate their findings. Codex Security&apos;s constraint reasoning architecture skips the report entirely, and understanding why reveals how the two approaches differ fundamentally.</description><pubDate>Mon, 16 Mar 2026 18:02:13 GMT</pubDate></item><item><title>The Tool Schema Is the Real API of a Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-tool-schema-is-the-real-api-of-a-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-tool-schema-is-the-real-api-of-a-coding-agent/</guid><description>Coding agents run on a simple mechanical loop, but the interesting design work happens in the tool layer, where schema decisions shape behavior, context consumption, and failure handling.</description><pubDate>Mon, 16 Mar 2026 18:19:16 GMT</pubDate></item><item><title>The Formal Methods Problem That AI Security Analysis Finally Makes Tractable</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-formal-methods-problem-that-ai-security-analysis-finally-makes-tractable/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-formal-methods-problem-that-ai-security-analysis-finally-makes-tractable/</guid><description>OpenAI&apos;s Codex Security avoids SAST in favor of constraint reasoning, an idea with roots in symbolic execution and SMT solvers that has been theoretically sound but computationally intractable for decades. LLMs change that calculus in a specific and interesting way.</description><pubDate>Mon, 16 Mar 2026 18:03:41 GMT</pubDate></item><item><title>Context, Tools, and the Loop: The Real Mechanics Behind Coding Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-16-context-tools-and-the-loop-the-real-mechanics-behind-coding-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-context-tools-and-the-loop-the-real-mechanics-behind-coding-agents/</guid><description>A technical look at how coding agents actually execute: the tool loop, context window management, file editing strategies, and the design decisions that separate good agents from brittle ones.</description><pubDate>Mon, 16 Mar 2026 18:04:16 GMT</pubDate></item><item><title>The Middle Loop: What Supervising AI Code Actually Demands</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-middle-loop-what-supervising-ai-code-actually-demands/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-middle-loop-what-supervising-ai-code-actually-demands/</guid><description>As AI tools absorb the inner loop of software development, a new layer of work is emerging between writing and reviewing. The skills it demands are not the same as the skills it&apos;s replacing.</description><pubDate>Mon, 16 Mar 2026 18:04:29 GMT</pubDate></item><item><title>The Signal Contamination Problem: Why Combining SAST with AI Security Analysis Backfires</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-signal-contamination-problem-why-combining-sast-with-ai-security-analysis-ba/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-signal-contamination-problem-why-combining-sast-with-ai-security-analysis-ba/</guid><description>OpenAI&apos;s decision to exclude SAST from Codex Security isn&apos;t just about quality filtering. It&apos;s an argument about how heterogeneous security signals with different noise profiles change developer behavior at the systems level.</description><pubDate>Mon, 16 Mar 2026 18:04:11 GMT</pubDate></item><item><title>Why Coding Agents Work When General-Purpose Agents Don&apos;t</title><link>https://nebelwolfi.xyz/blog/2026-03-16-why-coding-agents-work-when-general-purpose-agents-don-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-why-coding-agents-work-when-general-purpose-agents-don-t/</guid><description>Coding agents have succeeded where AutoGPT-style agents failed. The reasons are specific to properties of code as a domain: executable verification, the closed-world assumption, and cheap reversibility through version control.</description><pubDate>Mon, 16 Mar 2026 18:04:10 GMT</pubDate></item><item><title>Coding Agents Are Mostly Scaffolding</title><link>https://nebelwolfi.xyz/blog/2026-03-16-coding-agents-are-mostly-scaffolding/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-coding-agents-are-mostly-scaffolding/</guid><description>The tool-use loop at the heart of every coding agent is straightforward; what makes them work on real codebases is the context management, error recovery, and scaffolding code built around the model.</description><pubDate>Mon, 16 Mar 2026 18:05:48 GMT</pubDate></item><item><title>The Scaffolding Is the Product: What Building a Coding Agent Actually Requires</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-scaffolding-is-the-product-what-building-a-coding-agent-actually-requires/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-scaffolding-is-the-product-what-building-a-coding-agent-actually-requires/</guid><description>Every coding agent runs the same 40-line loop. What separates a useful agent from a broken one is the tool descriptions, system prompt, context strategy, and stopping conditions you write around it.</description><pubDate>Mon, 16 Mar 2026 18:06:20 GMT</pubDate></item><item><title>The Middle Loop: What Supervisory Engineering Demands</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-middle-loop-what-supervisory-engineering-demands/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-middle-loop-what-supervisory-engineering-demands/</guid><description>AI coding tools are creating a new tier of engineering work between writing and shipping. Annie Vella&apos;s research on 158 software engineers names this supervisory engineering work and raises real questions about what skills the profession is gaining and losing in the process.</description><pubDate>Mon, 16 Mar 2026 18:07:06 GMT</pubDate></item><item><title>The Tool Loop as Architecture: What&apos;s Actually Happening Inside a Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-tool-loop-as-architecture-what-s-actually-happening-inside-a-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-tool-loop-as-architecture-what-s-actually-happening-inside-a-coding-agent/</guid><description>Coding agents reduce to a surprisingly simple loop of model inference and tool execution, but the real engineering decisions lie in tool schema design, context management, and failure handling.</description><pubDate>Mon, 16 Mar 2026 18:07:01 GMT</pubDate></item><item><title>The Math That Makes asin() Fast: Domain Reduction and Polynomial Degree</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-math-that-makes-asin-fast-domain-reduction-and-polynomial-degree/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-math-that-makes-asin-fast-domain-reduction-and-polynomial-degree/</guid><description>A deep look at how range reduction and minimax polynomial approximation interact to produce fast arcsine implementations, using the 16bpp.net optimization series as a starting point.</description><pubDate>Mon, 16 Mar 2026 18:07:26 GMT</pubDate></item><item><title>CUDA Device Code Finally Gets a Real Language Server</title><link>https://nebelwolfi.xyz/blog/2026-03-16-cuda-device-code-finally-gets-a-real-language-server/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-cuda-device-code-finally-gets-a-real-language-server/</guid><description>Spectral Compute extended clangd to provide IDE feedback for both host and device sides of CUDA code, including inline PTX assembly. Here is why this gap existed for so long and why Clang&apos;s architecture is what finally makes it tractable.</description><pubDate>Mon, 16 Mar 2026 18:12:25 GMT</pubDate></item><item><title>The Silent Dependency in Supervisory Engineering</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-silent-dependency-in-supervisory-engineering/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-silent-dependency-in-supervisory-engineering/</guid><description>Annie Vella&apos;s research shows software engineers shifting from creating code to supervising AI output. But effective supervision depends on deep implementation knowledge, and that creates a circular problem: the shift to supervisory work gradually erodes the expertise it relies on.</description><pubDate>Mon, 16 Mar 2026 18:09:01 GMT</pubDate></item><item><title>Why CUDA Device Code Has Always Broken Language Servers</title><link>https://nebelwolfi.xyz/blog/2026-03-16-why-cuda-device-code-has-always-broken-language-servers/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-why-cuda-device-code-has-always-broken-language-servers/</guid><description>Spectral Compute extended clangd to give IDE feedback on both host and device CUDA code, including inline PTX assembly. The reason this gap persisted so long traces back to NVCC&apos;s architecture, and Clang is what finally makes it tractable.</description><pubDate>Mon, 16 Mar 2026 18:16:32 GMT</pubDate></item><item><title>Why Coding Agents Lose Direction on Long Tasks</title><link>https://nebelwolfi.xyz/blog/2026-03-16-why-coding-agents-lose-direction-on-long-tasks/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-why-coding-agents-lose-direction-on-long-tasks/</guid><description>The tool loop powering coding agents has a structural property that causes reliable drift on complex tasks: the conversation history is append-only, and wrong early assumptions never leave context. Here&apos;s what that means in practice.</description><pubDate>Mon, 16 Mar 2026 18:09:38 GMT</pubDate></item><item><title>Not All Vulnerabilities Yield to Constraint Reasoning</title><link>https://nebelwolfi.xyz/blog/2026-03-16-not-all-vulnerabilities-yield-to-constraint-reasoning/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-not-all-vulnerabilities-yield-to-constraint-reasoning/</guid><description>OpenAI&apos;s Codex Security replaces SAST with AI-driven constraint reasoning, but the approach&apos;s practical value depends sharply on which vulnerability class you&apos;re analyzing. A breakdown by bug type reveals where the method excels and where it inherits structural limits no model capability can remove.</description><pubDate>Mon, 16 Mar 2026 18:09:51 GMT</pubDate></item><item><title>The SAST Coverage Gap That Widens Where Developers Are Writing Safer Code</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-sast-coverage-gap-that-widens-where-developers-are-writing-safer-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-sast-coverage-gap-that-widens-where-developers-are-writing-safer-code/</guid><description>SAST rule databases run deep for Java and C/C++ but thin out significantly for Rust and Go. For teams already writing in memory-safe languages, AI-driven constraint reasoning fills a gap where SAST was structurally unlikely to catch up.</description><pubDate>Mon, 16 Mar 2026 18:09:51 GMT</pubDate></item><item><title>Four Generations of SAST and the False Positive Problem That Outlasted Each One</title><link>https://nebelwolfi.xyz/blog/2026-03-16-four-generations-of-sast-and-the-false-positive-problem-that-outlasted-each-one/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-four-generations-of-sast-and-the-false-positive-problem-that-outlasted-each-one/</guid><description>A technical look at why static application security testing has always struggled with false positives, and how constraint reasoning in Codex Security changes the fundamental model from pattern detection to exploitability validation.</description><pubDate>Mon, 16 Mar 2026 18:20:30 GMT</pubDate></item><item><title>What the SARIF Standard Built, and What Codex Security Opts Out Of</title><link>https://nebelwolfi.xyz/blog/2026-03-16-what-the-sarif-standard-built-and-what-codex-security-opts-out-of/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-what-the-sarif-standard-built-and-what-codex-security-opts-out-of/</guid><description>OpenAI&apos;s Codex Security skips the SAST report for good precision reasons, but SARIF is more than a report format. It&apos;s the integration layer connecting security findings to PR annotations, compliance dashboards, and branch protection gates, and understanding what disappears when you skip it shapes how you fit the tool into a real security program.</description><pubDate>Mon, 16 Mar 2026 18:10:25 GMT</pubDate></item><item><title>The Career Formation Problem in AI-Assisted Engineering</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-career-formation-problem-in-ai-assisted-engineering/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-career-formation-problem-in-ai-assisted-engineering/</guid><description>Annie Vella&apos;s study of 158 software engineers identifies a new mode of work called supervisory engineering, but the skills that make supervision effective are built through the inner loop work that AI tools are now absorbing from the first day of an engineer&apos;s career.</description><pubDate>Mon, 16 Mar 2026 18:10:48 GMT</pubDate></item><item><title>The Context Window Is the Architecture: How Coding Agents Manage What They Know</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-context-window-is-the-architecture-how-coding-agents-manage-what-they-know/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-context-window-is-the-architecture-how-coding-agents-manage-what-they-know/</guid><description>Coding agents are context management systems as much as code-writing systems. Understanding how retrieval patterns, tool schemas, and multi-agent spawning manage the context window constraint explains most of the architectural decisions these tools make.</description><pubDate>Mon, 16 Mar 2026 18:10:56 GMT</pubDate></item><item><title>Aviation Automated Expert Work Decades Before Software Did. Here&apos;s What It Learned.</title><link>https://nebelwolfi.xyz/blog/2026-03-16-aviation-automated-expert-work-decades-before-software-did-here-s-what-it-learne/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-aviation-automated-expert-work-decades-before-software-did-here-s-what-it-learne/</guid><description>Annie Vella&apos;s research on supervisory engineering and Martin Fowler&apos;s middle loop framing echo a transition aviation went through decades ago. Software engineering hasn&apos;t yet built the institutional responses aviation had to develop after some high-profile failures.</description><pubDate>Mon, 16 Mar 2026 18:11:53 GMT</pubDate></item><item><title>The Competence Paradox at the Heart of Supervisory Engineering</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-competence-paradox-at-the-heart-of-supervisory-engineering/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-competence-paradox-at-the-heart-of-supervisory-engineering/</guid><description>As AI takes over the inner loop of software development, engineers are shifting into supervisory roles, but the competence required to supervise AI output is built through the very inner loop work that AI is replacing.</description><pubDate>Mon, 16 Mar 2026 18:12:21 GMT</pubDate></item><item><title>The Loop That Runs Every Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-loop-that-runs-every-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-loop-that-runs-every-coding-agent/</guid><description>Every coding agent, from Claude Code to Aider to Copilot, reduces to the same loop: send context and tool schemas to an LLM, execute the tool calls it returns, append results, and repeat. The design decisions that matter live in the tool schemas and the context management strategy.</description><pubDate>Mon, 16 Mar 2026 18:12:20 GMT</pubDate></item><item><title>The Audit Infrastructure Behind the SAST Report</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-audit-infrastructure-behind-the-sast-report/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-audit-infrastructure-behind-the-sast-report/</guid><description>OpenAI&apos;s Codex Security skips the traditional SAST report for reasons that go beyond precision and false positive rates. The SAST report format was shaped by compliance procurement, not by what developers need, and understanding that history explains the architectural choice.</description><pubDate>Mon, 16 Mar 2026 18:13:20 GMT</pubDate></item><item><title>The Error Budget Every Coding Agent Has to Spend</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-error-budget-every-coding-agent-has-to-spend/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-error-budget-every-coding-agent-has-to-spend/</guid><description>Coding agents run a simple tool-calling loop, but the practical task complexity ceiling is set by compounding failure probabilities across dozens of steps. Understanding the math changes how you design scaffolding.</description><pubDate>Mon, 16 Mar 2026 18:13:25 GMT</pubDate></item><item><title>The Copy That Cost Three Times: LMDB&apos;s Overflow Pages and the Vector Indexing Tax</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-copy-that-cost-three-times-lmdb-s-overflow-pages-and-the-vector-indexing-tax/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-copy-that-cost-three-times-lmdb-s-overflow-pages-and-the-vector-indexing-tax/</guid><description>Meilisearch&apos;s 3x vector indexing speedup came from patching a single code path in LMDB&apos;s C source. Understanding why requires knowing how LMDB handles values larger than a page, and why embedding-sized data hits that path on every single write.</description><pubDate>Mon, 16 Mar 2026 18:13:49 GMT</pubDate></item><item><title>The Language Inside the String: What It Takes to Lint Inline PTX in CUDA</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-language-inside-the-string-what-it-takes-to-lint-inline-ptx-in-cuda/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-language-inside-the-string-what-it-takes-to-lint-inline-ptx-in-cuda/</guid><description>Spectral Compute extended clangd to parse inline PTX assembly in CUDA device code, turning a category of invisible compile-time errors into real-time editor diagnostics. Here is why that is harder than it sounds.</description><pubDate>Mon, 16 Mar 2026 18:14:06 GMT</pubDate></item><item><title>Creation Was the Part We Did Not Expect to Automate</title><link>https://nebelwolfi.xyz/blog/2026-03-16-creation-was-the-part-we-did-not-expect-to-automate/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-creation-was-the-part-we-did-not-expect-to-automate/</guid><description>Annie Vella&apos;s research on 158 engineers names the new mode of AI-assisted work as supervisory engineering, but the shift is more disruptive than previous tooling transitions because it is not automating overhead. It is automating the act of creation itself, where engineering identity and competence verification both lived.</description><pubDate>Mon, 16 Mar 2026 18:14:31 GMT</pubDate></item><item><title>Code Gives Agents Something General-Purpose Agents Rarely Have: Ground Truth</title><link>https://nebelwolfi.xyz/blog/2026-03-16-code-gives-agents-something-general-purpose-agents-rarely-have-ground-truth/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-code-gives-agents-something-general-purpose-agents-rarely-have-ground-truth/</guid><description>Coding agents outperform general-purpose agents not because the models are better, but because code execution, test results, and file diffs give agents a feedback signal that prose tasks cannot provide. Here is what that structural advantage means in practice.</description><pubDate>Mon, 16 Mar 2026 18:17:21 GMT</pubDate></item><item><title>CUDA Tooling Was Always a Clang Problem in Disguise</title><link>https://nebelwolfi.xyz/blog/2026-03-16-cuda-tooling-was-always-a-clang-problem-in-disguise/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-cuda-tooling-was-always-a-clang-problem-in-disguise/</guid><description>CUDA&apos;s split compilation model has broken language servers for nearly two decades. Spectral Compute&apos;s clangd extension for device code, built on a Clang-first CUDA toolchain, shows why a proper fix was only possible once nvcc stopped being the reference implementation.</description><pubDate>Mon, 16 Mar 2026 18:18:48 GMT</pubDate></item><item><title>How Spectral Compute Extended clangd to Understand Both Sides of a CUDA File</title><link>https://nebelwolfi.xyz/blog/2026-03-16-how-spectral-compute-extended-clangd-to-understand-both-sides-of-a-cuda-file/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-how-spectral-compute-extended-clangd-to-understand-both-sides-of-a-cuda-file/</guid><description>Spectral Compute has extended clangd to surface diagnostics for both host and device CUDA code, including syntax errors inside inline PTX assembly. Understanding why this was hard explains a lot about how CUDA compilation actually works.</description><pubDate>Mon, 16 Mar 2026 18:32:09 GMT</pubDate></item><item><title>LLM Productivity Is a Training Data Problem in Disguise</title><link>https://nebelwolfi.xyz/blog/2026-03-16-llm-productivity-is-a-training-data-problem-in-disguise/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-llm-productivity-is-a-training-data-problem-in-disguise/</guid><description>The developer productivity debate over LLMs keeps going in circles because the people arguing are living in genuinely different technical realities, shaped almost entirely by whether their work sits inside or outside the mode of the training distribution.</description><pubDate>Mon, 16 Mar 2026 18:32:05 GMT</pubDate></item><item><title>Reading the Taylor Series Right: How asin()’s Structure Halves Polynomial Work</title><link>https://nebelwolfi.xyz/blog/2026-03-16-reading-the-taylor-series-right-how-asin-s-structure-halves-polynomial-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-reading-the-taylor-series-right-how-asin-s-structure-halves-polynomial-work/</guid><description>How the odd-function structure of arcsine enables a variable substitution that cuts polynomial evaluation cost roughly in half, and how the same technique appears throughout fast math library implementations from glibc to SLEEF.</description><pubDate>Mon, 16 Mar 2026 18:45:16 GMT</pubDate></item><item><title>Same LLM, Different Worlds: Why Developers Talk Past Each Other on AI Coding Tools</title><link>https://nebelwolfi.xyz/blog/2026-03-16-same-llm-different-worlds-why-developers-talk-past-each-other-on-ai-coding-tools/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-same-llm-different-worlds-why-developers-talk-past-each-other-on-ai-coding-tools/</guid><description>When developers make identical observations about LLM coding assistants and reach opposite conclusions, the disagreement usually isn&apos;t about the tools. It&apos;s about what kind of programming work each person actually does.</description><pubDate>Mon, 16 Mar 2026 18:19:35 GMT</pubDate></item><item><title>The Compounding Reliability Problem in Coding Agent Tasks</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-compounding-reliability-problem-in-coding-agent-tasks/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-compounding-reliability-problem-in-coding-agent-tasks/</guid><description>Every step in a coding agent&apos;s task loop carries a failure probability that compounds over the full task. Understanding this curve changes how you scope tasks, design tools, and place human checkpoints.</description><pubDate>Mon, 16 Mar 2026 18:18:25 GMT</pubDate></item><item><title>The Concurrency Model Every Coding Agent Has to Get Right</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-concurrency-model-every-coding-agent-has-to-get-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-concurrency-model-every-coding-agent-has-to-get-right/</guid><description>Coding agents can dispatch multiple tool calls in a single model response, and the mechanics of parallel execution, result correlation, and partial failure handling shape agent performance in ways that go well beyond simple latency savings.</description><pubDate>Mon, 16 Mar 2026 18:19:29 GMT</pubDate></item><item><title>The Confidence Problem That Makes AI Supervision Hard</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-confidence-problem-that-makes-ai-supervision-hard/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-confidence-problem-that-makes-ai-supervision-hard/</guid><description>Annie Vella&apos;s research on supervisory engineering identifies a new mode of developer work, but the deepest challenge isn&apos;t volume or domain knowledge — it&apos;s that AI-generated code looks equally confident whether it&apos;s correct or subtly broken.</description><pubDate>Mon, 16 Mar 2026 18:16:30 GMT</pubDate></item><item><title>The CUDA Compiler Built for AMD That Gave NVIDIA Code a Language Server</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-cuda-compiler-built-for-amd-that-gave-nvidia-code-a-language-server/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-cuda-compiler-built-for-amd-that-gave-nvidia-code-a-language-server/</guid><description>Spectral Compute extended clangd to provide real IDE diagnostics for CUDA device code and inline PTX assembly. The path there ran through AMD: building a CUDA compiler that targets AMD hardware requires using Clang, and Clang is the infrastructure that makes a language server tractable.</description><pubDate>Mon, 16 Mar 2026 18:46:44 GMT</pubDate></item><item><title>The Library Modeling Gap That Makes SAST Imprecise in Both Directions</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-library-modeling-gap-that-makes-sast-imprecise-in-both-directions/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-library-modeling-gap-that-makes-sast-imprecise-in-both-directions/</guid><description>SAST&apos;s false positive rate dominates the narrative, but the same root cause, the library boundary modeling problem, also generates systematic false negatives. Understanding both failure modes clarifies where AI-driven constraint reasoning actually improves the architecture.</description><pubDate>Mon, 16 Mar 2026 18:16:21 GMT</pubDate></item><item><title>The Loop at the Heart of Every Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-loop-at-the-heart-of-every-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-loop-at-the-heart-of-every-coding-agent/</guid><description>Coding agents work because the filesystem and shell give them something general-purpose agents lack: natural external memory and a tight verification loop. Here is how the internals fit together.</description><pubDate>Mon, 16 Mar 2026 18:18:30 GMT</pubDate></item><item><title>The Training Data Gradient Underneath the LLM Productivity Debate</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-training-data-gradient-underneath-the-llm-productivity-debate/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-training-data-gradient-underneath-the-llm-productivity-debate/</guid><description>When developers reach opposite conclusions about LLM coding tools, the strongest predictor is how densely their technology stack is represented in the model&apos;s training data, not whether their project is greenfield or legacy.</description><pubDate>Mon, 16 Mar 2026 18:43:49 GMT</pubDate></item><item><title>The Vulnerability Classes Where Constraint Reasoning Changes the Outcome</title><link>https://nebelwolfi.xyz/blog/2026-03-16-the-vulnerability-classes-where-constraint-reasoning-changes-the-outcome/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-the-vulnerability-classes-where-constraint-reasoning-changes-the-outcome/</guid><description>OpenAI&apos;s Codex Security trades the SAST report for AI-driven constraint reasoning, but the benefit is not uniform across vulnerability types. A practical breakdown of where the approach has a structural advantage, and where the gaps remain.</description><pubDate>Mon, 16 Mar 2026 18:14:43 GMT</pubDate></item><item><title>Three Languages in One File: What It Took for clangd to Understand CUDA</title><link>https://nebelwolfi.xyz/blog/2026-03-16-three-languages-in-one-file-what-it-took-for-clangd-to-understand-cuda/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-three-languages-in-one-file-what-it-took-for-clangd-to-understand-cuda/</guid><description>Spectral Compute extended clangd to handle CUDA&apos;s dual host/device compilation model and parse inline PTX assembly inside string literals, closing a gap in GPU IDE tooling that has existed since CUDA launched in 2007.</description><pubDate>Mon, 16 Mar 2026 18:19:48 GMT</pubDate></item><item><title>Why AI Security Analysis Creates an Attack Surface That SAST Never Had</title><link>https://nebelwolfi.xyz/blog/2026-03-16-why-ai-security-analysis-creates-an-attack-surface-that-sast-never-had/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-16-why-ai-security-analysis-creates-an-attack-surface-that-sast-never-had/</guid><description>AI-driven code security analyzers like Codex Security process source files as natural language, creating an indirect prompt injection surface that rule-based SAST tools are structurally immune to, where suppressed findings are far harder to detect than false positives.</description><pubDate>Mon, 16 Mar 2026 18:19:20 GMT</pubDate></item><item><title>Agentic Engineering Is a Discipline, Not a Prompt Strategy</title><link>https://nebelwolfi.xyz/blog/2026-03-17-agentic-engineering-is-a-discipline-not-a-prompt-strategy/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-agentic-engineering-is-a-discipline-not-a-prompt-strategy/</guid><description>Agentic engineering is the emerging practice of building systems where LLMs act autonomously through tool loops and multi-step reasoning. It borrows from distributed systems, security, and software design in ways that most AI tutorials miss.</description><pubDate>Tue, 17 Mar 2026 20:49:24 GMT</pubDate></item><item><title>A Shell Is Just Fork and Exec Until It Isn&apos;t</title><link>https://nebelwolfi.xyz/blog/2026-03-17-a-shell-is-just-fork-and-exec-until-it-isn-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-a-shell-is-just-fork-and-exec-until-it-isn-t/</guid><description>Building a shell from scratch is a rewarding systems programming exercise, but the gap between a working REPL and a correct shell is wider than most tutorials show. Here is where the real complexity lives.</description><pubDate>Tue, 17 Mar 2026 21:04:55 GMT</pubDate></item><item><title>Agentic Engineering Is a New Discipline, Not a Prompt Trick</title><link>https://nebelwolfi.xyz/blog/2026-03-17-agentic-engineering-is-a-new-discipline-not-a-prompt-trick/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-agentic-engineering-is-a-new-discipline-not-a-prompt-trick/</guid><description>Agentic engineering describes the craft of building reliable software systems where LLMs loop, reason, and act through tools rather than just generating text. It demands a different mental model than traditional software engineering.</description><pubDate>Tue, 17 Mar 2026 20:41:35 GMT</pubDate></item><item><title>Agentic Engineering Is a Real Discipline, Not Just Prompting With Extra Steps</title><link>https://nebelwolfi.xyz/blog/2026-03-17-agentic-engineering-is-a-real-discipline-not-just-prompting-with-extra-steps/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-agentic-engineering-is-a-real-discipline-not-just-prompting-with-extra-steps/</guid><description>Simon Willison&apos;s new guide on agentic engineering lays out why building reliable LLM-powered systems requires a distinct engineering discipline, with its own patterns, failure modes, and design constraints.</description><pubDate>Tue, 17 Mar 2026 20:49:25 GMT</pubDate></item><item><title>Atoms Over Threads: Why Self-Contained Subagent Invocations Make Multi-Agent Systems Debuggable</title><link>https://nebelwolfi.xyz/blog/2026-03-17-atoms-over-threads-why-self-contained-subagent-invocations-make-multi-agent-syst/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-atoms-over-threads-why-self-contained-subagent-invocations-make-multi-agent-syst/</guid><description>Simon Willison&apos;s atom-everything pattern treats each subagent call as a stateless, self-contained invocation that receives full context at call time and terminates cleanly. Comparing this model against thread-based agent state reveals why explicit context injection produces more reproducible, parallelizable, and maintainable multi-agent systems.</description><pubDate>Tue, 17 Mar 2026 20:47:35 GMT</pubDate></item><item><title>Before the First Edit: How Coding Agents Orient Themselves to a Codebase</title><link>https://nebelwolfi.xyz/blog/2026-03-17-before-the-first-edit-how-coding-agents-orient-themselves-to-a-codebase/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-before-the-first-edit-how-coding-agents-orient-themselves-to-a-codebase/</guid><description>Aider, Cursor, and Claude Code each make a different architectural bet about how to load codebase context before the model acts. Understanding those bets explains where each agent succeeds and where it degrades.</description><pubDate>Tue, 17 Mar 2026 20:45:49 GMT</pubDate></item><item><title>Beyond Call/Ret Cycles: Function Boundaries as Optimization Walls</title><link>https://nebelwolfi.xyz/blog/2026-03-17-beyond-call-ret-cycles-function-boundaries-as-optimization-walls/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-beyond-call-ret-cycles-function-boundaries-as-optimization-walls/</guid><description>The raw cycle cost of a function call is small, but the real price is what the compiler cannot do across a call boundary: vectorize, constant-fold, eliminate dead branches. This post traces the full cost, the heuristics governing when the compiler saves you, and the tools available when it does not.</description><pubDate>Tue, 17 Mar 2026 20:29:20 GMT</pubDate></item><item><title>Between SQL and pandas: Why DuckDB Has Become the Data Layer for Coding Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-17-between-sql-and-pandas-why-duckdb-has-become-the-data-layer-for-coding-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-between-sql-and-pandas-why-duckdb-has-become-the-data-layer-for-coding-agents/</guid><description>The choice of query engine shapes what a coding agent can discover about your data before it writes a single line of analysis. DuckDB&apos;s in-process SQL, direct file querying, and structured introspection surface make it a natural fit for the agent data analysis loop.</description><pubDate>Tue, 17 Mar 2026 20:54:50 GMT</pubDate></item><item><title>Beyond Taint Tracking: The Vulnerability Classes That Require Code Semantics</title><link>https://nebelwolfi.xyz/blog/2026-03-17-beyond-taint-tracking-the-vulnerability-classes-that-require-code-semantics/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-beyond-taint-tracking-the-vulnerability-classes-that-require-code-semantics/</guid><description>Injection-class vulnerabilities have a structural signature that taint analysis can capture. Authorization bugs, IDOR, and logic flaws don&apos;t. Understanding the difference clarifies what AI-driven security analysis is actually adding to the toolbox.</description><pubDate>Tue, 17 Mar 2026 21:08:26 GMT</pubDate></item><item><title>bhyve and ZFS: What It Looks Like When a Hypervisor Fits the OS</title><link>https://nebelwolfi.xyz/blog/2026-03-17-bhyve-and-zfs-what-it-looks-like-when-a-hypervisor-fits-the-os/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-bhyve-and-zfs-what-it-looks-like-when-a-hypervisor-fits-the-os/</guid><description>FreeBSD&apos;s bhyve hypervisor is BSD-licensed, built into the base system, and designed to compose with ZFS and jails rather than replace them. The architecture is simpler than KVM/QEMU and the operational model is cohesive in ways that matter for systems work.</description><pubDate>Tue, 17 Mar 2026 21:22:22 GMT</pubDate></item><item><title>BSD Networking&apos;s Forty-Year Run: From Berkeley to Netflix&apos;s CDN</title><link>https://nebelwolfi.xyz/blog/2026-03-17-bsd-networking-s-forty-year-run-from-berkeley-to-netflix-s-cdn/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-bsd-networking-s-forty-year-run-from-berkeley-to-netflix-s-cdn/</guid><description>The TCP/IP implementation Berkeley shipped in 1983 spread to every major operating system. FreeBSD continues that lineage today with kernel TLS, the RACK TCP stack, and CDN infrastructure running at hundreds of gigabits per second.</description><pubDate>Tue, 17 Mar 2026 20:58:48 GMT</pubDate></item><item><title>Building a Local Voice Assistant Worth Living With</title><link>https://nebelwolfi.xyz/blog/2026-03-17-building-a-local-voice-assistant-worth-living-with/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-building-a-local-voice-assistant-worth-living-with/</guid><description>A technical breakdown of the Wyoming protocol, faster-whisper model selection, and Piper TTS that make locally hosted voice assistants in Home Assistant reliable enough for daily use.</description><pubDate>Tue, 17 Mar 2026 20:56:00 GMT</pubDate></item><item><title>C++26 Reflection and the Value That Changed Everything</title><link>https://nebelwolfi.xyz/blog/2026-03-17-c-26-reflection-and-the-value-that-changed-everything/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-c-26-reflection-and-the-value-that-changed-everything/</guid><description>C++26 compile-time reflection via P2996 succeeds where a decade of earlier proposals failed, and the reason comes down to a single design decision: reflected entities are values, not types.</description><pubDate>Tue, 17 Mar 2026 21:09:27 GMT</pubDate></item><item><title>C++26 Reflection Operates on the Semantic Model, Not the Syntax Tree</title><link>https://nebelwolfi.xyz/blog/2026-03-17-c-26-reflection-operates-on-the-semantic-model-not-the-syntax-tree/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-c-26-reflection-operates-on-the-semantic-model-not-the-syntax-tree/</guid><description>P2996 gives C++ library authors the ability to enumerate struct members and enum values at compile time, replacing a decade of macro workarounds with zero-overhead generic code that the optimizer treats as if you wrote it by hand.</description><pubDate>Tue, 17 Mar 2026 21:06:32 GMT</pubDate></item><item><title>Code, Execute, Observe: What Coding Agents Actually Do With Your Data</title><link>https://nebelwolfi.xyz/blog/2026-03-17-code-execute-observe-what-coding-agents-actually-do-with-your-data/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-code-execute-observe-what-coding-agents-actually-do-with-your-data/</guid><description>Coding agents that generate and execute Python or SQL for data analysis work differently from standard LLM Q&amp;A, and the differences matter. Here&apos;s what&apos;s actually happening under the hood and where these tools succeed or stumble.</description><pubDate>Tue, 17 Mar 2026 15:13:44 GMT</pubDate></item><item><title>C++ Coroutines Are a Framework You Have to Build Before You Can Use</title><link>https://nebelwolfi.xyz/blog/2026-03-17-c-coroutines-are-a-framework-you-have-to-build-before-you-can-use/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-c-coroutines-are-a-framework-you-have-to-build-before-you-can-use/</guid><description>C++20 coroutines require substantial boilerplate — promise_type, coroutine_handle, and awaitables — because the standard gives you machinery, not policy. This post explains exactly what each piece does and why the design is built the way it is.</description><pubDate>Tue, 17 Mar 2026 21:10:56 GMT</pubDate></item><item><title>Codex Gets Subagents: The Architecture of Delegating Code Work</title><link>https://nebelwolfi.xyz/blog/2026-03-17-codex-gets-subagents-the-architecture-of-delegating-code-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-codex-gets-subagents-the-architecture-of-delegating-code-work/</guid><description>OpenAI&apos;s Codex CLI now supports user-defined subagents and custom agents via the Agents SDK. The architectural choices behind context isolation, description-driven routing, and per-agent model selection reveal a distinct philosophy from frameworks like LangGraph.</description><pubDate>Tue, 17 Mar 2026 21:00:04 GMT</pubDate></item><item><title>Codex Grows a Delegation Layer: What Subagents and Custom Agents Actually Change</title><link>https://nebelwolfi.xyz/blog/2026-03-17-codex-grows-a-delegation-layer-what-subagents-and-custom-agents-actually-change/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-codex-grows-a-delegation-layer-what-subagents-and-custom-agents-actually-change/</guid><description>OpenAI&apos;s Codex CLI now supports spawning subagents and defining custom agents via the Agents SDK. Here&apos;s what the architecture looks like, why context isolation is the load-bearing design decision, and how this compares to other multi-agent frameworks.</description><pubDate>Tue, 17 Mar 2026 20:54:36 GMT</pubDate></item><item><title>Codex Subagents and the Architecture of Context Isolation</title><link>https://nebelwolfi.xyz/blog/2026-03-17-codex-subagents-and-the-architecture-of-context-isolation/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-codex-subagents-and-the-architecture-of-context-isolation/</guid><description>OpenAI&apos;s Codex now supports subagents and custom agents through the Agents SDK, letting orchestrators delegate to specialized subordinate agents with isolated context windows. The key design decision is how context crosses those boundaries, and the tradeoffs are worth understanding before you build on it.</description><pubDate>Tue, 17 Mar 2026 20:50:05 GMT</pubDate></item><item><title>Codex Subagents Route by Description, Not by Graph</title><link>https://nebelwolfi.xyz/blog/2026-03-17-codex-subagents-route-by-description-not-by-graph/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-codex-subagents-route-by-description-not-by-graph/</guid><description>OpenAI&apos;s Codex now supports custom subagents via the Agents SDK, routing between them using natural language descriptions rather than explicit dispatch logic. Understanding the trade-offs of this choice matters for anyone building reliable multi-agent coding workflows.</description><pubDate>Tue, 17 Mar 2026 21:08:05 GMT</pubDate></item><item><title>Coding Agents Under Pressure: How Session Length Erodes Decision Quality</title><link>https://nebelwolfi.xyz/blog/2026-03-17-coding-agents-under-pressure-how-session-length-erodes-decision-quality/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-coding-agents-under-pressure-how-session-length-erodes-decision-quality/</guid><description>A coding agent at turn 5 is operating under different conditions than the same agent at turn 50. Understanding how context accumulates and attention degrades over long sessions changes how you scope tasks and design tools for coding agents.</description><pubDate>Tue, 17 Mar 2026 21:04:23 GMT</pubDate></item><item><title>Compile-Time, Semantic, Universal: The Design Bets Behind C++26 Reflection</title><link>https://nebelwolfi.xyz/blog/2026-03-17-compile-time-semantic-universal-the-design-bets-behind-c-26-reflection/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-compile-time-semantic-universal-the-design-bets-behind-c-26-reflection/</guid><description>C++26&apos;s reflection proposal P2996 makes specific choices across compile-time vs runtime, introspective vs generative, and opt-in vs universal. Understanding those axes reveals why the feature works the way it does and why a decade of earlier proposals didn&apos;t make it.</description><pubDate>Tue, 17 Mar 2026 21:03:44 GMT</pubDate></item><item><title>Confident Findings, Invisible Scope: The Coverage Trade in AI Security Analysis</title><link>https://nebelwolfi.xyz/blog/2026-03-17-confident-findings-invisible-scope-the-coverage-trade-in-ai-security-analysis/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-confident-findings-invisible-scope-the-coverage-trade-in-ai-security-analysis/</guid><description>AI-driven constraint reasoning reduces false positives, but it does so by under-approximating the vulnerability space rather than over-approximating it. Understanding what that means for coverage transparency clarifies where the approach works and where it requires supplementing.</description><pubDate>Tue, 17 Mar 2026 21:02:08 GMT</pubDate></item><item><title>Context Anchoring Solves the Same Problem ADRs Solve, Just Faster</title><link>https://nebelwolfi.xyz/blog/2026-03-17-context-anchoring-solves-the-same-problem-adrs-solve-just-faster/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-context-anchoring-solves-the-same-problem-adrs-solve-just-faster/</guid><description>Rahul Garg&apos;s context anchoring pattern externalizes AI session decisions into a living document, preventing attention drift in long conversations. The technique maps closely to Architecture Decision Records, a tool software teams already use to stop decision context from getting lost.</description><pubDate>Tue, 17 Mar 2026 21:24:04 GMT</pubDate></item><item><title>Context Window as State: What Happens Inside a Coding Agent Run</title><link>https://nebelwolfi.xyz/blog/2026-03-17-context-window-as-state-what-happens-inside-a-coding-agent-run/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-context-window-as-state-what-happens-inside-a-coding-agent-run/</guid><description>A technical look at what a coding agent&apos;s context window actually contains during a run, and how that structure shapes tool design, context pressure management, and task performance.</description><pubDate>Tue, 17 Mar 2026 15:18:35 GMT</pubDate></item><item><title>Crossing the Function Boundary: Calling Conventions, Inlining, and the SIMD You Never Got</title><link>https://nebelwolfi.xyz/blog/2026-03-17-crossing-the-function-boundary-calling-conventions-inlining-and-the-simd-you-nev/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-crossing-the-function-boundary-calling-conventions-inlining-and-the-simd-you-nev/</guid><description>Function call overhead in tight loops is rarely about the call instruction itself. The real cost is the auto-vectorization the compiler stops attempting once it hits an opaque function boundary.</description><pubDate>Tue, 17 Mar 2026 20:54:23 GMT</pubDate></item><item><title>Custom Arenas and Extent Hooks: The jemalloc API Behind Meta&apos;s NUMA Work</title><link>https://nebelwolfi.xyz/blog/2026-03-17-custom-arenas-and-extent-hooks-the-jemalloc-api-behind-meta-s-numa-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-custom-arenas-and-extent-hooks-the-jemalloc-api-behind-meta-s-numa-work/</guid><description>jemalloc&apos;s extent hooks API lets you override every OS-level memory operation per arena. Understanding it explains how Meta is implementing NUMA-aware allocation, and what else the interface enables.</description><pubDate>Tue, 17 Mar 2026 21:15:01 GMT</pubDate></item><item><title>Data Governance Infrastructure Turns Out to Be Agent Infrastructure</title><link>https://nebelwolfi.xyz/blog/2026-03-17-data-governance-infrastructure-turns-out-to-be-agent-infrastructure/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-data-governance-infrastructure-turns-out-to-be-agent-infrastructure/</guid><description>The schema annotations, column descriptions, and accepted-values tests that data teams maintain in dbt are exactly what coding agents need to produce correct analysis. These are the same investment.</description><pubDate>Tue, 17 Mar 2026 21:07:26 GMT</pubDate></item><item><title>Dirty, Muzzy, and Retained: What jemalloc Knows About Your Memory That RSS Doesn&apos;t</title><link>https://nebelwolfi.xyz/blog/2026-03-17-dirty-muzzy-and-retained-what-jemalloc-knows-about-your-memory-that-rss-doesn-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-dirty-muzzy-and-retained-what-jemalloc-knows-about-your-memory-that-rss-doesn-t/</guid><description>jemalloc tracks freed memory through several internal states before returning it to the OS. Reading those states, and tuning the transitions between them, is the difference between a service that manages memory well and one that merely appears to.</description><pubDate>Tue, 17 Mar 2026 21:07:49 GMT</pubDate></item><item><title>Engineering Resilient Agent Systems: What Distributed Systems Got Right First</title><link>https://nebelwolfi.xyz/blog/2026-03-17-engineering-resilient-agent-systems-what-distributed-systems-got-right-first/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-engineering-resilient-agent-systems-what-distributed-systems-got-right-first/</guid><description>Agentic engineering is best understood through the lens of distributed systems: LLMs are unreliable dependencies, and the patterns that make microservices resilient apply directly to agent loops, tool design, and multi-agent orchestration.</description><pubDate>Tue, 17 Mar 2026 21:10:02 GMT</pubDate></item><item><title>Evaluating Generated Games Is a Different Problem Than Evaluating Generated Code</title><link>https://nebelwolfi.xyz/blog/2026-03-17-evaluating-generated-games-is-a-different-problem-than-evaluating-generated-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-evaluating-generated-games-is-a-different-problem-than-evaluating-generated-code/</guid><description>Godogen generates complete Godot 4 games from text prompts, but verifying that a generated game actually works exposes a gap that unit tests and crash-free launches cannot close. Here is what that gap looks like and what tools exist to bridge it.</description><pubDate>Tue, 17 Mar 2026 21:08:38 GMT</pubDate></item><item><title>Every Allocator Is a Lifetime Contract</title><link>https://nebelwolfi.xyz/blog/2026-03-17-every-allocator-is-a-lifetime-contract/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-every-allocator-is-a-lifetime-contract/</guid><description>Custom memory allocators aren&apos;t just performance optimizations; each strategy encodes a specific commitment about when your data lives and dies. Understanding that model changes how you design systems from the ground up.</description><pubDate>Tue, 17 Mar 2026 21:04:03 GMT</pubDate></item><item><title>Externalizing State Has Always Been How We Solve the Shared Context Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-17-externalizing-state-has-always-been-how-we-solve-the-shared-context-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-externalizing-state-has-always-been-how-we-solve-the-shared-context-problem/</guid><description>Context anchoring works because transformer attention is bounded working memory with no persistence outside the context window, and software engineering has solved that class of problem the same way for decades: externalize the state. A look at the mechanics and the historical pattern.</description><pubDate>Tue, 17 Mar 2026 21:06:32 GMT</pubDate></item><item><title>Five Years of C++20 Range Adaptors: Which Design Bets Paid Off</title><link>https://nebelwolfi.xyz/blog/2026-03-17-five-years-of-c-20-range-adaptors-which-design-bets-paid-off/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-five-years-of-c-20-range-adaptors-which-design-bets-paid-off/</guid><description>A retrospective on the C++20 Ranges library&apos;s major design decisions — the pipe model, borrowed ranges, niebloids, and views::join — examining what worked in production and what C++23 and C++26 are still fixing.</description><pubDate>Tue, 17 Mar 2026 21:05:59 GMT</pubDate></item><item><title>Five Years of C++ Range Adaptors: The Design Tensions That C++23 Quietly Resolved (And the Ones It Did Not)</title><link>https://nebelwolfi.xyz/blog/2026-03-17-five-years-of-c-range-adaptors-the-design-tensions-that-c-23-quietly-resolved-an/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-five-years-of-c-range-adaptors-the-design-tensions-that-c-23-quietly-resolved-an/</guid><description>A retrospective on C++20 range adaptors five years in, examining the const-iterability problem, the split_view redesign, what C++23 fixed, and how Rust&apos;s iterator model handled the same tradeoffs differently.</description><pubDate>Tue, 17 Mar 2026 21:14:23 GMT</pubDate></item><item><title>FreeBSD Jails at Twenty-Five: The Isolation Design That Container Runtimes Keep Rediscovering</title><link>https://nebelwolfi.xyz/blog/2026-03-17-freebsd-jails-at-twenty-five-the-isolation-design-that-container-runtimes-keep-r/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-freebsd-jails-at-twenty-five-the-isolation-design-that-container-runtimes-keep-r/</guid><description>FreeBSD jails have provided kernel-level process isolation since 2000, predating Docker by fourteen years. Their architecture as a single, purpose-designed security primitive explains why their security record and operational model look so different from Linux namespace-based containers.</description><pubDate>Tue, 17 Mar 2026 21:23:35 GMT</pubDate></item><item><title>FreeBSD&apos;s DTrace: Complete Kernel Observability as a Base System Feature</title><link>https://nebelwolfi.xyz/blog/2026-03-17-freebsd-s-dtrace-complete-kernel-observability-as-a-base-system-feature/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-freebsd-s-dtrace-complete-kernel-observability-as-a-base-system-feature/</guid><description>FreeBSD ships DTrace in the base system, built against the same kernel source tree. The FBT provider instruments every kernel function automatically, typed CTF access covers the full data model, and the integration quality is a direct consequence of single-codebase development.</description><pubDate>Tue, 17 Mar 2026 21:18:25 GMT</pubDate></item><item><title>From Making to Supervising: What the AI Coding Shift Actually Costs the Profession</title><link>https://nebelwolfi.xyz/blog/2026-03-17-from-making-to-supervising-what-the-ai-coding-shift-actually-costs-the-professio/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-from-making-to-supervising-what-the-ai-coding-shift-actually-costs-the-professio/</guid><description>Annie Vella&apos;s research on 158 engineers documents a shift from creation to supervisory work, and Martin Fowler describes it as traumatic. What that word captures is not just a skills question — it is a professional identity question with consequences for how the field trains its engineers.</description><pubDate>Tue, 17 Mar 2026 21:13:04 GMT</pubDate></item><item><title>From Prompt to Pipeline: What Agentic Engineering Actually Demands</title><link>https://nebelwolfi.xyz/blog/2026-03-17-from-prompt-to-pipeline-what-agentic-engineering-actually-demands/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-from-prompt-to-pipeline-what-agentic-engineering-actually-demands/</guid><description>Agentic engineering is the discipline of building systems where LLMs take sequences of actions across multiple steps and tools. This post explores the architectural patterns, failure modes, and engineering tradeoffs that define this emerging practice.</description><pubDate>Tue, 17 Mar 2026 20:26:59 GMT</pubDate></item><item><title>From Prompting to Engineering: What the Agent Loop Actually Changes</title><link>https://nebelwolfi.xyz/blog/2026-03-17-from-prompting-to-engineering-what-the-agent-loop-actually-changes/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-from-prompting-to-engineering-what-the-agent-loop-actually-changes/</guid><description>Agentic engineering is a distinct software discipline that emerges the moment you give an LLM a loop and tools. This post traces what that transition demands technically, from tool design and context mechanics to prompt injection and multi-agent failure modes.</description><pubDate>Tue, 17 Mar 2026 20:48:23 GMT</pubDate></item><item><title>From Prompting to Engineering: What the Agent Loop Changes</title><link>https://nebelwolfi.xyz/blog/2026-03-17-from-prompting-to-engineering-what-the-agent-loop-changes/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-from-prompting-to-engineering-what-the-agent-loop-changes/</guid><description>Agentic engineering is a distinct software discipline that emerges the moment you give an LLM a loop and tools. This post traces what that transition demands technically, from tool design and context mechanics to prompt injection and multi-agent failure modes.</description><pubDate>Tue, 17 Mar 2026 20:57:59 GMT</pubDate></item><item><title>From reflexpr to P2996: How C++26 Finally Got Compile-Time Reflection Right</title><link>https://nebelwolfi.xyz/blog/2026-03-17-from-reflexpr-to-p2996-how-c-26-finally-got-compile-time-reflection-right/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-from-reflexpr-to-p2996-how-c-26-finally-got-compile-time-reflection-right/</guid><description>C++26&apos;s P2996 proposal brings compile-time reflection to C++ after two decades of failed attempts, replacing the awkward type-based reflexpr approach with a value-based model that actually composes. Here&apos;s what changed, what the API looks like, and what it still deliberately excludes.</description><pubDate>Tue, 17 Mar 2026 21:03:29 GMT</pubDate></item><item><title>From Silver Medal to Production Use: The Remaining Distance in AI Formal Verification</title><link>https://nebelwolfi.xyz/blog/2026-03-17-from-silver-medal-to-production-use-the-remaining-distance-in-ai-formal-verifica/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-from-silver-medal-to-production-use-the-remaining-distance-in-ai-formal-verifica/</guid><description>Mistral&apos;s open-source Leanstral proof agent is the latest entry in a rapidly moving competitive arc that includes AlphaProof&apos;s IMO 2024 results. The benchmark numbers are strong; the distance between competition mathematics and routine software verification is where the interesting work remains.</description><pubDate>Tue, 17 Mar 2026 21:08:49 GMT</pubDate></item><item><title>From tcache to mcache: How Go&apos;s Runtime and jemalloc Converged on the Same Architecture</title><link>https://nebelwolfi.xyz/blog/2026-03-17-from-tcache-to-mcache-how-go-s-runtime-and-jemalloc-converged-on-the-same-archit/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-from-tcache-to-mcache-how-go-s-runtime-and-jemalloc-converged-on-the-same-archit/</guid><description>Go&apos;s runtime allocator and jemalloc arrived at nearly identical designs through separate paths: size classes, thread-local caches, and background scavenging. Where they diverge reveals why C/C++ allocators require ongoing investment that managed runtimes handle with garbage collection.</description><pubDate>Tue, 17 Mar 2026 21:13:47 GMT</pubDate></item><item><title>Function Call Overhead Is Mostly About What the Optimizer Can&apos;t See</title><link>https://nebelwolfi.xyz/blog/2026-03-17-function-call-overhead-is-mostly-about-what-the-optimizer-can-t-see/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-function-call-overhead-is-mostly-about-what-the-optimizer-can-t-see/</guid><description>The raw cycle cost of a function call is measurable but small. The larger performance impact comes from what the compiler loses when a call boundary makes a function body opaque: vectorization, alias analysis, constant propagation, and loop invariant hoisting all break down.</description><pubDate>Tue, 17 Mar 2026 20:53:17 GMT</pubDate></item><item><title>Function Call Overhead Is Not a C++ Problem: A Cross-Language View</title><link>https://nebelwolfi.xyz/blog/2026-03-17-function-call-overhead-is-not-a-c-problem-a-cross-language-view/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-function-call-overhead-is-not-a-c-problem-a-cross-language-view/</guid><description>Daniel Lemire&apos;s analysis of function call costs in C++ is a useful entry point, but the mechanics differ meaningfully across language runtimes. This post traces how inlining, calling conventions, and JIT compilation shape function call overhead in C++, Rust, Go, and JavaScript.</description><pubDate>Tue, 17 Mar 2026 20:34:06 GMT</pubDate></item><item><title>GDScript Is a Harder LLM Target Than C# or C++, and the Gap Is Structural</title><link>https://nebelwolfi.xyz/blog/2026-03-17-gdscript-is-a-harder-llm-target-than-c-or-c-and-the-gap-is-structural/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-gdscript-is-a-harder-llm-target-than-c-or-c-and-the-gap-is-structural/</guid><description>Godogen&apos;s year of development generating complete Godot 4 games from prompts reveals why GDScript is structurally more difficult for LLMs than Unity&apos;s C# or Unreal&apos;s C++, and what any serious pipeline must build to compensate.</description><pubDate>Tue, 17 Mar 2026 21:05:18 GMT</pubDate></item><item><title>Generate the Builder, Not the Format: An Architectural Lesson from Godogen</title><link>https://nebelwolfi.xyz/blog/2026-03-17-generate-the-builder-not-the-format-an-architectural-lesson-from-godogen/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-generate-the-builder-not-the-format-an-architectural-lesson-from-godogen/</guid><description>Godogen&apos;s pipeline for generating complete Godot 4 games from text prompts avoids generating .tscn scene files directly, instead writing headless GDScript that constructs scenes through the engine&apos;s own API. The tradeoffs this creates explain a useful principle for any code generation pipeline targeting machine-authored formats.</description><pubDate>Tue, 17 Mar 2026 21:19:14 GMT</pubDate></item><item><title>Generating a Complete Game Is a Different Problem Than Generating Code</title><link>https://nebelwolfi.xyz/blog/2026-03-17-generating-a-complete-game-is-a-different-problem-than-generating-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-generating-a-complete-game-is-a-different-problem-than-generating-code/</guid><description>Godogen builds playable Godot 4 games from text prompts, and the year of engineering work behind it reveals why &apos;complete game&apos; is categorically harder than &apos;correct code&apos;: coupled artifacts that fail silently across layer boundaries.</description><pubDate>Tue, 17 Mar 2026 21:24:23 GMT</pubDate></item><item><title>Git Commits as Checkpoints: How Coding Agents Make Their Work Recoverable</title><link>https://nebelwolfi.xyz/blog/2026-03-17-git-commits-as-checkpoints-how-coding-agents-make-their-work-recoverable/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-git-commits-as-checkpoints-how-coding-agents-make-their-work-recoverable/</guid><description>Coding agent sessions generate changes faster than developers can track them. Git commits at each step, not just at the end, are the mechanism that makes agent work auditable, reversible, and safe to merge.</description><pubDate>Tue, 17 Mar 2026 20:58:38 GMT</pubDate></item><item><title>Holotron-12B Is an Architecture Argument, Not Just a Benchmark</title><link>https://nebelwolfi.xyz/blog/2026-03-17-holotron-12b-is-an-architecture-argument-not-just-a-benchmark/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-holotron-12b-is-an-architecture-argument-not-just-a-benchmark/</guid><description>H Company&apos;s Holotron-12B bets on NVIDIA&apos;s hybrid Mamba-2/attention Nemotron-H architecture to achieve nearly 2x throughput over its transformer predecessor, revealing how the statefulness of GUI agent workloads maps poorly onto standard KV-cache designs.</description><pubDate>Tue, 17 Mar 2026 21:21:25 GMT</pubDate></item><item><title>How Distributed Teams Compound the Cost of Every Review Layer</title><link>https://nebelwolfi.xyz/blog/2026-03-17-how-distributed-teams-compound-the-cost-of-every-review-layer/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-how-distributed-teams-compound-the-cost-of-every-review-layer/</guid><description>Avery Pennarun&apos;s claim that every review layer slows teams down by 10x is credible on its own, but for distributed teams with timezone gaps, the compounding effect is substantially worse, turning individual review delays into cascading project stalls.</description><pubDate>Tue, 17 Mar 2026 20:51:18 GMT</pubDate></item><item><title>How Prompt Injection Scales With Agent Depth</title><link>https://nebelwolfi.xyz/blog/2026-03-17-how-prompt-injection-scales-with-agent-depth/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-how-prompt-injection-scales-with-agent-depth/</guid><description>Multi-agent LLM systems introduce a trust surface that single-agent designs do not face. Prompt injection attacks propagate recursively through agent trees, and most current frameworks handle this poorly by default.</description><pubDate>Tue, 17 Mar 2026 20:29:47 GMT</pubDate></item><item><title>How Lean 4 Became the Infrastructure Layer for AI Theorem Proving</title><link>https://nebelwolfi.xyz/blog/2026-03-17-how-lean-4-became-the-infrastructure-layer-for-ai-theorem-proving/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-how-lean-4-became-the-infrastructure-layer-for-ai-theorem-proving/</guid><description>Mistral&apos;s Leanstral joins AlphaProof, LeanDojo, and LeanCopilot in a field that has converged almost entirely on Lean 4. That convergence traces to specific design decisions: a first-class LSP interface, tactics implemented as Lean programs, and Mathlib as a unified training corpus with consistent conventions.</description><pubDate>Tue, 17 Mar 2026 21:09:22 GMT</pubDate></item><item><title>How Tail Call Optimization Eliminates Call Overhead Without Inlining</title><link>https://nebelwolfi.xyz/blog/2026-03-17-how-tail-call-optimization-eliminates-call-overhead-without-inlining/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-how-tail-call-optimization-eliminates-call-overhead-without-inlining/</guid><description>Tail call optimization replaces a function call with a jump, reusing the caller&apos;s stack frame entirely. C++ destructors block it silently, but Clang&apos;s musttail attribute makes the guarantee explicit and turns failure into a compile error.</description><pubDate>Tue, 17 Mar 2026 20:56:47 GMT</pubDate></item><item><title>Indexing the Web That Algorithms Left Behind</title><link>https://nebelwolfi.xyz/blog/2026-03-17-indexing-the-web-that-algorithms-left-behind/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-indexing-the-web-that-algorithms-left-behind/</guid><description>Kagi Small Web is a curated feed and search layer for personal blogs and independent sites. It raises a harder question: can infrastructure solve what is fundamentally a discoverability crisis twenty years in the making?</description><pubDate>Tue, 17 Mar 2026 20:58:41 GMT</pubDate></item><item><title>Inlining Across Boundaries: Why Function Call Cost Is Really an Optimization Visibility Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-17-inlining-across-boundaries-why-function-call-cost-is-really-an-optimization-visi/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-inlining-across-boundaries-why-function-call-cost-is-really-an-optimization-visi/</guid><description>Daniel Lemire&apos;s breakdown of function call overhead reveals that the real cost isn&apos;t the 4–8 cycles of call/ret overhead — it&apos;s the vectorization and optimization opportunities the compiler surrenders when it can&apos;t see through a call boundary. This post traces that mechanism and examines how C++, Rust, Java, and Go each grapple with it differently.</description><pubDate>Tue, 17 Mar 2026 20:40:36 GMT</pubDate></item><item><title>Inside the Tool Loop: Context, Edits, and Error Recovery in Coding Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-17-inside-the-tool-loop-context-edits-and-error-recovery-in-coding-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-inside-the-tool-loop-context-edits-and-error-recovery-in-coding-agents/</guid><description>Every coding agent runs the same fundamental pattern: a loop of model inference and tool execution. The engineering decisions forced by context limits, edit formats, and error recovery shape every coding agent in production today.</description><pubDate>Tue, 17 Mar 2026 21:11:57 GMT</pubDate></item><item><title>Leanstral and the Open-Source Turn in AI Formal Verification</title><link>https://nebelwolfi.xyz/blog/2026-03-17-leanstral-and-the-open-source-turn-in-ai-formal-verification/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-leanstral-and-the-open-source-turn-in-ai-formal-verification/</guid><description>Mistral&apos;s Leanstral is an open-source, locally-deployable agent for Lean 4 formal proof engineering. Here is how its architecture compares to AlphaProof and LeanDojo, and where the remaining hard problems in AI-assisted verification actually are.</description><pubDate>Tue, 17 Mar 2026 20:59:19 GMT</pubDate></item><item><title>Mathlib Is the Infrastructure: Why Lean 4 Became the Center of Gravity for AI Proof Research</title><link>https://nebelwolfi.xyz/blog/2026-03-17-mathlib-is-the-infrastructure-why-lean-4-became-the-center-of-gravity-for-ai-pro/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-mathlib-is-the-infrastructure-why-lean-4-became-the-center-of-gravity-for-ai-pro/</guid><description>Mistral&apos;s Leanstral is built on Lean 4 and Mathlib, a 200,000-theorem community library whose coherence and structure are the prerequisite that made LLM-assisted formal proof engineering tractable.</description><pubDate>Tue, 17 Mar 2026 21:08:02 GMT</pubDate></item><item><title>Minimal Footprint Is the Design Principle Behind Good Subagent Boundaries</title><link>https://nebelwolfi.xyz/blog/2026-03-17-minimal-footprint-is-the-design-principle-behind-good-subagent-boundaries/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-minimal-footprint-is-the-design-principle-behind-good-subagent-boundaries/</guid><description>The minimal footprint principle for subagents is usually framed as a security recommendation, but it doubles as the sharpest architectural heuristic for figuring out where to draw task boundaries in a multi-agent system.</description><pubDate>Tue, 17 Mar 2026 20:41:13 GMT</pubDate></item><item><title>NUMA-Blind No More: The Hardware Gap jemalloc Is Finally Closing</title><link>https://nebelwolfi.xyz/blog/2026-03-17-numa-blind-no-more-the-hardware-gap-jemalloc-is-finally-closing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-numa-blind-no-more-the-hardware-gap-jemalloc-is-finally-closing/</guid><description>On modern multi-socket servers, jemalloc&apos;s arena assignment has been topology-blind since 2005. Meta&apos;s 2026 upstream investment fixes that with NUMA-aware arena assignment and transparent huge page alignment, with implications for FreeBSD, Redis, and any RocksDB-backed database.</description><pubDate>Tue, 17 Mar 2026 21:16:02 GMT</pubDate></item><item><title>One Task, Many Models: The Cost-Performance Case for Custom Agents in Codex</title><link>https://nebelwolfi.xyz/blog/2026-03-17-one-task-many-models-the-cost-performance-case-for-custom-agents-in-codex/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-one-task-many-models-the-cost-performance-case-for-custom-agents-in-codex/</guid><description>Codex custom agents let you assign different models to different roles in a coding workflow. Here is why that matters more than it might look, and how to think about structuring the hierarchy.</description><pubDate>Tue, 17 Mar 2026 20:53:18 GMT</pubDate></item><item><title>Programs Are Proofs: The Type Theory Behind Leanstral&apos;s Trustworthiness</title><link>https://nebelwolfi.xyz/blog/2026-03-17-programs-are-proofs-the-type-theory-behind-leanstral-s-trustworthiness/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-programs-are-proofs-the-type-theory-behind-leanstral-s-trustworthiness/</guid><description>Mistral&apos;s Leanstral couples AI proof generation to Lean 4&apos;s kernel, but the real foundation is the Curry-Howard correspondence, which makes programs and proofs the same thing. Understanding what the kernel actually typechecks reveals why the trustworthiness claim is structural rather than probabilistic.</description><pubDate>Tue, 17 Mar 2026 21:15:27 GMT</pubDate></item><item><title>Paxos Is Simple. The System Around It Is Not.</title><link>https://nebelwolfi.xyz/blog/2026-03-17-paxos-is-simple-the-system-around-it-is-not/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-paxos-is-simple-the-system-around-it-is-not/</guid><description>The core Paxos consensus algorithm fits in a few paragraphs and Lamport himself called it simple. The problem is that what Paxos specifies and what production systems need are very different things.</description><pubDate>Tue, 17 Mar 2026 20:50:53 GMT</pubDate></item><item><title>Proof Search Is the Hard Part: What Makes a Lean 4 Agent Different from a Code Generator</title><link>https://nebelwolfi.xyz/blog/2026-03-17-proof-search-is-the-hard-part-what-makes-a-lean-4-agent-different-from-a-code-ge/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-proof-search-is-the-hard-part-what-makes-a-lean-4-agent-different-from-a-code-ge/</guid><description>Leanstral from Mistral AI frames formal proof engineering as a search problem, not a generation problem. The Lean 4 kernel&apos;s deterministic feedback is what makes that distinction meaningful and what separates proof assistants from ordinary code completion.</description><pubDate>Tue, 17 Mar 2026 20:52:58 GMT</pubDate></item><item><title>Prompting Is Not the Skill: Writing Specifications for LLM-Assisted Development</title><link>https://nebelwolfi.xyz/blog/2026-03-17-prompting-is-not-the-skill-writing-specifications-for-llm-assisted-development/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-prompting-is-not-the-skill-writing-specifications-for-llm-assisted-development/</guid><description>The quality of LLM-generated code depends less on which model you use and more on how precisely you specified the task. Here&apos;s what an effective LLM specification looks like, why it differs from a human-readable spec, and why writing it is valuable beyond what it produces.</description><pubDate>Tue, 17 Mar 2026 21:11:24 GMT</pubDate></item><item><title>Python&apos;s JIT Problem Was Never the Code Generator</title><link>https://nebelwolfi.xyz/blog/2026-03-17-python-s-jit-problem-was-never-the-code-generator/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-python-s-jit-problem-was-never-the-code-generator/</guid><description>Python 3.15&apos;s JIT recovery centers on the type analysis layer, not the copy-and-patch mechanism itself. The optimizer&apos;s type lattice determines whether compiled traces actually outpace the interpreter, and that&apos;s where the 3.15 work is concentrated.</description><pubDate>Tue, 17 Mar 2026 21:21:10 GMT</pubDate></item><item><title>Review Chains Don&apos;t Add Overhead, They Multiply It</title><link>https://nebelwolfi.xyz/blog/2026-03-17-review-chains-don-t-add-overhead-they-multiply-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-review-chains-don-t-add-overhead-they-multiply-it/</guid><description>A look at why stacking approval layers in software development compounds delays rather than adding them, and what the math of queues says about how teams should structure their review processes.</description><pubDate>Tue, 17 Mar 2026 20:43:17 GMT</pubDate></item><item><title>Review Layers Are an Org Chart in Disguise</title><link>https://nebelwolfi.xyz/blog/2026-03-17-review-layers-are-an-org-chart-in-disguise/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-review-layers-are-an-org-chart-in-disguise/</guid><description>Compounding review overhead is an organizational structure problem, not a process one. The number of sequential layers a change requires reflects authority boundaries, and those boundaries don&apos;t move when you update a pull request template.</description><pubDate>Tue, 17 Mar 2026 21:03:58 GMT</pubDate></item><item><title>Running Code Changes What Data Analysis Agents Can Actually Do</title><link>https://nebelwolfi.xyz/blog/2026-03-17-running-code-changes-what-data-analysis-agents-can-actually-do/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-running-code-changes-what-data-analysis-agents-can-actually-do/</guid><description>Coding agents that execute Python rather than predict text represent a fundamentally different class of data analysis tool. Here&apos;s what the execution loop actually changes, and where the limits still are.</description><pubDate>Tue, 17 Mar 2026 20:52:04 GMT</pubDate></item><item><title>SAST Tools Don&apos;t Fail at the Gate, They Drift There</title><link>https://nebelwolfi.xyz/blog/2026-03-17-sast-tools-don-t-fail-at-the-gate-they-drift-there/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-sast-tools-don-t-fail-at-the-gate-they-drift-there/</guid><description>Most SAST deployments start as blocking build gates and end as advisory reports that nobody reads. Understanding that drift, and why precision-optimized AI analysis changes the math, is the practical problem DevSecOps teams actually need to solve.</description><pubDate>Tue, 17 Mar 2026 21:11:35 GMT</pubDate></item><item><title>Schema Quality Determines Data Analysis Agent Output More Than Execution Does</title><link>https://nebelwolfi.xyz/blog/2026-03-17-schema-quality-determines-data-analysis-agent-output-more-than-execution-does/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-schema-quality-determines-data-analysis-agent-output-more-than-execution-does/</guid><description>Before a coding agent writes a single line of analysis code, what it knows about your data determines most of the quality outcome. Schema annotations, sample values, and business logic documentation matter more than sandbox choice.</description><pubDate>Tue, 17 Mar 2026 20:53:41 GMT</pubDate></item><item><title>Schema, Sandbox, and Loop: The Architecture Behind Coding Agents for Data Analysis</title><link>https://nebelwolfi.xyz/blog/2026-03-17-schema-sandbox-and-loop-the-architecture-behind-coding-agents-for-data-analysis/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-schema-sandbox-and-loop-the-architecture-behind-coding-agents-for-data-analysis/</guid><description>Coding agents that execute code rather than just generate it can explore unknown datasets, recover from errors, and produce verifiable results. Here is what makes the architecture work in practice.</description><pubDate>Tue, 17 Mar 2026 20:54:17 GMT</pubDate></item><item><title>Security Knowledge Ages, and SAST Rules Age With It</title><link>https://nebelwolfi.xyz/blog/2026-03-17-security-knowledge-ages-and-sast-rules-age-with-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-security-knowledge-ages-and-sast-rules-age-with-it/</guid><description>Every SAST rule is a snapshot of security research frozen at the moment it was written. The freshness problem in SAST coverage is separate from its false positive problem, and it affects custom code most severely.</description><pubDate>Tue, 17 Mar 2026 21:25:32 GMT</pubDate></item><item><title>Speculative Inlining and the Information C++ Doesn&apos;t Have at Compile Time</title><link>https://nebelwolfi.xyz/blog/2026-03-17-speculative-inlining-and-the-information-c-doesn-t-have-at-compile-time/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-speculative-inlining-and-the-information-c-doesn-t-have-at-compile-time/</guid><description>Daniel Lemire&apos;s analysis of function call cost in C++ maps the optimization barriers that call boundaries create. The JVM and V8 solve the same problem through speculative inlining guided by runtime profiling, with deoptimization as the fallback when assumptions fail.</description><pubDate>Tue, 17 Mar 2026 20:40:27 GMT</pubDate></item><item><title>SQL-First Data Analysis Agents: Why DuckDB Changed the Equation</title><link>https://nebelwolfi.xyz/blog/2026-03-17-sql-first-data-analysis-agents-why-duckdb-changed-the-equation/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-sql-first-data-analysis-agents-why-duckdb-changed-the-equation/</guid><description>Coding agents that default to SQL for data wrangling produce more reliable results than those generating pandas chains. DuckDB makes SQL practical for ad-hoc file analysis, and the structural difference between declarative and imperative code explains why.</description><pubDate>Tue, 17 Mar 2026 20:59:53 GMT</pubDate></item><item><title>SQLite Has Always Deserved Better Devtools. syntaqlite Starts to Deliver Them.</title><link>https://nebelwolfi.xyz/blog/2026-03-17-sqlite-has-always-deserved-better-devtools-syntaqlite-starts-to-deliver-them/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-sqlite-has-always-deserved-better-devtools-syntaqlite-starts-to-deliver-them/</guid><description>SQLite powers billions of devices but its developer tooling has barely kept pace. syntaqlite takes a high-fidelity approach to fixing that, exposing what SQLite is actually doing rather than hiding it behind abstractions.</description><pubDate>Tue, 17 Mar 2026 21:11:42 GMT</pubDate></item><item><title>Subagent Invocation Is Distributed RPC, and Frameworks Are Pretending Otherwise</title><link>https://nebelwolfi.xyz/blog/2026-03-17-subagent-invocation-is-distributed-rpc-and-frameworks-are-pretending-otherwise/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-subagent-invocation-is-distributed-rpc-and-frameworks-are-pretending-otherwise/</guid><description>Spawning a subagent is structurally identical to an RPC call with side effects, yet most agentic frameworks have not built the failure semantics to match. Here is what that means when things go wrong.</description><pubDate>Tue, 17 Mar 2026 20:38:09 GMT</pubDate></item><item><title>Supervisory Engineering Gets Harder as AI Gets Better</title><link>https://nebelwolfi.xyz/blog/2026-03-17-supervisory-engineering-gets-harder-as-ai-gets-better/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-supervisory-engineering-gets-harder-as-ai-gets-better/</guid><description>The intuitive expectation that better AI reduces verification overhead is wrong in a specific and structural way. Annie Vella&apos;s research and Martin Fowler&apos;s commentary point toward a middle loop that expands as model capability grows.</description><pubDate>Tue, 17 Mar 2026 21:24:53 GMT</pubDate></item><item><title>Testing Agentic Systems: Why Your Existing Test Suite Is Not Enough</title><link>https://nebelwolfi.xyz/blog/2026-03-17-testing-agentic-systems-why-your-existing-test-suite-is-not-enough/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-testing-agentic-systems-why-your-existing-test-suite-is-not-enough/</guid><description>Building agentic systems demands a different evaluation strategy than traditional software testing. Golden traces, LLM-as-judge, and observability tooling each address a part of the problem, but the gap between unit tests and reliable production agents is wider than most engineers expect.</description><pubDate>Tue, 17 Mar 2026 20:48:20 GMT</pubDate></item><item><title>Testing Agents Requires a Different Theory of Correctness</title><link>https://nebelwolfi.xyz/blog/2026-03-17-testing-agents-requires-a-different-theory-of-correctness/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-testing-agents-requires-a-different-theory-of-correctness/</guid><description>Agentic systems break traditional unit testing because model behavior is stochastic and task success is often semantically rather than syntactically defined. The evaluation approach that has stabilized combines behavioral benchmarks, LLM-as-judge scoring, and human-graded reference sets.</description><pubDate>Tue, 17 Mar 2026 20:55:00 GMT</pubDate></item><item><title>The Agent Loop Is a Conversation: How Coding Agents Actually Execute Tasks</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-agent-loop-is-a-conversation-how-coding-agents-actually-execute-tasks/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-agent-loop-is-a-conversation-how-coding-agents-actually-execute-tasks/</guid><description>A technical breakdown of the tool loop at the core of every coding agent, covering context accumulation, tool design trade-offs, and error recovery patterns that determine real-world reliability.</description><pubDate>Tue, 17 Mar 2026 20:56:07 GMT</pubDate></item><item><title>The Agent Library You Build for Codex Is Infrastructure, Not Configuration</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-agent-library-you-build-for-codex-is-infrastructure-not-configuration/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-agent-library-you-build-for-codex-is-infrastructure-not-configuration/</guid><description>Codex&apos;s custom agents encode project-specific conventions in natural language instructions that the orchestrator routes tasks through. Those instructions go stale as the codebase evolves, and the discipline required to keep them current is more like owning infrastructure than filling in a config file.</description><pubDate>Tue, 17 Mar 2026 20:53:03 GMT</pubDate></item><item><title>The Autoformalization Problem That Comes Before the Proof</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-autoformalization-problem-that-comes-before-the-proof/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-autoformalization-problem-that-comes-before-the-proof/</guid><description>Leanstral from Mistral AI handles proof search in Lean 4, but formal verification pipelines also require autoformalization: converting informal software specifications into formal propositions. This post examines the state of autoformalization research and why it remains the bottleneck for AI-assisted verification at engineering scale.</description><pubDate>Tue, 17 Mar 2026 21:09:34 GMT</pubDate></item><item><title>The Approval Ratchet: Why Review Requirements Only Ever Grow</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-approval-ratchet-why-review-requirements-only-ever-grow/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-approval-ratchet-why-review-requirements-only-ever-grow/</guid><description>Each review gate in a software team is a queue, and queues at high utilization compound multiplicatively. The queuing math explains why Avery Pennarun&apos;s &apos;10x per layer&apos; claim holds up, and why organizations keep adding review steps even as throughput collapses.</description><pubDate>Tue, 17 Mar 2026 20:57:32 GMT</pubDate></item><item><title>The Autonomy Dial: Engineering Agents That Know When to Ask</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-autonomy-dial-engineering-agents-that-know-when-to-ask/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-autonomy-dial-engineering-agents-that-know-when-to-ask/</guid><description>Agentic engineering is not just about enabling LLM autonomy, it is about calibrating it. This post explores the spectrum from supervised to fully autonomous operation and the engineering patterns that let production agents make the right call about when to act and when to confirm.</description><pubDate>Tue, 17 Mar 2026 20:36:29 GMT</pubDate></item><item><title>The Cognitive Shift Behind Writing Software With LLMs</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-cognitive-shift-behind-writing-software-with-llms/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-cognitive-shift-behind-writing-software-with-llms/</guid><description>LLM-assisted development doesn&apos;t make programming easier, it changes what kind of thinking is required. Here&apos;s what that shift actually demands from you day to day.</description><pubDate>Tue, 17 Mar 2026 21:10:40 GMT</pubDate></item><item><title>The Compiler Always Knew Your Types: How C++26 Reflection Changes the Game</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-compiler-always-knew-your-types-how-c-26-reflection-changes-the-game/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-compiler-always-knew-your-types-how-c-26-reflection-changes-the-game/</guid><description>C++26 static reflection via P2996 arrives after two decades of failed proposals, giving programmers compile-time access to type information the compiler already had, at zero runtime cost. Here is what changes and why it took so long.</description><pubDate>Tue, 17 Mar 2026 21:08:02 GMT</pubDate></item><item><title>The Compounding Math Behind Sequential Code Review</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-compounding-math-behind-sequential-code-review/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-compounding-math-behind-sequential-code-review/</guid><description>Avery Pennarun&apos;s argument that each review layer multiplies rather than adds latency is grounded in queuing theory. Here&apos;s the math, the research, and what it means for how teams structure approval chains.</description><pubDate>Tue, 17 Mar 2026 20:57:46 GMT</pubDate></item><item><title>The Context Economy of Subagent Calls</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-context-economy-of-subagent-calls/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-context-economy-of-subagent-calls/</guid><description>Every token you send to a subagent is a token you pay for, and most multi-agent systems are wasteful about it. Here is how to design what context a subagent actually needs and how to structure that interface deliberately.</description><pubDate>Tue, 17 Mar 2026 20:46:31 GMT</pubDate></item><item><title>The Context Window Is the Architecture: How Coding Agents Actually Work</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-context-window-is-the-architecture-how-coding-agents-actually-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-context-window-is-the-architecture-how-coding-agents-actually-work/</guid><description>Coding agents are not magic. They are tool loops constrained by a finite context window, and every major design decision, from file editing strategy to subagent spawning, follows from that constraint.</description><pubDate>Tue, 17 Mar 2026 20:32:50 GMT</pubDate></item><item><title>The Context Window Is the Process: What Coding Agents Are Actually Doing</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-context-window-is-the-process-what-coding-agents-are-actually-doing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-context-window-is-the-process-what-coding-agents-are-actually-doing/</guid><description>Coding agents look like magic until you map out the actual execution model. The context window is the process state, tool calls are the syscalls, and the loop is tighter than most people expect.</description><pubDate>Tue, 17 Mar 2026 20:41:16 GMT</pubDate></item><item><title>The Context Window Is the Process Boundary</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-context-window-is-the-process-boundary/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-context-window-is-the-process-boundary/</guid><description>Every surprising behavior of a coding agent, from stale file reads to prompt injection through PR descriptions, follows from one structural fact: all execution state lives in the context window. Understanding that changes how you design tools, manage context pressure, and debug agent runs.</description><pubDate>Tue, 17 Mar 2026 20:44:19 GMT</pubDate></item><item><title>The Conversation Is the Machine: How Coding Agents Work</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-conversation-is-the-machine-how-coding-agents-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-conversation-is-the-machine-how-coding-agents-work/</guid><description>Coding agents like Claude Code and Aider run on a tool-use loop that is architecturally simple, but understanding that the context window is the agent&apos;s only state explains every behavior and failure mode you encounter.</description><pubDate>Tue, 17 Mar 2026 20:56:32 GMT</pubDate></item><item><title>The Coordination Tax: Knowing When a Single Agent Is Enough</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-coordination-tax-knowing-when-a-single-agent-is-enough/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-coordination-tax-knowing-when-a-single-agent-is-enough/</guid><description>Spawning a subagent carries overhead that only pays off under specific conditions. Here is how to do the arithmetic before you commit to multi-agent architecture.</description><pubDate>Tue, 17 Mar 2026 20:49:10 GMT</pubDate></item><item><title>The Coroutine Protocol: What C++20&apos;s Promise Machinery Is Actually Doing</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-coroutine-protocol-what-c-20-s-promise-machinery-is-actually-doing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-coroutine-protocol-what-c-20-s-promise-machinery-is-actually-doing/</guid><description>C++20 coroutines require implementing a promise_type with several methods before anything works. This post explains each piece of the protocol, why the design is intentionally minimal compared to Python async or Rust futures, and what that tradeoff costs and buys you.</description><pubDate>Tue, 17 Mar 2026 21:11:50 GMT</pubDate></item><item><title>The Cost Equation That Has Kept Formal Verification Out of Production Software</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-cost-equation-that-has-kept-formal-verification-out-of-production-software/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-cost-equation-that-has-kept-formal-verification-out-of-production-software/</guid><description>Formal verification tooling has been mature since the 1980s, but the prohibitive labor cost of constructing proofs kept it confined to aerospace and academic mathematics. Leanstral from Mistral AI targets the specific cost phase where AI assistance is most tractable, and the implications are worth examining carefully.</description><pubDate>Tue, 17 Mar 2026 21:02:37 GMT</pubDate></item><item><title>The Distributed Systems Problems Hidden Inside Every Agent Loop</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-distributed-systems-problems-hidden-inside-every-agent-loop/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-distributed-systems-problems-hidden-inside-every-agent-loop/</guid><description>Agentic engineering is the practice of building systems where a language model drives execution through a feedback loop. The engineering challenges it introduces, from state management to compound non-determinism to prompt injection, are closer to distributed systems work than to prompt writing.</description><pubDate>Tue, 17 Mar 2026 20:52:38 GMT</pubDate></item><item><title>The Documentation Gap: Why Godogen Needed a Quirks Database to Generate Godot Games</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-documentation-gap-why-godogen-needed-a-quirks-database-to-generate-godot-gam/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-documentation-gap-why-godogen-needed-a-quirks-database-to-generate-godot-gam/</guid><description>Generating reliable GDScript requires more than documentation retrieval. Godogen&apos;s quirks database captures the operational knowledge that only surfaces through debugging, and its architecture reveals something important about domain-specific LLM code generation.</description><pubDate>Tue, 17 Mar 2026 21:13:57 GMT</pubDate></item><item><title>The Edit Format Problem Every Coding Agent Has to Solve</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-edit-format-problem-every-coding-agent-has-to-solve/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-edit-format-problem-every-coding-agent-has-to-solve/</guid><description>How a coding agent applies changes to source code, the specific formats used, and why the choice between SEARCH/REPLACE blocks, old_string/new_string JSON, and unified diffs has concrete reliability consequences.</description><pubDate>Tue, 17 Mar 2026 21:00:24 GMT</pubDate></item><item><title>The End of the Enum Hack: C++26 Reflection and a Decade of Workarounds</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-end-of-the-enum-hack-c-26-reflection-and-a-decade-of-workarounds/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-end-of-the-enum-hack-c-26-reflection-and-a-decade-of-workarounds/</guid><description>C++26&apos;s P2996 reflection proposal brings first-class compile-time introspection to C++, replacing years of library-level gymnastics with magic_enum, boost.pfr, and macro-annotated structs. Here&apos;s what the design actually enables and why the value-based approach matters.</description><pubDate>Tue, 17 Mar 2026 21:06:25 GMT</pubDate></item><item><title>The Engineering Layer Beneath Every AI Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-engineering-layer-beneath-every-ai-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-engineering-layer-beneath-every-ai-agent/</guid><description>Agentic engineering is the discipline of building reliable, observable software systems around LLMs that take multi-step actions. This post explores what that means in practice: tool design, context management, prompt injection, and why the &apos;engineering&apos; label is earned.</description><pubDate>Tue, 17 Mar 2026 20:37:47 GMT</pubDate></item><item><title>The Engineering Choices That Define Coding Agent Behavior</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-engineering-choices-that-define-coding-agent-behavior/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-engineering-choices-that-define-coding-agent-behavior/</guid><description>A technical look at the design trade-offs inside coding agents: file editing strategies, shell access risks, context window management, and how tool definitions shape what agents attempt.</description><pubDate>Tue, 17 Mar 2026 15:17:54 GMT</pubDate></item><item><title>The Engineering Work Hidden in a Coding Agent&apos;s System Prompt</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-engineering-work-hidden-in-a-coding-agent-s-system-prompt/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-engineering-work-hidden-in-a-coding-agent-s-system-prompt/</guid><description>The forty-line tool loop everyone demos is just scaffolding. What determines whether a coding agent behaves consistently, fails gracefully, and makes good decisions is the system prompt, and writing one well takes real engineering effort.</description><pubDate>Tue, 17 Mar 2026 20:40:08 GMT</pubDate></item><item><title>The Execution Feedback Loop That Makes Data Analysis Agents Work</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-execution-feedback-loop-that-makes-data-analysis-agents-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-execution-feedback-loop-that-makes-data-analysis-agents-work/</guid><description>Coding agents for data analysis derive their value from running code and observing results, not just generating it. This covers the execution loop, schema discovery, sandbox architecture, and context window management that separate useful agents from fancy autocomplete.</description><pubDate>Tue, 17 Mar 2026 21:12:32 GMT</pubDate></item><item><title>The Extraction Problem: Why AI Tokens and Django&apos;s Future Are Incompatible</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-extraction-problem-why-ai-tokens-and-django-s-future-are-incompatible/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-extraction-problem-why-ai-tokens-and-django-s-future-are-incompatible/</guid><description>Django&apos;s sustainability depends on human contributors, not AI-assisted workarounds. A look at the Django Fellows program, open source funding gaps, and what the token economy costs the ecosystem.</description><pubDate>Tue, 17 Mar 2026 20:54:10 GMT</pubDate></item><item><title>The Gap Between Paxos the Algorithm and Paxos the System</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-gap-between-paxos-the-algorithm-and-paxos-the-system/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-gap-between-paxos-the-algorithm-and-paxos-the-system/</guid><description>Single-decree Paxos is genuinely simple: two phases, four message types, one invariant. The complexity distributed systems engineers encounter comes from Multi-Paxos and the production machinery that no paper fully specifies.</description><pubDate>Tue, 17 Mar 2026 21:25:21 GMT</pubDate></item><item><title>The inline Keyword Is Not an Inlining Hint Anymore</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-inline-keyword-is-not-an-inlining-hint-anymore/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-inline-keyword-is-not-an-inlining-hint-anymore/</guid><description>The C++ inline keyword has two jobs: exempting a function from the One Definition Rule, and hinting to the compiler to inline it. Compilers stopped honoring the second job in the late 1990s. What that means for developers who still write inline expecting faster code.</description><pubDate>Tue, 17 Mar 2026 20:48:17 GMT</pubDate></item><item><title>The Intent Layer Is Where Local Voice Assistants Actually Struggle</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-intent-layer-is-where-local-voice-assistants-actually-struggle/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-intent-layer-is-where-local-voice-assistants-actually-struggle/</guid><description>Home Assistant&apos;s voice pipeline gets most attention for its STT and TTS components, but the conversation agent sitting between them is where natural language either works or breaks down. Here is how Hassil, Ollama, and local LLMs change that calculus.</description><pubDate>Tue, 17 Mar 2026 21:09:09 GMT</pubDate></item><item><title>The Kernel as Judge: Why Leanstral&apos;s Trustworthiness Claim Is Structural, Not Statistical</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-kernel-as-judge-why-leanstral-s-trustworthiness-claim-is-structural-not-stat/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-kernel-as-judge-why-leanstral-s-trustworthiness-claim-is-structural-not-stat/</guid><description>Mistral&apos;s open-source Leanstral agent couples AI proof generation to Lean 4&apos;s kernel, a small trusted type-checker that accepts or rejects every proof regardless of how it was produced. That architectural choice is what separates a real trustworthiness guarantee from a benchmark claim.</description><pubDate>Tue, 17 Mar 2026 20:45:14 GMT</pubDate></item><item><title>The LCF Lineage: Why Milner&apos;s 1972 Design Makes Leanstral Trustworthy by Construction</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-lcf-lineage-why-milner-s-1972-design-makes-leanstral-trustworthy-by-construc/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-lcf-lineage-why-milner-s-1972-design-makes-leanstral-trustworthy-by-construc/</guid><description>Mistral&apos;s Leanstral is trustworthy not because of RLHF or benchmarks but because of a 50-year-old architectural pattern: Robin Milner&apos;s Edinburgh LCF, which invented the &apos;small trusted kernel&apos; design specifically to accommodate untrusted proof-generating code -- which is exactly what an LLM is.</description><pubDate>Tue, 17 Mar 2026 21:17:21 GMT</pubDate></item><item><title>The Lead Time Tax: How Sequential Approvals Compound Against Engineering Velocity</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-lead-time-tax-how-sequential-approvals-compound-against-engineering-velocity/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-lead-time-tax-how-sequential-approvals-compound-against-engineering-velocity/</guid><description>Each review layer in your deployment pipeline doesn&apos;t add latency linearly, it multiplies it. Here&apos;s the queueing math, the empirical research, and the organizational dynamics that explain why approval chains only ever grow.</description><pubDate>Tue, 17 Mar 2026 21:03:17 GMT</pubDate></item><item><title>The Lexer Gap: Why Thompson NFA Simulation Has One Linear-Time Blind Spot</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-lexer-gap-why-thompson-nfa-simulation-has-one-linear-time-blind-spot/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-lexer-gap-why-thompson-nfa-simulation-has-one-linear-time-blind-spot/</guid><description>Thompson&apos;s 1968 algorithm guarantees linear-time regex matching, but the specific variant that lexers need, all non-overlapping longest matches, has a subtle O(n²) trap in pure NFA simulation that a new result closes.</description><pubDate>Tue, 17 Mar 2026 21:21:46 GMT</pubDate></item><item><title>The Linear Time Guarantee for All Longest Regex Matches, and Why It Took This Long to State Clearly</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-linear-time-guarantee-for-all-longest-regex-matches-and-why-it-took-this-lon/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-linear-time-guarantee-for-all-longest-regex-matches-and-why-it-took-this-lon/</guid><description>Finding all non-overlapping longest regex matches across a string can be done in linear time, but the proof requires careful attention to how NFA simulation handles restarts. Here&apos;s what the algorithm actually looks like and why the result matters.</description><pubDate>Tue, 17 Mar 2026 20:41:51 GMT</pubDate></item><item><title>The Living Document Trick: How Context Anchoring Fights Attention Drift in Long Agent Sessions</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-living-document-trick-how-context-anchoring-fights-attention-drift-in-long-a/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-living-document-trick-how-context-anchoring-fights-attention-drift-in-long-a/</guid><description>Context anchoring externalizes decision state into a living markdown document to combat transformer attention decay in long AI conversations. Here is the mechanics behind why it works and when to use it.</description><pubDate>Tue, 17 Mar 2026 20:52:01 GMT</pubDate></item><item><title>The Loop at the Center: How Coding Agents Actually Work</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-loop-at-the-center-how-coding-agents-actually-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-loop-at-the-center-how-coding-agents-actually-work/</guid><description>A technical breakdown of the tool-call loop, context management, and scaffolding decisions that drive modern coding agents like Claude Code, Aider, and Cursor.</description><pubDate>Tue, 17 Mar 2026 20:35:18 GMT</pubDate></item><item><title>The Loop Is the Boundary: What Makes Agentic Engineering Its Own Discipline</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-loop-is-the-boundary-what-makes-agentic-engineering-its-own-discipline/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-loop-is-the-boundary-what-makes-agentic-engineering-its-own-discipline/</guid><description>Agentic engineering begins the moment you add a loop to an LLM call. The engineering problems that follow, from context management to prompt injection to probabilistic control flow, connect distributed systems thinking with decades of prior AI research.</description><pubDate>Tue, 17 Mar 2026 21:00:16 GMT</pubDate></item><item><title>The Memory Reload You Never Wrote: Alias Analysis and the Hidden Cost of Opaque Calls</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-memory-reload-you-never-wrote-alias-analysis-and-the-hidden-cost-of-opaque-c/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-memory-reload-you-never-wrote-alias-analysis-and-the-hidden-cost-of-opaque-c/</guid><description>Function call overhead extends beyond cycles-per-call and vectorization barriers. Every non-inlined call forces the compiler to discard its memory analysis, reloading values it was tracking in registers and defeating loop-invariant hoisting in ways that rarely show up in profiles.</description><pubDate>Tue, 17 Mar 2026 20:44:30 GMT</pubDate></item><item><title>The Message Trace Is Your Debugger: Diagnosing Coding Agent Failures</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-message-trace-is-your-debugger-diagnosing-coding-agent-failures/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-message-trace-is-your-debugger-diagnosing-coding-agent-failures/</guid><description>When a coding agent produces wrong results or gets stuck, the accumulated message history is a complete execution trace. Here is how to read it and what common failure signatures look like.</description><pubDate>Tue, 17 Mar 2026 20:48:52 GMT</pubDate></item><item><title>The Middle Loop Has No Performance Review</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-middle-loop-has-no-performance-review/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-middle-loop-has-no-performance-review/</guid><description>Annie Vella&apos;s research on 158 software engineers names supervisory engineering as software development&apos;s new middle loop, while every standard metric and hiring framework in the industry remains structurally blind to whether someone is good at it.</description><pubDate>Tue, 17 Mar 2026 21:23:57 GMT</pubDate></item><item><title>The Middle Loop: How AI Supervision Became a New Engineering Discipline</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-middle-loop-how-ai-supervision-became-a-new-engineering-discipline/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-middle-loop-how-ai-supervision-became-a-new-engineering-discipline/</guid><description>Annie Vella&apos;s research on 158 professional engineers reveals a structural shift in how developers work — from code creation to a new form of supervisory verification that sits between the inner and outer loops of development.</description><pubDate>Tue, 17 Mar 2026 21:23:46 GMT</pubDate></item><item><title>The Middle Loop: What Engineers Actually Do When AI Writes the Code</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-middle-loop-what-engineers-actually-do-when-ai-writes-the-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-middle-loop-what-engineers-actually-do-when-ai-writes-the-code/</guid><description>As AI tools automate the inner loop of software development, a researcher has identified a new layer of work between writing and shipping: supervisory engineering, where directing, evaluating, and correcting AI output becomes the primary job.</description><pubDate>Tue, 17 Mar 2026 20:47:00 GMT</pubDate></item><item><title>The Middle Loop: Software Engineering&apos;s New Cognitive Layer</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-middle-loop-software-engineering-s-new-cognitive-layer/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-middle-loop-software-engineering-s-new-cognitive-layer/</guid><description>AI tools are not just speeding up software development, they are restructuring it around a new kind of work: supervising AI rather than writing code. Here is what that shift actually demands from engineers.</description><pubDate>Tue, 17 Mar 2026 20:55:48 GMT</pubDate></item><item><title>The Middle Loop: What Supervisory Engineering Actually Demands</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-middle-loop-what-supervisory-engineering-actually-demands/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-middle-loop-what-supervisory-engineering-actually-demands/</guid><description>Annie Vella&apos;s research on 158 professional engineers reveals that AI tools are creating a new layer of cognitive work between code writing and deployment, one that demands deeper domain knowledge to evaluate output than it ever took to produce it.</description><pubDate>Tue, 17 Mar 2026 20:51:42 GMT</pubDate></item><item><title>The Networking Stack Behind pfSense, Netflix&apos;s CDN, and Three Decades of Firewall Appliances</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-networking-stack-behind-pfsense-netflix-s-cdn-and-three-decades-of-firewall-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-networking-stack-behind-pfsense-netflix-s-cdn-and-three-decades-of-firewall-/</guid><description>FreeBSD&apos;s networking primitives, from PF and Netgraph to kernel TLS and VNET jails, explain why it dominates firewall appliance distributions, ISP broadband equipment, and high-throughput CDN infrastructure.</description><pubDate>Tue, 17 Mar 2026 21:04:49 GMT</pubDate></item><item><title>The Optimization Cost Behind Every Function Call</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-optimization-cost-behind-every-function-call/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-optimization-cost-behind-every-function-call/</guid><description>A function call on modern hardware costs only a handful of cycles, but that overhead is rarely the point. The real cost is what the call boundary prevents the compiler from seeing, and therefore transforming.</description><pubDate>Tue, 17 Mar 2026 20:26:05 GMT</pubDate></item><item><title>The Optimizer Sees Only What You Show It</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-optimizer-sees-only-what-you-show-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-optimizer-sees-only-what-you-show-it/</guid><description>Function call overhead is the visible surface of a deeper problem: the compiler can only optimize code it can see. How you structure your codebase, not just which functions you annotate, determines whether the optimizer can do its job.</description><pubDate>Tue, 17 Mar 2026 20:39:39 GMT</pubDate></item><item><title>The Org Chart Encoded in Your PR Approval Requirements</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-org-chart-encoded-in-your-pr-approval-requirements/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-org-chart-encoded-in-your-pr-approval-requirements/</guid><description>Each review layer doesn&apos;t add latency to your delivery pipeline, it multiplies it. The queueing math behind Avery Pennarun&apos;s 10x claim, and what it means for how engineering orgs structure oversight.</description><pubDate>Tue, 17 Mar 2026 21:10:07 GMT</pubDate></item><item><title>The Pattern-Match Report Is Not a Vulnerability Assessment</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-pattern-match-report-is-not-a-vulnerability-assessment/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-pattern-match-report-is-not-a-vulnerability-assessment/</guid><description>Traditional SAST tools find code patterns that look dangerous, not code that is actually exploitable. Codex Security&apos;s AI-driven constraint reasoning addresses a structural limitation in static analysis that the security tooling industry has been working around for decades.</description><pubDate>Tue, 17 Mar 2026 20:44:44 GMT</pubDate></item><item><title>The Promise Is the Policy: What C++20 Coroutines Actually Ask of You</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-promise-is-the-policy-what-c-20-coroutines-actually-ask-of-you/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-promise-is-the-policy-what-c-20-coroutines-actually-ask-of-you/</guid><description>C++20 coroutines expose the raw machinery of stackless suspension, and understanding the promise_type interface reveals why every method exists and what the compiler is doing with your function body.</description><pubDate>Tue, 17 Mar 2026 21:13:34 GMT</pubDate></item><item><title>The Promise Protocol: What Every Method in C++20 Coroutines Is Actually Doing</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-promise-protocol-what-every-method-in-c-20-coroutines-is-actually-doing/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-promise-protocol-what-every-method-in-c-20-coroutines-is-actually-doing/</guid><description>C++20 coroutines require implementing a multi-method promise_type protocol that looks like arbitrary boilerplate until you see the state machine underneath. This post maps each method to the specific moment in the coroutine lifecycle it controls.</description><pubDate>Tue, 17 Mar 2026 21:13:06 GMT</pubDate></item><item><title>The Queue Behind Every Review: Why Approval Chains Cost More Than They Look</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-queue-behind-every-review-why-approval-chains-cost-more-than-they-look/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-queue-behind-every-review-why-approval-chains-cost-more-than-they-look/</guid><description>Code review and approval chains feel cheap as individual steps, but queuing theory explains why their costs compound. A decade of DORA research and software engineering studies show the real numbers.</description><pubDate>Tue, 17 Mar 2026 20:42:01 GMT</pubDate></item><item><title>The Queue You Don&apos;t Draw on the Whiteboard</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-queue-you-don-t-draw-on-the-whiteboard/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-queue-you-don-t-draw-on-the-whiteboard/</guid><description>Every review layer in a software team is an independent queue, and queues compound multiplicatively. Avery Pennarun&apos;s 10x-per-layer claim holds up against queuing theory and a decade of DORA data — and the real fix isn&apos;t faster reviewers, it&apos;s fewer serial queues.</description><pubDate>Tue, 17 Mar 2026 21:09:55 GMT</pubDate></item><item><title>The Real Cost of a Function Call Is Not the Call Itself</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-real-cost-of-a-function-call-is-not-the-call-itself/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-real-cost-of-a-function-call-is-not-the-call-itself/</guid><description>The six-to-ten cycles of a function call are not the problem. The problem is what the compiler stops doing when it sees one: auto-vectorization, alias analysis, constant folding, and the full optimization cascade that inlining enables.</description><pubDate>Tue, 17 Mar 2026 20:24:38 GMT</pubDate></item><item><title>The Quirks Database: What Formal Documentation Can&apos;t Tell an LLM</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-quirks-database-what-formal-documentation-can-t-tell-an-llm/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-quirks-database-what-formal-documentation-can-t-tell-an-llm/</guid><description>Godogen&apos;s year-long pipeline for generating complete Godot 4 games built something beyond API docs: a structured database of engine behaviors only discoverable through debugging. That decision is the most instructive part of the project.</description><pubDate>Tue, 17 Mar 2026 21:12:31 GMT</pubDate></item><item><title>The Reward Function That Can&apos;t Be Hacked: What Lean 4&apos;s Kernel Changes About AI Training</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-reward-function-that-can-t-be-hacked-what-lean-4-s-kernel-changes-about-ai-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-reward-function-that-can-t-be-hacked-what-lean-4-s-kernel-changes-about-ai-t/</guid><description>Lean 4&apos;s type-checking kernel gives AI proof systems like Leanstral something almost nonexistent in machine learning: a formal reward signal that is exact, free of annotation cost, and structurally immune to reward hacking. This post examines why that matters and where the limits of a binary verdict still fall.</description><pubDate>Tue, 17 Mar 2026 21:19:40 GMT</pubDate></item><item><title>The SAST Report Format Is an Admission of Uncertainty</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-sast-report-format-is-an-admission-of-uncertainty/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-sast-report-format-is-an-admission-of-uncertainty/</guid><description>OpenAI&apos;s Codex Security skips the traditional SAST report entirely, and understanding why reveals something fundamental about how static analysis tools actually work and what their output format says about their confidence.</description><pubDate>Tue, 17 Mar 2026 21:21:55 GMT</pubDate></item><item><title>The Scene That Writes Itself: How Godogen Sidesteps Godot&apos;s Serialization Format</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-scene-that-writes-itself-how-godogen-sidesteps-godot-s-serialization-format/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-scene-that-writes-itself-how-godogen-sidesteps-godot-s-serialization-format/</guid><description>Godogen generates Godot 4 games from text prompts by generating GDScript that builds scenes programmatically rather than generating .tscn text directly. The tradeoff exposes a deeper problem: the headless construction environment has a different API surface than a running game, and crossing that boundary fails silently.</description><pubDate>Tue, 17 Mar 2026 21:20:35 GMT</pubDate></item><item><title>The Session Is the Unit of Work</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-session-is-the-unit-of-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-session-is-the-unit-of-work/</guid><description>Effective LLM development workflows aren&apos;t about better prompts — they&apos;re about treating context as a finite, degrading resource and structuring sessions so that degradation works in your favor.</description><pubDate>Tue, 17 Mar 2026 20:47:33 GMT</pubDate></item><item><title>The Shared Anchor: What Context Anchoring Requires at Team Scale</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-shared-anchor-what-context-anchoring-requires-at-team-scale/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-shared-anchor-what-context-anchoring-requires-at-team-scale/</guid><description>Context anchoring works well for solo AI sessions, but when a team of developers is running AI-assisted workflows against the same codebase, the living document becomes shared infrastructure with version control, ownership, and maintenance challenges of its own.</description><pubDate>Tue, 17 Mar 2026 21:03:23 GMT</pubDate></item><item><title>The Small Web Built Real Infrastructure, Not Just Nostalgia</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-small-web-built-real-infrastructure-not-just-nostalgia/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-small-web-built-real-infrastructure-not-just-nostalgia/</guid><description>The independent web is larger than its critics acknowledge, but the more compelling story isn&apos;t traffic numbers. Over the past decade, IndieWeb developers built W3C-standardized protocols, lightweight alternative networks, and community platforms that represent a genuinely different architecture for personal publishing.</description><pubDate>Tue, 17 Mar 2026 20:49:32 GMT</pubDate></item><item><title>The Small Web Has Built Its Own Infrastructure Stack</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-small-web-has-built-its-own-infrastructure-stack/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-small-web-has-built-its-own-infrastructure-stack/</guid><description>The personal web revival runs on real protocols and tooling, from W3C-standardized WebMentions to independent search engines built to surface what Google buries.</description><pubDate>Tue, 17 Mar 2026 21:19:12 GMT</pubDate></item><item><title>The Soundness Trap: Why SAST&apos;s False Positive Problem Is Structural, Not Accidental</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-soundness-trap-why-sast-s-false-positive-problem-is-structural-not-accidenta/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-soundness-trap-why-sast-s-false-positive-problem-is-structural-not-accidenta/</guid><description>Static analysis tools produce noisy reports by design, not by failure. Understanding the theoretical roots of SAST&apos;s false positive problem clarifies why OpenAI&apos;s Codex Security chose constraint-based reasoning instead.</description><pubDate>Tue, 17 Mar 2026 21:14:04 GMT</pubDate></item><item><title>The Specification Is the Software: Where Engineering Effort Goes in an Agentic System</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-specification-is-the-software-where-engineering-effort-goes-in-an-agentic-sy/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-specification-is-the-software-where-engineering-effort-goes-in-an-agentic-sy/</guid><description>Agentic engineering shifts effort away from writing implementation code toward writing specifications, designing evaluations, and reading traces. Simon Willison&apos;s guide names the discipline; this post explains what it concretely changes about your work.</description><pubDate>Tue, 17 Mar 2026 21:22:11 GMT</pubDate></item><item><title>The Three Hard Problems in LLM-Driven Game Generation</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-three-hard-problems-in-llm-driven-game-generation/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-three-hard-problems-in-llm-driven-game-generation/</guid><description>Godogen generates complete Godot 4 games from text prompts using Claude Code skills, and the engineering required reveals three fundamental challenges that apply to any LLM pipeline targeting domain-specific languages and runtimes.</description><pubDate>Tue, 17 Mar 2026 20:49:17 GMT</pubDate></item><item><title>The Throughput Bet: Holotron-12B and the Case for Hybrid SSM in GUI Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-throughput-bet-holotron-12b-and-the-case-for-hybrid-ssm-in-gui-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-throughput-bet-holotron-12b-and-the-case-for-hybrid-ssm-in-gui-agents/</guid><description>HCompany&apos;s Holotron-12B achieves 8,900 tokens/sec on a single H100 despite being larger than its predecessor, by betting on a hybrid SSM-attention architecture that keeps KV cache memory from exploding at scale.</description><pubDate>Tue, 17 Mar 2026 21:22:58 GMT</pubDate></item><item><title>The Tool Loop at the Heart of Every Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-tool-loop-at-the-heart-of-every-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-tool-loop-at-the-heart-of-every-coding-agent/</guid><description>Coding agents are not magic: they run a tight loop of prompting, tool execution, and observation inside a context window. Understanding that loop changes how you build for and with them.</description><pubDate>Tue, 17 Mar 2026 20:55:49 GMT</pubDate></item><item><title>The Tool Loop Is Deterministic, the Decision Layer Is Not</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-tool-loop-is-deterministic-the-decision-layer-is-not/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-tool-loop-is-deterministic-the-decision-layer-is-not/</guid><description>The observe-decide-act loop at the core of every coding agent looks deceptively simple, but the real engineering challenges emerge from context window limits, tool design decisions, and the gap between deterministic tool execution and probabilistic LLM reasoning.</description><pubDate>Tue, 17 Mar 2026 20:55:32 GMT</pubDate></item><item><title>The Tool Loop Is the Program: What Agentic Engineering Actually Requires</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-tool-loop-is-the-program-what-agentic-engineering-actually-requires/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-tool-loop-is-the-program-what-agentic-engineering-actually-requires/</guid><description>Agentic engineering is not prompt engineering at scale. It is a distinct discipline shaped by a nondeterministic executor, implicit state, and emergent failure modes that demand different mental models and different engineering practices.</description><pubDate>Tue, 17 Mar 2026 20:57:49 GMT</pubDate></item><item><title>The Two-Tier Context Architecture That Every AI Coding Tool Independently Built</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-two-tier-context-architecture-that-every-ai-coding-tool-independently-built/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-two-tier-context-architecture-that-every-ai-coding-tool-independently-built/</guid><description>Context anchoring formalizes the dynamic tier of a two-layer context system that Claude Code, Cursor, GitHub Copilot, and Aider each independently implemented. Understanding why they converged on the same structure explains how to use both tiers effectively.</description><pubDate>Tue, 17 Mar 2026 21:17:07 GMT</pubDate></item><item><title>The Two-Worlds Problem in Formal Verification, and Why Lean 4 Collapses It</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-two-worlds-problem-in-formal-verification-and-why-lean-4-collapses-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-two-worlds-problem-in-formal-verification-and-why-lean-4-collapses-it/</guid><description>Mistral&apos;s Leanstral brings LLM-assisted formal proof generation to a broader audience. What distinguishes it from prior verification tools is Lean 4&apos;s design as both a compiled programming language and a theorem prover, eliminating the traditional gap between a verified specification and deployable code.</description><pubDate>Tue, 17 Mar 2026 20:59:11 GMT</pubDate></item><item><title>The Verification Tax: What LLM-Assisted Development Actually Costs in Practice</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-verification-tax-what-llm-assisted-development-actually-costs-in-practice/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-verification-tax-what-llm-assisted-development-actually-costs-in-practice/</guid><description>Writing code with LLMs is genuinely faster for most tasks, but the mental overhead of reviewing and validating generated output is a real cost that rarely gets counted honestly.</description><pubDate>Tue, 17 Mar 2026 21:07:08 GMT</pubDate></item><item><title>The Verification Tax Nobody Warned You About</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-verification-tax-nobody-warned-you-about/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-verification-tax-nobody-warned-you-about/</guid><description>Working with LLMs introduces a hidden cognitive cost: the constant, draining work of verifying plausible-but-wrong output from a system that never signals its own uncertainty. This post examines why that exhaustion is structural, not incidental.</description><pubDate>Tue, 17 Mar 2026 21:12:52 GMT</pubDate></item><item><title>The Verification Tax: Why Working with LLMs Every Day Is Mentally Expensive</title><link>https://nebelwolfi.xyz/blog/2026-03-17-the-verification-tax-why-working-with-llms-every-day-is-mentally-expensive/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-the-verification-tax-why-working-with-llms-every-day-is-mentally-expensive/</guid><description>The fatigue that comes from daily LLM use is structural, not incidental. It stems from verification overhead that never decreases, context management that always falls on the user, and the cognitive cost of supervising rather than simply using a tool.</description><pubDate>Tue, 17 Mar 2026 21:02:56 GMT</pubDate></item><item><title>Thirty Billion Images and One Line in the Terms of Service</title><link>https://nebelwolfi.xyz/blog/2026-03-17-thirty-billion-images-and-one-line-in-the-terms-of-service/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-thirty-billion-images-and-one-line-in-the-terms-of-service/</guid><description>Pokemon Go players unknowingly provided 30 billion images that trained delivery robot navigation systems. The story behind why that data was so technically valuable, and what the consent architecture actually looked like.</description><pubDate>Tue, 17 Mar 2026 21:17:40 GMT</pubDate></item><item><title>Three Allocators, Three Bets: What Makes jemalloc Worth Continued Investment</title><link>https://nebelwolfi.xyz/blog/2026-03-17-three-allocators-three-bets-what-makes-jemalloc-worth-continued-investment/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-three-allocators-three-bets-what-makes-jemalloc-worth-continued-investment/</guid><description>TCMalloc, mimalloc, and jemalloc make fundamentally different architectural bets about where contention lives and what developers need at runtime. Meta&apos;s renewed investment makes the most sense once you understand which bet each one placed.</description><pubDate>Tue, 17 Mar 2026 21:23:43 GMT</pubDate></item><item><title>Three Engineering Problems That Stand Between a Text Prompt and a Playable Godot Game</title><link>https://nebelwolfi.xyz/blog/2026-03-17-three-engineering-problems-that-stand-between-a-text-prompt-and-a-playable-godot/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-three-engineering-problems-that-stand-between-a-text-prompt-and-a-playable-godot/</guid><description>Godogen generates complete, playable Godot 4 projects from text prompts by solving three specific bottlenecks: GDScript&apos;s scarcity in training data, Godot&apos;s build-time versus runtime state model, and the evaluation loop bias inherent to code-generation agents.</description><pubDate>Tue, 17 Mar 2026 20:52:23 GMT</pubDate></item><item><title>Three Layers of Context for LLM Code Generation in Complex Runtimes</title><link>https://nebelwolfi.xyz/blog/2026-03-17-three-layers-of-context-for-llm-code-generation-in-complex-runtimes/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-three-layers-of-context-for-llm-code-generation-in-complex-runtimes/</guid><description>Godogen&apos;s reference architecture for generating GDScript relies on three distinct knowledge layers, each covering failure modes the others structurally cannot. The same structure appears in any LLM pipeline targeting a complex runtime with low training data representation.</description><pubDate>Tue, 17 Mar 2026 21:25:38 GMT</pubDate></item><item><title>Type Erasure at the Wrong Layer: What std::function Does to Your Tight Loops</title><link>https://nebelwolfi.xyz/blog/2026-03-17-type-erasure-at-the-wrong-layer-what-std-function-does-to-your-tight-loops/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-type-erasure-at-the-wrong-layer-what-std-function-does-to-your-tight-loops/</guid><description>std::function is a convenient abstraction for callable types, but its indirect dispatch prevents inlining, blocks auto-vectorization, and under Spectre mitigations can cost 30 to 80 extra cycles per call. Template parameters and std::function_ref offer the same interface without the penalty.</description><pubDate>Tue, 17 Mar 2026 20:44:45 GMT</pubDate></item><item><title>Typed Outputs, Untyped Routing: The Design Split in Codex Custom Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-17-typed-outputs-untyped-routing-the-design-split-in-codex-custom-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-typed-outputs-untyped-routing-the-design-split-in-codex-custom-agents/</guid><description>Codex custom agents use natural language descriptions for routing and Pydantic schemas for output contracts. The asymmetry is deliberate, and understanding it tells you where the engineering effort actually belongs when building multi-agent workflows.</description><pubDate>Tue, 17 Mar 2026 21:03:12 GMT</pubDate></item><item><title>Virtual Dispatch After Spectre: How Security Mitigations Reshaped the Indirect Call Cost Profile</title><link>https://nebelwolfi.xyz/blog/2026-03-17-virtual-dispatch-after-spectre-how-security-mitigations-reshaped-the-indirect-ca/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-virtual-dispatch-after-spectre-how-security-mitigations-reshaped-the-indirect-ca/</guid><description>Daniel Lemire&apos;s function call analysis covers direct calls well, but indirect calls through vtables and function pointers have a separate cost story that changed fundamentally after the Spectre disclosures in 2018. On hardened production hardware, retpoline turns every virtual dispatch into a 30-to-80 cycle event regardless of prediction accuracy.</description><pubDate>Tue, 17 Mar 2026 20:41:15 GMT</pubDate></item><item><title>What a 1000-Line Budget Reveals About HTTP Server Design</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-a-1000-line-budget-reveals-about-http-server-design/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-a-1000-line-budget-reveals-about-http-server-design/</guid><description>Building a minimal HTTP server in C under a 1000-line constraint forces every design decision that production frameworks hide into the open, from the POSIX socket sequence to HTTP/1.1 framing differences to why concurrency is the first thing that gets cut.</description><pubDate>Tue, 17 Mar 2026 21:17:05 GMT</pubDate></item><item><title>What $52 for 76,000 Photos Actually Means for Vision AI</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-52-for-76-000-photos-actually-means-for-vision-ai/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-52-for-76-000-photos-actually-means-for-vision-ai/</guid><description>GPT-5.4 mini and GPT-5.4 nano bring vision processing costs to a point where entirely new categories of applications become economically rational. Here&apos;s what the math unlocks.</description><pubDate>Tue, 17 Mar 2026 20:56:09 GMT</pubDate></item><item><title>What a Long Approval Queue Reveals About Your Test Coverage</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-a-long-approval-queue-reveals-about-your-test-coverage/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-a-long-approval-queue-reveals-about-your-test-coverage/</guid><description>Multi-layer code review is expensive in ways that compound multiplicatively, but the more diagnostic question is what those layers are actually catching and whether review is the right tool for catching it.</description><pubDate>Tue, 17 Mar 2026 21:02:31 GMT</pubDate></item><item><title>What a Function Call Actually Costs in a Tight Loop</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-a-function-call-actually-costs-in-a-tight-loop/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-a-function-call-actually-costs-in-a-tight-loop/</guid><description>A function call in C++ costs 5–10 cycles in the best case, but that overhead is rarely the real story. The larger win from inlining is what the optimizer can do once the call boundary disappears: auto-vectorization, constant folding, and SIMD without ABI-mandated register saves.</description><pubDate>Tue, 17 Mar 2026 20:25:32 GMT</pubDate></item><item><title>What Agentic Engineering Inherited From Five Decades of AI Research</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-agentic-engineering-inherited-from-five-decades-of-ai-research/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-agentic-engineering-inherited-from-five-decades-of-ai-research/</guid><description>Agentic engineering draws on ideas from formal planning, expert systems, and game AI behavior trees that predate language models by decades. Understanding this ancestry reveals which problems LLMs solved and which remain exactly as hard as they always were.</description><pubDate>Tue, 17 Mar 2026 20:53:51 GMT</pubDate></item><item><title>What AI Tools Cost the Next Wave of Engineers</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-ai-tools-cost-the-next-wave-of-engineers/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-ai-tools-cost-the-next-wave-of-engineers/</guid><description>Annie Vella&apos;s research establishes that AI tools benefit engineers with existing domain expertise most, but leaves a critical question open: if junior engineers develop expertise by writing and debugging code, what happens when AI is doing the writing?</description><pubDate>Tue, 17 Mar 2026 21:08:51 GMT</pubDate></item><item><title>What &apos;Back on Track&apos; Actually Means for Python&apos;s Copy-and-Patch JIT</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-back-on-track-actually-means-for-python-s-copy-and-patch-jit/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-back-on-track-actually-means-for-python-s-copy-and-patch-jit/</guid><description>Python 3.15&apos;s experimental JIT compiler is recovering from a rocky 3.13 debut. Here&apos;s a technical breakdown of the copy-and-patch architecture, the specific problems that stalled progress, and what fixing them actually requires.</description><pubDate>Tue, 17 Mar 2026 21:01:20 GMT</pubDate></item><item><title>What Economics Got Right About AI Agent Delegation</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-economics-got-right-about-ai-agent-delegation/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-economics-got-right-about-ai-agent-delegation/</guid><description>Codex&apos;s new subagent and custom agent support enables orchestrator-subagent workflows, but decomposing code tasks across multiple agents imports a well-understood problem from economics: how does a principal ensure an agent it cannot directly observe is working in its interest?</description><pubDate>Tue, 17 Mar 2026 20:46:49 GMT</pubDate></item><item><title>What Event-Driven Engineering Already Knows About Agent Reliability</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-event-driven-engineering-already-knows-about-agent-reliability/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-event-driven-engineering-already-knows-about-agent-reliability/</guid><description>The tool loop at the center of every LLM agent is structurally an event loop, and decades of event-driven systems engineering has already worked out most of its hard problems. Agentic engineering is applying that prior art to a handler that happens to be non-deterministic.</description><pubDate>Tue, 17 Mar 2026 21:24:36 GMT</pubDate></item><item><title>What Makes C++26 Reflection Different From Every Previous Attempt</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-makes-c-26-reflection-different-from-every-previous-attempt/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-makes-c-26-reflection-different-from-every-previous-attempt/</guid><description>C++26 compile-time reflection (P2996) introduces std::meta::info as a first-class value type, replacing decades of type-based template metaprogramming and macro workarounds. This post examines the design decision, the API, and how it compares to Rust, D, and Java.</description><pubDate>Tue, 17 Mar 2026 21:04:10 GMT</pubDate></item><item><title>What Makes jemalloc Worth a Twenty-Year Investment</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-makes-jemalloc-worth-a-twenty-year-investment/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-makes-jemalloc-worth-a-twenty-year-investment/</guid><description>jemalloc&apos;s slab allocator, thread cache, and size class design have remained fundamentally correct for twenty years. Understanding how they work explains why Meta is extending the allocator rather than replacing it.</description><pubDate>Tue, 17 Mar 2026 20:59:36 GMT</pubDate></item><item><title>What Meta&apos;s jemalloc Investment Means Outside of Meta</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-meta-s-jemalloc-investment-means-outside-of-meta/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-meta-s-jemalloc-investment-means-outside-of-meta/</guid><description>Meta&apos;s recommitment to jemalloc funds NUMA awareness, THP alignment, and profiling improvements that flow directly to Redis, RocksDB, FreeBSD, and the Rust ecosystem, not just Meta&apos;s own fleet.</description><pubDate>Tue, 17 Mar 2026 21:14:55 GMT</pubDate></item><item><title>What Parallel Subagent Execution Actually Requires</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-parallel-subagent-execution-actually-requires/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-parallel-subagent-execution-actually-requires/</guid><description>Subagents promise parallelism, but parallel execution has strict prerequisites most developers skip: write-access overlap analysis and input-output dependency mapping. Here is how to do it before things break at runtime.</description><pubDate>Tue, 17 Mar 2026 20:51:10 GMT</pubDate></item><item><title>What Running Code Fixes in AI Data Analysis, and What It Doesn&apos;t</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-running-code-fixes-in-ai-data-analysis-and-what-it-doesn-t/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-running-code-fixes-in-ai-data-analysis-and-what-it-doesn-t/</guid><description>Coding agents that execute code to answer data questions are genuinely more reliable than pure text generation, but the gains are uneven across error types. Understanding the taxonomy of failures determines whether you can trust the output.</description><pubDate>Tue, 17 Mar 2026 21:07:49 GMT</pubDate></item><item><title>What the Agent Loop Obliges You to Build</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-the-agent-loop-obliges-you-to-build/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-the-agent-loop-obliges-you-to-build/</guid><description>Adding a loop to an LLM call creates concrete engineering obligations around state, tool contracts, reliability, security, and evaluation. Understanding them as unified consequences of probabilistic control flow is what agentic engineering as a discipline actually requires.</description><pubDate>Tue, 17 Mar 2026 21:17:50 GMT</pubDate></item><item><title>What the AI Memory Architecture Landscape Is Missing: Curated Context</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-the-ai-memory-architecture-landscape-is-missing-curated-context/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-the-ai-memory-architecture-landscape-is-missing-curated-context/</guid><description>Context anchoring externalizes AI session decisions into a manually maintained living document. Here is where it fits among fine-tuning, RAG, and native AI memory, and why its human curation loop is a feature rather than overhead.</description><pubDate>Tue, 17 Mar 2026 21:17:38 GMT</pubDate></item><item><title>What the AutoGPT Era Taught Us About Building Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-the-autogpt-era-taught-us-about-building-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-the-autogpt-era-taught-us-about-building-agents/</guid><description>Simon Willison&apos;s agentic engineering guide crystallizes lessons the field learned the hard way since 2022, from the AutoGPT chaos of 2023 to the disciplined patterns developers rely on today.</description><pubDate>Tue, 17 Mar 2026 20:59:13 GMT</pubDate></item><item><title>What the Calling Convention Forces Your Compiler to Forget</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-the-calling-convention-forces-your-compiler-to-forget/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-the-calling-convention-forces-your-compiler-to-forget/</guid><description>Function call overhead in tight loops is real, but the deeper cost is the ABI contract that forces the compiler to treat every non-inlined boundary as an optimization wall, and how that contract varies between Linux and Windows.</description><pubDate>Tue, 17 Mar 2026 20:38:22 GMT</pubDate></item><item><title>What the Compiler Actually Builds When You Write co_await</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-the-compiler-actually-builds-when-you-write-co-await/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-the-compiler-actually-builds-when-you-write-co-await/</guid><description>A technical deep-dive into how C++20 coroutines work as a compiler transformation: the coroutine frame, promise_type as the central customization point, symmetric transfer, and why the standard ships the mechanism without the library.</description><pubDate>Tue, 17 Mar 2026 21:08:33 GMT</pubDate></item><item><title>What the Compiler Cannot See: Function Calls as Optimization Boundaries</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-the-compiler-cannot-see-function-calls-as-optimization-boundaries/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-the-compiler-cannot-see-function-calls-as-optimization-boundaries/</guid><description>A function call&apos;s real overhead is not the 6-12 cycles of CALL/RET, but the vectorization and loop transformations the compiler abandons when it hits an opaque call boundary.</description><pubDate>Tue, 17 Mar 2026 20:46:27 GMT</pubDate></item><item><title>What Twenty Years of Platform Deletions Reveal About the Small Web</title><link>https://nebelwolfi.xyz/blog/2026-03-17-what-twenty-years-of-platform-deletions-reveal-about-the-small-web/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-what-twenty-years-of-platform-deletions-reveal-about-the-small-web/</guid><description>The stronger version of Kevin Boone&apos;s &apos;small web is big&apos; argument isn&apos;t about traffic counts. Personal HTML sites keep running after every platform that hosted comparable content has deleted it.</description><pubDate>Tue, 17 Mar 2026 21:19:08 GMT</pubDate></item><item><title>When Codex Delegates to Your Custom Agents, Debugging Gets Harder</title><link>https://nebelwolfi.xyz/blog/2026-03-17-when-codex-delegates-to-your-custom-agents-debugging-gets-harder/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-when-codex-delegates-to-your-custom-agents-debugging-gets-harder/</guid><description>OpenAI&apos;s Codex CLI now supports spawning subagents and defining custom agents, adding a hierarchical delegation layer that changes how complex coding tasks are decomposed, executed, and debugged.</description><pubDate>Tue, 17 Mar 2026 20:49:08 GMT</pubDate></item><item><title>When Coding Agents Spawn More Coding Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-17-when-coding-agents-spawn-more-coding-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-when-coding-agents-spawn-more-coding-agents/</guid><description>A single-agent tool loop has concrete limits in context window size and serial execution speed. Multi-agent patterns like Claude Code&apos;s Task tool address both, but they introduce a coordination layer with its own design problems worth understanding before reaching for them.</description><pubDate>Tue, 17 Mar 2026 15:19:20 GMT</pubDate></item><item><title>When Inlining Costs More Than the Function Call Did</title><link>https://nebelwolfi.xyz/blog/2026-03-17-when-inlining-costs-more-than-the-function-call-did/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-when-inlining-costs-more-than-the-function-call-did/</guid><description>Inlining is presented as the solution to function call overhead, but aggressive inlining grows code size, stresses the instruction cache, and can erase the gains it was meant to produce. Knowing when to reach for [[noinline]] matters as much as knowing why inlining helps.</description><pubDate>Tue, 17 Mar 2026 20:47:07 GMT</pubDate></item><item><title>When Inlining Fills Your Instruction Cache</title><link>https://nebelwolfi.xyz/blog/2026-03-17-when-inlining-fills-your-instruction-cache/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-when-inlining-fills-your-instruction-cache/</guid><description>Aggressive inlining removes function call overhead but can inflate code size until the instruction cache becomes the bottleneck. Here is how to recognize the tradeoff and calibrate it.</description><pubDate>Tue, 17 Mar 2026 20:45:59 GMT</pubDate></item><item><title>When malloc Is Not an Option: Allocation Strategies for Constrained Systems</title><link>https://nebelwolfi.xyz/blog/2026-03-17-when-malloc-is-not-an-option-allocation-strategies-for-constrained-systems/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-when-malloc-is-not-an-option-allocation-strategies-for-constrained-systems/</guid><description>Safety-critical and embedded systems often prohibit dynamic allocation outright. Understanding the five core allocator strategies from first principles is the only way to design memory management in those environments.</description><pubDate>Tue, 17 Mar 2026 21:09:38 GMT</pubDate></item><item><title>When the Training Data Isn&apos;t There: Engineering an LLM Pipeline for GDScript</title><link>https://nebelwolfi.xyz/blog/2026-03-17-when-the-training-data-isn-t-there-engineering-an-llm-pipeline-for-gdscript/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-when-the-training-data-isn-t-there-engineering-an-llm-pipeline-for-gdscript/</guid><description>Godogen generates playable Godot 4 games from text prompts by engineering around a fundamental problem: LLMs barely know GDScript. The solutions it built generalize to any niche-language pipeline.</description><pubDate>Tue, 17 Mar 2026 21:04:04 GMT</pubDate></item><item><title>When Tool Calls Fail: Error Recovery Inside the Coding Agent Loop</title><link>https://nebelwolfi.xyz/blog/2026-03-17-when-tool-calls-fail-error-recovery-inside-the-coding-agent-loop/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-when-tool-calls-fail-error-recovery-inside-the-coding-agent-loop/</guid><description>Coding agents handle failures differently from traditional scripts because errors are just tool results that enter the context. Understanding how that works explains both the resilience and the failure modes you&apos;ll encounter in practice.</description><pubDate>Tue, 17 Mar 2026 20:47:41 GMT</pubDate></item><item><title>When Your Abstraction Becomes an Optimization Wall: std::function in Tight Loops</title><link>https://nebelwolfi.xyz/blog/2026-03-17-when-your-abstraction-becomes-an-optimization-wall-std-function-in-tight-loops/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-when-your-abstraction-becomes-an-optimization-wall-std-function-in-tight-loops/</guid><description>std::function and virtual dispatch introduce opaque call boundaries that block auto-vectorization just as thoroughly as any non-inlined direct call. For hot numerical loops, the SIMD throughput you lose dwarfs the raw cycle overhead of the call instruction.</description><pubDate>Tue, 17 Mar 2026 20:37:06 GMT</pubDate></item><item><title>Where the Compiler&apos;s Inlining Heuristics Break Down and How PGO Fixes Them</title><link>https://nebelwolfi.xyz/blog/2026-03-17-where-the-compiler-s-inlining-heuristics-break-down-and-how-pgo-fixes-them/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-where-the-compiler-s-inlining-heuristics-break-down-and-how-pgo-fixes-them/</guid><description>Static inlining thresholds treat cold initialization code and hot inner loops identically. Profile-guided optimization gives the compiler actual call frequency data, converting guesses about what to inline into measurements that reflect your actual workload.</description><pubDate>Tue, 17 Mar 2026 20:40:19 GMT</pubDate></item><item><title>Why Coding Agent Reliability Is Mostly an Information Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-coding-agent-reliability-is-mostly-an-information-problem/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-coding-agent-reliability-is-mostly-an-information-problem/</guid><description>Most coding agent failures trace back to the model acting on stale or missing information rather than to gaps in reasoning capability. Understanding this reframes which engineering choices actually matter for reliability.</description><pubDate>Tue, 17 Mar 2026 21:17:27 GMT</pubDate></item><item><title>Why a Feed List Beats a Better Crawler for Finding Personal Sites</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-a-feed-list-beats-a-better-crawler-for-finding-personal-sites/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-a-feed-list-beats-a-better-crawler-for-finding-personal-sites/</guid><description>Kagi Small Web takes a curation-first approach to surfacing personal blogs and independent sites, and the architectural choice behind that decision says something worth examining about what makes personal site discovery hard in the first place.</description><pubDate>Tue, 17 Mar 2026 21:01:19 GMT</pubDate></item><item><title>Why Coding Agents Need to Run Code, Not Just Write It</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-coding-agents-need-to-run-code-not-just-write-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-coding-agents-need-to-run-code-not-just-write-it/</guid><description>The capability that changes coding agent output quality is not file reading or editing, it is running the tests. This post breaks down how the edit-run-observe-fix cycle works mechanically, what scaffolding it requires, and where it fails.</description><pubDate>Tue, 17 Mar 2026 20:43:55 GMT</pubDate></item><item><title>Why Formal Methods Never Won the SAST Precision War</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-formal-methods-never-won-the-sast-precision-war/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-formal-methods-never-won-the-sast-precision-war/</guid><description>AI-driven constraint reasoning is not the first attempt to solve SAST&apos;s false positive problem. Symbolic execution and Facebook&apos;s Infer tried before LLMs entered the conversation, and understanding why they couldn&apos;t achieve broad adoption clarifies what Codex Security is actually adding.</description><pubDate>Tue, 17 Mar 2026 20:56:47 GMT</pubDate></item><item><title>Why Inlining Is a Vectorization Prerequisite, Not Just a Speed Hack</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-inlining-is-a-vectorization-prerequisite-not-just-a-speed-hack/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-inlining-is-a-vectorization-prerequisite-not-just-a-speed-hack/</guid><description>The cycle overhead of a function call is measurable and small. The larger cost, which profiles rarely surface, is that an opaque call boundary prevents the compiler from auto-vectorizing the loops around it.</description><pubDate>Tue, 17 Mar 2026 20:33:10 GMT</pubDate></item><item><title>Why Meta Is Betting on jemalloc Instead of Starting Over</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-meta-is-betting-on-jemalloc-instead-of-starting-over/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-meta-is-betting-on-jemalloc-instead-of-starting-over/</guid><description>Meta&apos;s renewed investment in jemalloc is less about nostalgia and more about the specific ways modern hardware has outpaced a still-excellent allocator. Here&apos;s what&apos;s actually changing and why it matters.</description><pubDate>Tue, 17 Mar 2026 20:40:30 GMT</pubDate></item><item><title>Why Slow Code Review Keeps Getting Slower</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-slow-code-review-keeps-getting-slower/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-slow-code-review-keeps-getting-slower/</guid><description>Beyond the static queuing model, review delay creates feedback loops that amplify themselves: PR size inflation, context loss, and merge conflict accumulation all compound the original slowdown in ways most teams never measure.</description><pubDate>Tue, 17 Mar 2026 20:54:06 GMT</pubDate></item><item><title>Why the Agent Loop Is a Distributed Systems Problem in Disguise</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-the-agent-loop-is-a-distributed-systems-problem-in-disguise/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-the-agent-loop-is-a-distributed-systems-problem-in-disguise/</guid><description>Agentic engineering is a real engineering discipline, and its hardest problems map directly to distributed systems: partial failure, implicit state, and untrusted inputs at every tool boundary.</description><pubDate>Tue, 17 Mar 2026 21:05:26 GMT</pubDate></item><item><title>Why the Best Data Analysis Agents Show Their Work</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-the-best-data-analysis-agents-show-their-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-the-best-data-analysis-agents-show-their-work/</guid><description>Coding agents for data analysis are most useful when they make human review easy, not when they minimize human involvement. The transparency principle behind Simon Willison&apos;s tooling explains why.</description><pubDate>Tue, 17 Mar 2026 20:38:53 GMT</pubDate></item><item><title>Why the Tool Loop Is the Easy Part of Building a Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-the-tool-loop-is-the-easy-part-of-building-a-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-the-tool-loop-is-the-easy-part-of-building-a-coding-agent/</guid><description>The agent loop itself fits in eight lines of Python. What separates a toy prototype from Claude Code or Aider is the scaffolding around it: edit format reliability, context window management, and error recovery that doesn&apos;t spiral.</description><pubDate>Tue, 17 Mar 2026 21:18:12 GMT</pubDate></item><item><title>Your Agent&apos;s Tool Description Is Its API Contract</title><link>https://nebelwolfi.xyz/blog/2026-03-17-your-agent-s-tool-description-is-its-api-contract/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-your-agent-s-tool-description-is-its-api-contract/</guid><description>When Codex lets you define custom agents as callable tools, the tool description text becomes the primary signal the orchestrator uses to decide when and how to invoke each subagent. Getting it right is an interface design problem, not a prompt engineering problem.</description><pubDate>Tue, 17 Mar 2026 20:29:01 GMT</pubDate></item><item><title>Why Verification Subagents Need Independent Context to Be Useful</title><link>https://nebelwolfi.xyz/blog/2026-03-17-why-verification-subagents-need-independent-context-to-be-useful/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-why-verification-subagents-need-independent-context-to-be-useful/</guid><description>Asking an implementer subagent to check its own work is epistemically weaker than it looks. The atom model enables something more reliable: a verification subagent that receives only the output and applies judgment without inheriting the implementer&apos;s reasoning chain.</description><pubDate>Tue, 17 Mar 2026 21:01:07 GMT</pubDate></item><item><title>Writing Software With LLMs Has a New Bottleneck, and It&apos;s Not the Code</title><link>https://nebelwolfi.xyz/blog/2026-03-17-writing-software-with-llms-has-a-new-bottleneck-and-it-s-not-the-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-17-writing-software-with-llms-has-a-new-bottleneck-and-it-s-not-the-code/</guid><description>When LLMs handle the implementation, the bottleneck shifts to intent specification and verification. Here&apos;s what that means in practice for developers who use these tools daily.</description><pubDate>Tue, 17 Mar 2026 21:20:00 GMT</pubDate></item><item><title>Function Call Overhead in C++: The Barrier You Cannot Optimize Across</title><link>https://nebelwolfi.xyz/blog/2026-03-18-function-call-overhead-in-c-the-barrier-you-cannot-optimize-across/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-function-call-overhead-in-c-the-barrier-you-cannot-optimize-across/</guid><description>Function calls in C++ cost more than a few cycles. The real overhead is the optimization barrier they create, blocking auto-vectorization and preventing compilers from transforming tight loops into SIMD code.</description><pubDate>Wed, 18 Mar 2026 04:44:25 GMT</pubDate></item><item><title>The Real Reason Your Compiler Inlines Functions</title><link>https://nebelwolfi.xyz/blog/2026-03-18-the-real-reason-your-compiler-inlines-functions/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-the-real-reason-your-compiler-inlines-functions/</guid><description>Function call overhead is real but small. The more significant cost is what compilers cannot optimize when a call boundary restricts their view, including auto-vectorization that can affect throughput by 4x or more.</description><pubDate>Wed, 18 Mar 2026 04:35:47 GMT</pubDate></item><item><title>Inlining Does More Than Remove a Call</title><link>https://nebelwolfi.xyz/blog/2026-03-18-inlining-does-more-than-remove-a-call/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-inlining-does-more-than-remove-a-call/</guid><description>Function call overhead is real, but the deeper cost is what the compiler stops being able to see. Understanding why inlining matters means understanding the optimizer&apos;s information horizon.</description><pubDate>Wed, 18 Mar 2026 04:48:58 GMT</pubDate></item><item><title>Inlining, Vectorization, and the Real Cost of Function Calls in Tight Loops</title><link>https://nebelwolfi.xyz/blog/2026-03-18-inlining-vectorization-and-the-real-cost-of-function-calls-in-tight-loops/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-inlining-vectorization-and-the-real-cost-of-function-calls-in-tight-loops/</guid><description>Function calls carry overhead beyond the call instruction itself, and in tight loops that overhead can prevent the compiler from generating SIMD code. Here is how inlining unlocks the deeper optimizations that actually move the needle.</description><pubDate>Wed, 18 Mar 2026 04:37:21 GMT</pubDate></item><item><title>The Scaffolding Is the Product: How Coding Agents Actually Work</title><link>https://nebelwolfi.xyz/blog/2026-03-18-the-scaffolding-is-the-product-how-coding-agents-actually-work/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-the-scaffolding-is-the-product-how-coding-agents-actually-work/</guid><description>Coding agents like Claude Code, Aider, and Cursor share a common loop architecture, but their scaffolding layer, not the underlying LLM, accounts for most of the performance difference between them.</description><pubDate>Wed, 18 Mar 2026 04:38:21 GMT</pubDate></item><item><title>Inside the Loop: The Engineering Behind Coding Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-18-inside-the-loop-the-engineering-behind-coding-agents/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-inside-the-loop-the-engineering-behind-coding-agents/</guid><description>Coding agents are built on a simple tool-use loop, but the gap between understanding that loop and building something reliable is where most of the interesting engineering lives. A look at the scaffolding, tool design, context management, and error recovery that make agents actually work.</description><pubDate>Wed, 18 Mar 2026 04:38:37 GMT</pubDate></item><item><title>The Loop Is the Agent: What Actually Happens Inside a Coding Tool</title><link>https://nebelwolfi.xyz/blog/2026-03-18-the-loop-is-the-agent-what-actually-happens-inside-a-coding-tool/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-the-loop-is-the-agent-what-actually-happens-inside-a-coding-tool/</guid><description>A technical look at the agentic loop that powers coding tools like Claude Code and Cursor, from tool call format to context management and failure handling.</description><pubDate>Wed, 18 Mar 2026 04:38:32 GMT</pubDate></item><item><title>Why C++ Libraries Live in Headers: The Inlining Constraint Behind Modern C++ Design</title><link>https://nebelwolfi.xyz/blog/2026-03-18-why-c-libraries-live-in-headers-the-inlining-constraint-behind-modern-c-design/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-why-c-libraries-live-in-headers-the-inlining-constraint-behind-modern-c-design/</guid><description>The cost of a function call is not just cycles; it is the optimization barrier it creates. That barrier explains header-only libraries, template-based APIs, CRTP, and why std::function is slower than it looks.</description><pubDate>Wed, 18 Mar 2026 04:40:35 GMT</pubDate></item><item><title>Spec First, Code Later: The Workflow Layer That AI Coding Tools Don&apos;t Give You</title><link>https://nebelwolfi.xyz/blog/2026-03-18-spec-first-code-later-the-workflow-layer-that-ai-coding-tools-don-t-give-you/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-spec-first-code-later-the-workflow-layer-that-ai-coding-tools-don-t-give-you/</guid><description>The Get Shit Done system combines meta-prompting, context engineering, and spec-driven development into a coherent workflow. Here is what it gets right and where the real trade-offs land.</description><pubDate>Wed, 18 Mar 2026 04:41:21 GMT</pubDate></item><item><title>Throughput as a First-Class Concern: What Holotron-12B Gets Right About Computer Use Agents</title><link>https://nebelwolfi.xyz/blog/2026-03-18-throughput-as-a-first-class-concern-what-holotron-12b-gets-right-about-computer-/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-throughput-as-a-first-class-concern-what-holotron-12b-gets-right-about-computer-/</guid><description>Holotron-12B from H Company achieves over 8,900 tokens per second on a single H100 by combining a hybrid SSM-attention architecture with computer-use fine-tuning, more than doubling the throughput of its predecessor while jumping from 35% to 80% on the WebVoyager benchmark.</description><pubDate>Wed, 18 Mar 2026 04:42:47 GMT</pubDate></item><item><title>The Throughput Problem in Computer Use Agents, and How Holotron-12B Approaches It</title><link>https://nebelwolfi.xyz/blog/2026-03-18-the-throughput-problem-in-computer-use-agents-and-how-holotron-12b-approaches-it/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-the-throughput-problem-in-computer-use-agents-and-how-holotron-12b-approaches-it/</guid><description>Holotron-12B from H Company uses a hybrid SSM-attention architecture on top of NVIDIA&apos;s Nemotron base model to achieve 8.9k tokens/sec on a single H100, making the economics of high-concurrency agentic inference meaningfully different from transformer-only approaches.</description><pubDate>Wed, 18 Mar 2026 04:42:42 GMT</pubDate></item><item><title>Building the Context That Builds the Code</title><link>https://nebelwolfi.xyz/blog/2026-03-18-building-the-context-that-builds-the-code/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-building-the-context-that-builds-the-code/</guid><description>The GSD meta-prompting framework codifies what experienced LLM developers discover independently: engineering the context window deliberately, using AI itself to generate and maintain the spec files that drive development.</description><pubDate>Wed, 18 Mar 2026 04:43:25 GMT</pubDate></item><item><title>How C++&apos;s `inline` Keyword Lost Its Meaning</title><link>https://nebelwolfi.xyz/blog/2026-03-18-how-c-s-inline-keyword-lost-its-meaning/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-how-c-s-inline-keyword-lost-its-meaning/</guid><description>Most C++ developers write `inline` on functions expecting the compiler to substitute the body at call sites. It does not work that way, and understanding why reveals how compilers actually decide what to inline and why that decision has a 4-8x impact on tight loops.</description><pubDate>Wed, 18 Mar 2026 04:43:35 GMT</pubDate></item><item><title>The Real Cost of a Function Call Is What the Compiler Can No Longer See</title><link>https://nebelwolfi.xyz/blog/2026-03-18-the-real-cost-of-a-function-call-is-what-the-compiler-can-no-longer-see/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-the-real-cost-of-a-function-call-is-what-the-compiler-can-no-longer-see/</guid><description>Function call overhead in tight loops is rarely about the raw cycle cost of CALL; the real penalty is the auto-vectorization, alias analysis, and constant propagation that stop working the moment the compiler loses visibility into your code.</description><pubDate>Wed, 18 Mar 2026 04:45:16 GMT</pubDate></item><item><title>Function Calls Are Optimization Barriers, Not Just Overhead</title><link>https://nebelwolfi.xyz/blog/2026-03-18-function-calls-are-optimization-barriers-not-just-overhead/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-function-calls-are-optimization-barriers-not-just-overhead/</guid><description>A function call in a tight loop costs 10-15 cycles on modern hardware, but the hidden cost is larger: it prevents auto-vectorization, which can multiply that penalty by 8x or more.</description><pubDate>Wed, 18 Mar 2026 04:45:29 GMT</pubDate></item><item><title>The Missing State Layer in AI Development Workflows</title><link>https://nebelwolfi.xyz/blog/2026-03-18-the-missing-state-layer-in-ai-development-workflows/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-the-missing-state-layer-in-ai-development-workflows/</guid><description>AI conversations are stateless by default, meaning every session begins without the decisions and constraints your project has already established. Context Anchoring offers a pattern for externalizing that decision context into a living document, keeping the AI coherent across sessions.</description><pubDate>Wed, 18 Mar 2026 04:46:05 GMT</pubDate></item><item><title>The Scaffolding Is the Product: What Actually Happens Inside a Coding Agent</title><link>https://nebelwolfi.xyz/blog/2026-03-18-the-scaffolding-is-the-product-what-actually-happens-inside-a-coding-agent/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-the-scaffolding-is-the-product-what-actually-happens-inside-a-coding-agent/</guid><description>Coding agents are built on a simple tool-use loop, but the real engineering lives in the scaffolding around the model: tool design, context management, error recovery, and state tracking. Understanding that layer changes how you build with and on top of these systems.</description><pubDate>Wed, 18 Mar 2026 04:46:10 GMT</pubDate></item><item><title>The Optimization Wall Your Function Calls Build</title><link>https://nebelwolfi.xyz/blog/2026-03-18-the-optimization-wall-your-function-calls-build/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-the-optimization-wall-your-function-calls-build/</guid><description>A function call in a tight loop costs more than the raw call overhead: it creates a visibility boundary that blocks the compiler from vectorizing and applying deeper transformations to your code.</description><pubDate>Wed, 18 Mar 2026 04:46:28 GMT</pubDate></item><item><title>Getting to Break-Even: The Real Engineering Story Behind CPython&apos;s JIT Progress</title><link>https://nebelwolfi.xyz/blog/2026-03-18-getting-to-break-even-the-real-engineering-story-behind-cpython-s-jit-progress/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-getting-to-break-even-the-real-engineering-story-behind-cpython-s-jit-progress/</guid><description>Python&apos;s copy-and-patch JIT has been experimental since 3.13, but its toughest challenge was never correctness — it was outperforming an already well-optimized adaptive interpreter. Here is what had to change for Python 3.15 to get it back on track.</description><pubDate>Wed, 18 Mar 2026 04:46:37 GMT</pubDate></item><item><title>Treating the Spec as an Interface: What GSD Gets Right About AI Workflow Design</title><link>https://nebelwolfi.xyz/blog/2026-03-18-treating-the-spec-as-an-interface-what-gsd-gets-right-about-ai-workflow-design/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-treating-the-spec-as-an-interface-what-gsd-gets-right-about-ai-workflow-design/</guid><description>The Get Shit Done system applies a familiar systems programming idea to AI-assisted development: define the contract before writing the implementation. Here is why that framing matters and where the approach lands in the current tooling ecosystem.</description><pubDate>Wed, 18 Mar 2026 04:47:54 GMT</pubDate></item><item><title>Decisions Made 30 Messages Ago: Context Anchoring and the Second Half of the Context Problem</title><link>https://nebelwolfi.xyz/blog/2026-03-18-decisions-made-30-messages-ago-context-anchoring-and-the-second-half-of-the-cont/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-decisions-made-30-messages-ago-context-anchoring-and-the-second-half-of-the-cont/</guid><description>CLAUDE.md solves the problem of what the model knows about your project before you start. Context Anchoring solves a different problem: keeping the decisions you make during a session from disappearing as the conversation grows.</description><pubDate>Wed, 18 Mar 2026 04:49:02 GMT</pubDate></item><item><title>The Middle Loop: How AI Is Restructuring What Software Engineers Actually Do</title><link>https://nebelwolfi.xyz/blog/2026-03-18-the-middle-loop-how-ai-is-restructuring-what-software-engineers-actually-do/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-the-middle-loop-how-ai-is-restructuring-what-software-engineers-actually-do/</guid><description>Research on 158 professional software engineers reveals AI is creating a new layer of &apos;supervisory engineering work&apos; between writing code and shipping it, with implications that automation research from aviation and manufacturing predicted decades ago.</description><pubDate>Wed, 18 Mar 2026 04:49:03 GMT</pubDate></item><item><title>Exact at Any Scale: Ten Years of the Slug GPU Font Library</title><link>https://nebelwolfi.xyz/blog/2026-03-18-exact-at-any-scale-ten-years-of-the-slug-gpu-font-library/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-exact-at-any-scale-ten-years-of-the-slug-gpu-font-library/</guid><description>Eric Lengyel&apos;s Slug library has spent a decade rendering TrueType and OpenType glyphs analytically on the GPU; its history traces how the graphics industry reckoned with the real cost of approximate font rendering.</description><pubDate>Wed, 18 Mar 2026 04:50:00 GMT</pubDate></item><item><title>The Loop Is the Agent: Inside the Mechanics of Coding Tools</title><link>https://nebelwolfi.xyz/blog/2026-03-18-the-loop-is-the-agent-inside-the-mechanics-of-coding-tools/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-the-loop-is-the-agent-inside-the-mechanics-of-coding-tools/</guid><description>Every coding agent runs the same core loop: call the LLM, execute tool calls, feed results back, repeat. Understanding that loop, and the context window pressure it creates, explains most of what differentiates reliable coding agents from fragile ones.</description><pubDate>Wed, 18 Mar 2026 04:50:28 GMT</pubDate></item><item><title>FFmpeg 8.1 and the Engineering That Keeps Every Video Pipeline Running</title><link>https://nebelwolfi.xyz/blog/2026-03-18-ffmpeg-8-1-and-the-engineering-that-keeps-every-video-pipeline-running/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-ffmpeg-8-1-and-the-engineering-that-keeps-every-video-pipeline-running/</guid><description>FFmpeg 8.1 is out. Beneath the codec additions and filter updates is one of the most consequential C libraries ever written, and understanding its architecture explains why almost every video system on the internet depends on it.</description><pubDate>Wed, 18 Mar 2026 04:50:59 GMT</pubDate></item><item><title>How AI Coding Tools Made Specs Load-Bearing Again</title><link>https://nebelwolfi.xyz/blog/2026-03-18-how-ai-coding-tools-made-specs-load-bearing-again/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-how-ai-coding-tools-made-specs-load-bearing-again/</guid><description>The Get Shit Done system formalizes a rehabilitation of spec-first development that agile discredited, but with a different motivation: when a language model is your implementation partner, specifications are model inputs, not documentation overhead.</description><pubDate>Wed, 18 Mar 2026 04:50:54 GMT</pubDate></item><item><title>Slug at Ten: The Case for Exact GPU Font Rendering</title><link>https://nebelwolfi.xyz/blog/2026-03-18-slug-at-ten-the-case-for-exact-gpu-font-rendering/</link><guid isPermaLink="true">https://nebelwolfi.xyz/blog/2026-03-18-slug-at-ten-the-case-for-exact-gpu-font-rendering/</guid><description>Eric Lengyel&apos;s Slug library has rendered TrueType and OpenType fonts analytically on the GPU for a decade, outlasting multiple shader API generations while offering quality that SDF and MSDF approaches fundamentally cannot match.</description><pubDate>Wed, 18 Mar 2026 04:51:11 GMT</pubDate></item></channel></rss>