<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Ideas &amp; Insights – Autotomy</title><description>Exploring AI-first development, coding guardrails, and the architecture of disposability.</description><link>https://autotomy.dev/</link><language>en</language><item><title>Your main branch is broken. You have 200 commits to search through.</title><link>https://autotomy.dev/blog/git-bisect-binary-search-commit/</link><guid isPermaLink="true">https://autotomy.dev/blog/git-bisect-binary-search-commit/</guid><description>Git bisect turns a manual commit hunt into an automated binary search.</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Your error tracker knows where it died. That won&apos;t help you reproduce it.</title><link>https://autotomy.dev/blog/production-crash-capture-replay/</link><guid isPermaLink="true">https://autotomy.dev/blog/production-crash-capture-replay/</guid><description>Stack traces tell you where a crash happened, not what caused it.</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Symbolic Execution Found an Integer Overflow My 94% Test Coverage Missed</title><link>https://autotomy.dev/blog/symbolic-execution-integer-overflow-coverage/</link><guid isPermaLink="true">https://autotomy.dev/blog/symbolic-execution-integer-overflow-coverage/</guid><description>Your unit tests check specific inputs. Symbolic execution checks every possible input. Here&apos;s how it works, what it costs, and where to start.</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Your logs are leaking PII, and grep won&apos;t save you</title><link>https://autotomy.dev/blog/pii-tracking-code-pipeline/</link><guid isPermaLink="true">https://autotomy.dev/blog/pii-tracking-code-pipeline/</guid><description>Most teams find PII leaks after a customer complaint. Here&apos;s how to track sensitive data from ingestion to output with code examples you can use today.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Your API broke in production because CI was testing code, not contracts</title><link>https://autotomy.dev/blog/api-contract-testing-ci/</link><guid isPermaLink="true">https://autotomy.dev/blog/api-contract-testing-ci/</guid><description>Most CI pipelines catch syntax errors and logic bugs. They miss the API contract breaks that actually take down production. Here&apos;s how to fix that.</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Crash Correlations Lie. Here Is How to Make Them Point at the Real Bug.</title><link>https://autotomy.dev/blog/crash-correlation-triangulation/</link><guid isPermaLink="true">https://autotomy.dev/blog/crash-correlation-triangulation/</guid><description>Statistical debugging finds predicates correlated with crashes, but correlation is not a file and line number.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Sentry&apos;s Seer Can Read Your Traces. That Doesn&apos;t Mean It Always Finds the Root Cause.</title><link>https://autotomy.dev/blog/sentry-seer-trace-root-cause/</link><guid isPermaLink="true">https://autotomy.dev/blog/sentry-seer-trace-root-cause/</guid><description>Seer ingests trace trees, connected errors, and profiling data to diagnose distributed issues.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Statistical debugging was supposed to end printf debugging. Most teams never got it to work.</title><link>https://autotomy.dev/blog/statistical-debugging-adoption-challenges/</link><guid isPermaLink="true">https://autotomy.dev/blog/statistical-debugging-adoption-challenges/</guid><description>Statistical debugging promised to pinpoint bugs by correlating program behavior with failures.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Your tests passed. Your data is still wrong.</title><link>https://autotomy.dev/blog/statistical-debugging-production-data-anomalies/</link><guid isPermaLink="true">https://autotomy.dev/blog/statistical-debugging-production-data-anomalies/</guid><description>Statistical debugging treats your production data as a signal and bugs as anomalies.</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Metamorphic testing found 147 compiler bugs and a self-driving car defect. Here&apos;s how it works.</title><link>https://autotomy.dev/blog/metamorphic-testing-production-bugs-compiler/</link><guid isPermaLink="true">https://autotomy.dev/blog/metamorphic-testing-production-bugs-compiler/</guid><description>Metamorphic testing has uncovered real bugs in GCC, LLVM, Vulkan shader compilers, and ADAS simulators.</description><pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate></item><item><title>LLMs Can Suggest Metamorphic Relations. They Just Can&apos;t Guarantee Them.</title><link>https://autotomy.dev/blog/llm-metamorphic-relations-brainstorming/</link><guid isPermaLink="true">https://autotomy.dev/blog/llm-metamorphic-relations-brainstorming/</guid><description>Large language models are decent brainstorming partners for discovering test oracles, but they hallucinate properties and miss domain constraints.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Most Metamorphic Relations Are Useless. Here&apos;s How to Pick the Good Ones.</title><link>https://autotomy.dev/blog/metamorphic-relation-quality/</link><guid isPermaLink="true">https://autotomy.dev/blog/metamorphic-relation-quality/</guid><description>Not all metamorphic relations catch bugs. Weak relations give false confidence while strong ones find real faults.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>How do I test code when I don&apos;t know the right answer?</title><link>https://autotomy.dev/blog/metamorphic-testing-oracle-problem/</link><guid isPermaLink="true">https://autotomy.dev/blog/metamorphic-testing-oracle-problem/</guid><description>Metamorphic testing lets you verify code correctness without knowing the exact expected output.</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript Won&apos;t Let You Make That Call: Encoding Protocol State in the Type System</title><link>https://autotomy.dev/blog/typescript-phantom-types-protocol-state/</link><guid isPermaLink="true">https://autotomy.dev/blog/typescript-phantom-types-protocol-state/</guid><description>How to use phantom types and `this` parameters to turn illegal protocol transitions into compile-time errors instead of runtime bugs.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate></item><item><title>OpenAPI Gives You the Alphabet. Session Types Need the Grammar.</title><link>https://autotomy.dev/blog/openapi-session-types-protocol-gap/</link><guid isPermaLink="true">https://autotomy.dev/blog/openapi-session-types-protocol-gap/</guid><description>OpenAPI specs describe request and response schemas, but they don&apos;t specify valid message sequences.</description><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Session types work. Most languages just refused to implement them.</title><link>https://autotomy.dev/blog/session-types-research-to-production/</link><guid isPermaLink="true">https://autotomy.dev/blog/session-types-research-to-production/</guid><description>Session types encode communication protocols in the type system, turning runtime protocol errors into compile-time failures.</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate></item><item><title>How session types turn deadlocks into compiler errors</title><link>https://autotomy.dev/blog/session-types-deadlock-compiler-errors/</link><guid isPermaLink="true">https://autotomy.dev/blog/session-types-deadlock-compiler-errors/</guid><description>Session types encode communication protocols in your type system, turning message-passing mismatches into compiler errors before your code ever runs.</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Abstract interpretation sounds like a PhD requirement. It isn&apos;t anymore.</title><link>https://autotomy.dev/blog/infer-abstract-interpretation-ci/</link><guid isPermaLink="true">https://autotomy.dev/blog/infer-abstract-interpretation-ci/</guid><description>How to run formal static analysis in your CI pipeline using Infer, with working configs and realistic trade-offs.</description><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate></item><item><title>LLMs Can Rank Your Static Analysis Warnings. They Just Can&apos;t Explain Why.</title><link>https://autotomy.dev/blog/llm-static-analysis-triage/</link><guid isPermaLink="true">https://autotomy.dev/blog/llm-static-analysis-triage/</guid><description>Large language models can help triage static analysis false positives, but they don&apos;t understand program semantics the way abstract interpretation does.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Facebook parallelized Android with abstract interpretation. Here&apos;s how it works.</title><link>https://autotomy.dev/blog/facebook-android-abstract-interpretation-races/</link><guid isPermaLink="true">https://autotomy.dev/blog/facebook-android-abstract-interpretation-races/</guid><description>How Facebook used abstract interpretation and intentional unsoundness to find race conditions at scale in millions of lines of Android code.</description><pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Meta found 100,000 bugs in production code with a static analyzer that never runs the program</title><link>https://autotomy.dev/blog/meta-infer-100000-bugs-static-analysis/</link><guid isPermaLink="true">https://autotomy.dev/blog/meta-infer-100000-bugs-static-analysis/</guid><description>Meta&apos;s Infer uses abstract interpretation and bi-abduction to find null dereferences, memory leaks, and race conditions by reasoning about code structure,...</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Static Analysis Can&apos;t Prove Your Airplane Won&apos;t Crash. It Can Prove Something More Useful.</title><link>https://autotomy.dev/blog/static-analysis-aviation-abstract-interpretation/</link><guid isPermaLink="true">https://autotomy.dev/blog/static-analysis-aviation-abstract-interpretation/</guid><description>Abstract interpretation over-approximates every possible program state.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate></item><item><title>How to prove your code has no runtime errors (and why you&apos;ll probably give up trying)</title><link>https://autotomy.dev/blog/abstract-interpretation-runtime-error-proof/</link><guid isPermaLink="true">https://autotomy.dev/blog/abstract-interpretation-runtime-error-proof/</guid><description>Abstract interpretation lets you prove runtime errors impossible before execution.</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Your C code can run on capability hardware without a full rewrite</title><link>https://autotomy.dev/blog/cheri-c-porting-hybrid-abi/</link><guid isPermaLink="true">https://autotomy.dev/blog/cheri-c-porting-hybrid-abi/</guid><description>CHERI&apos;s hybrid ABI lets you port C code to capability hardware incrementally.</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Capability hardware didn&apos;t fail. It arrived 40 years early.</title><link>https://autotomy.dev/blog/capability-hardware-cheri-history/</link><guid isPermaLink="true">https://autotomy.dev/blog/capability-hardware-cheri-history/</guid><description>Memory safety at the hardware level has been possible since the 1970s.</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Your C dependency can segfault your entire process. WebAssembly can stop it.</title><link>https://autotomy.dev/blog/c-library-wasm-sandbox/</link><guid isPermaLink="true">https://autotomy.dev/blog/c-library-wasm-sandbox/</guid><description>Containers are overkill for isolating a single C library.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Your Phone Already Has Hardware That Catches Memory Corruption</title><link>https://autotomy.dev/blog/mobile-memory-tagging-extension/</link><guid isPermaLink="true">https://autotomy.dev/blog/mobile-memory-tagging-extension/</guid><description>ARM Memory Tagging Extension and GWP-ASan make production memory safety detection possible on modern mobile devices.</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Buffer Overflows Keep Happening Because We Fix Them in Software</title><link>https://autotomy.dev/blog/cheri-hardware-buffer-overflow-prevention/</link><guid isPermaLink="true">https://autotomy.dev/blog/cheri-hardware-buffer-overflow-prevention/</guid><description>CHERI is a hardware extension that turns every pointer into a bounded capability.</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>LLMs Can&apos;t Prove Your Code Correct, But They Can Write the Boilerplate That Does</title><link>https://autotomy.dev/blog/llm-cleanroom-proof-obligation-automation/</link><guid isPermaLink="true">https://autotomy.dev/blog/llm-cleanroom-proof-obligation-automation/</guid><description>Cleanroom verification requires generating and discharging proof obligations.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Cleanroom Delivers 0.1 Defects per KLOC. You Don&apos;t Need the Full Religion to Get There.</title><link>https://autotomy.dev/blog/cleanroom-pragmatic-subset/</link><guid isPermaLink="true">https://autotomy.dev/blog/cleanroom-pragmatic-subset/</guid><description>Cleanroom software engineering cuts defect rates by 100×, but full adoption requires separate test teams and formal proofs.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>IBM&apos;s Zero-Defect Process Delivered 0.1 Bugs Per KLOC. The Industry Abandoned It Anyway.</title><link>https://autotomy.dev/blog/ibm-cleanroom-zero-defects-disappearance/</link><guid isPermaLink="true">https://autotomy.dev/blog/ibm-cleanroom-zero-defects-disappearance/</guid><description>IBM&apos;s Cleanroom engineering achieved defect rates 100× better than industry average, then faded into obscurity.</description><pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Did anyone actually verify 10,000 lines with zero defects? IBM did, and the methodology is stranger than the result.</title><link>https://autotomy.dev/blog/ibm-cleanroom-10000-lines-zero-defects/</link><guid isPermaLink="true">https://autotomy.dev/blog/ibm-cleanroom-10000-lines-zero-defects/</guid><description>Cleanroom software engineering promised zero-defect increments through mathematical verification instead of debugging.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Your Module Has Three Layers. You Probably Only Wrote One.</title><link>https://autotomy.dev/blog/cleanroom-box-structure-three-layers/</link><guid isPermaLink="true">https://autotomy.dev/blog/cleanroom-box-structure-three-layers/</guid><description>Box structures force you to define what a module does, what it remembers, and how it works as three separate, verifiable layers.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item><item><title>IBM shipped software with 0.1 defects per KLOC by banning developers from running their own code</title><link>https://autotomy.dev/blog/ibm-cleanroom-01-defects-per-kloc/</link><guid isPermaLink="true">https://autotomy.dev/blog/ibm-cleanroom-01-defects-per-kloc/</guid><description>IBM&apos;s Cleanroom engineering process achieved defect rates 100× better than industry average by preventing bugs instead of finding them.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Your literate program is broken until CI can tangle it without you</title><link>https://autotomy.dev/blog/ci-literate-programming-tangle/</link><guid isPermaLink="true">https://autotomy.dev/blog/ci-literate-programming-tangle/</guid><description>Literate programming promises a single source of truth, but manual weave and tangle steps break the CI/CD pipeline.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Explaining Code to an LLM First Cut My Bug Rate by 85%</title><link>https://autotomy.dev/blog/llm-rubber-ducking-bug-rate/</link><guid isPermaLink="true">https://autotomy.dev/blog/llm-rubber-ducking-bug-rate/</guid><description>I spent 30 days writing design explanations before asking an LLM for code. The results changed how I think about rubber-ducking.</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate></item><item><title>I stopped copying code into docs by keeping tests, code, and prose in one Markdown file</title><link>https://autotomy.dev/blog/literate-programming-markdown-python/</link><guid isPermaLink="true">https://autotomy.dev/blog/literate-programming-markdown-python/</guid><description>Literate programming keeps documentation, tests, and implementation in sync by making a Markdown file the single source of truth.</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Your Claude Thread Is Already Documentation. It Just Dies in Twelve Hours.</title><link>https://autotomy.dev/blog/claude-thread-to-documentation/</link><guid isPermaLink="true">https://autotomy.dev/blog/claude-thread-to-documentation/</guid><description>LLM conversations contain intent, rejected alternatives, and working code. That&apos;s exactly what documentation should be.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Text Editors Let You Write Invalid Code. Tree Editors Wouldn&apos;t.</title><link>https://autotomy.dev/blog/structured-editing-ast-text-editors/</link><guid isPermaLink="true">https://autotomy.dev/blog/structured-editing-ast-text-editors/</guid><description>Every compiler sees your code as a tree, but your editor lets you edit raw text.</description><pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Donald Knuth Wanted Programs to Read Like Literature. The Compiler Had Other Ideas.</title><link>https://autotomy.dev/blog/knuth-literate-programming-history/</link><guid isPermaLink="true">https://autotomy.dev/blog/knuth-literate-programming-history/</guid><description>Literate programming promised that code should be written for humans first and machines second. Four decades later, almost nobody writes that way.</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Fixing the Bug Is the Easy Part. Figuring Out Why It Exists Is What Matters.</title><link>https://autotomy.dev/blog/fagan-causal-analysis-defects/</link><guid isPermaLink="true">https://autotomy.dev/blog/fagan-causal-analysis-defects/</guid><description>Most teams fix defects and move on. The same defects come back.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Pull Request Reviews Catch 15-30% of Defects. The Data Has Said So for 50 Years.</title><link>https://autotomy.dev/blog/pr-reviews-catch-15-to-30-percent-defects/</link><guid isPermaLink="true">https://autotomy.dev/blog/pr-reviews-catch-15-to-30-percent-defects/</guid><description>Multiple studies across IBM, AT&amp;T, HP, and Microsoft confirm informal code review catches roughly a quarter of defects.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate></item><item><title>A Generic Checklist Catches Nothing. A Structured One Catches 60% of Defects.</title><link>https://autotomy.dev/blog/fagan-structured-checklist-defect-detection/</link><guid isPermaLink="true">https://autotomy.dev/blog/fagan-structured-checklist-defect-detection/</guid><description>Most review checklists are copy-pasted lists of good intentions.</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate></item><item><title>An LLM Can Pre-Inspect Your Code. It Cannot Run the Meeting.</title><link>https://autotomy.dev/blog/llm-fagan-inspection-preparation/</link><guid isPermaLink="true">https://autotomy.dev/blog/llm-fagan-inspection-preparation/</guid><description>Fagan inspections need four to six people and two hours to review 250 lines.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Fagan Inspections Found 90% of Defects Before Testing. Then We Stopped Doing Them.</title><link>https://autotomy.dev/blog/fagan-inspections-disappearance-ibm/</link><guid isPermaLink="true">https://autotomy.dev/blog/fagan-inspections-disappearance-ibm/</guid><description>Michael Fagan&apos;s structured inspection process at IBM caught nearly all defects before they reached a compiler.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Your Best Reviewer Misses Most Defects. Fagan Measured It at IBM in 1976.</title><link>https://autotomy.dev/blog/fagan-reviewer-defect-detection-variance/</link><guid isPermaLink="true">https://autotomy.dev/blog/fagan-reviewer-defect-detection-variance/</guid><description>Even senior engineers catch only a fraction of defects in unstructured review.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Most Code Reviews Catch 20% of Defects. Fagan Inspections Catch 90%.</title><link>https://autotomy.dev/blog/fagan-inspections-90-percent-defects/</link><guid isPermaLink="true">https://autotomy.dev/blog/fagan-inspections-90-percent-defects/</guid><description>Informal code review catches 15-30% of defects. Fagan inspections, a structured 50-year-old process, consistently report 60-90% removal rates.</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate></item><item><title>AutoVerus turns 40 hours of proof writing into 3 LLM calls. The trick is knowing when to give up.</title><link>https://autotomy.dev/blog/autoverus-llm-rust-verification/</link><guid isPermaLink="true">https://autotomy.dev/blog/autoverus-llm-rust-verification/</guid><description>AutoVerus uses a network of LLM agents to generate Verus correctness proofs for Rust code, automating over 90% of proof obligations through a...</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate></item><item><title>LLMs can generate Rust code. Formal proofs are a different problem entirely.</title><link>https://autotomy.dev/blog/llm-rust-formal-proofs-hallucination/</link><guid isPermaLink="true">https://autotomy.dev/blog/llm-rust-formal-proofs-hallucination/</guid><description>Large language models write surprisingly good Rust, but when you ask them for a formal proof they hallucinate invariants and invent syntax that no verifier...</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Waiting for race conditions is a terrible testing strategy</title><link>https://autotomy.dev/blog/model-checking-race-conditions/</link><guid isPermaLink="true">https://autotomy.dev/blog/model-checking-race-conditions/</guid><description>Why model checking beats days of production runtime for finding concurrency bugs, and how to apply it to your own code.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate></item><item><title>You Can Model-Check Code Without Learning Temporal Logic</title><link>https://autotomy.dev/blog/is-there-a-model-checker-that-doesnt-require-learning-temporal-logic/</link><guid isPermaLink="true">https://autotomy.dev/blog/is-there-a-model-checker-that-doesnt-require-learning-temporal-logic/</guid><description>Bounded model checkers like Kani and relational model finders like Alloy let you verify properties with ordinary assertions and constraints.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>You can prove Rust code correct without writing a single proof, but the state space is the bill</title><link>https://autotomy.dev/blog/rust-model-checking-kani-state-space/</link><guid isPermaLink="true">https://autotomy.dev/blog/rust-model-checking-kani-state-space/</guid><description>Model checking tools like Kani let you verify Rust properties with assertions instead of formal proofs.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>You can&apos;t unit test a distributed protocol, but you can model check it</title><link>https://autotomy.dev/blog/distributed-protocol-model-checking-tla/</link><guid isPermaLink="true">https://autotomy.dev/blog/distributed-protocol-model-checking-tla/</guid><description>Distributed bugs are expensive to fix after deployment. Model checking lets you find them before you write a single line of implementation code.</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Copying `.env` files across environments is not a config strategy</title><link>https://autotomy.dev/blog/infrastructure-config-dsl-per-context/</link><guid isPermaLink="true">https://autotomy.dev/blog/infrastructure-config-dsl-per-context/</guid><description>How infrastructure teams manage configuration across dev, staging, and production using per-context DSLs that make environment differences explicit and...</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Grammar-constrained decoding: forcing LLMs to output valid syntax at the token level</title><link>https://autotomy.dev/blog/grammar-constrained-decoding-llm/</link><guid isPermaLink="true">https://autotomy.dev/blog/grammar-constrained-decoding-llm/</guid><description>LLMs hallucinate syntax because they sample tokens probabilistically.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title>English-to-theme translation is easy. Making it deterministic is the real problem.</title><link>https://autotomy.dev/blog/english-to-theme-deterministic-design-tokens/</link><guid isPermaLink="true">https://autotomy.dev/blog/english-to-theme-deterministic-design-tokens/</guid><description>You can generate design tokens from plain English descriptions, but only if you treat the description as a bounded-context DSL with a schema contract and...</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Ditch the grammar file: write your DSL parser in plain TypeScript</title><link>https://autotomy.dev/blog/typescript-parser-combinators-dsl/</link><guid isPermaLink="true">https://autotomy.dev/blog/typescript-parser-combinators-dsl/</guid><description>Parser generators are overkill for most bounded-context DSLs.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Runtime config errors are production failures you chose to allow</title><link>https://autotomy.dev/blog/config-validation-build-time/</link><guid isPermaLink="true">https://autotomy.dev/blog/config-validation-build-time/</guid><description>How to catch configuration mistakes before your application starts serving traffic, using schema validation and build-time checks.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your dependencies can read your environment variables. JavaScript lets them.</title><link>https://autotomy.dev/blog/javascript-capability-security-lockdown/</link><guid isPermaLink="true">https://autotomy.dev/blog/javascript-capability-security-lockdown/</guid><description>Ambient authority means any code in your Node.js process can touch the filesystem, network, and environment.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Network Proximity Is Not Identity: How Services Authenticate Without Ambient Authority</title><link>https://autotomy.dev/blog/service-authentication-without-ambient-authority/</link><guid isPermaLink="true">https://autotomy.dev/blog/service-authentication-without-ambient-authority/</guid><description>Most service-to-service trust comes from network location, not cryptographic proof.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your dependencies can read any file on disk. cap-std makes them ask permission.</title><link>https://autotomy.dev/blog/rust-cap-std-capability-filesystem/</link><guid isPermaLink="true">https://autotomy.dev/blog/rust-cap-std-capability-filesystem/</guid><description>Rust&apos;s standard library grants ambient filesystem authority to every dependency.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your Service Is an Unwitting Accomplice: How Confused Deputy Attacks Work</title><link>https://autotomy.dev/blog/whats-a-confused-deputy-attack-and-how-do-i-prevent-it/</link><guid isPermaLink="true">https://autotomy.dev/blog/whats-a-confused-deputy-attack-and-how-do-i-prevent-it/</guid><description>A confused deputy attack tricks a privileged service into using its authority against itself.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your permission checks are lying to you</title><link>https://autotomy.dev/blog/typescript-capability-based-security/</link><guid isPermaLink="true">https://autotomy.dev/blog/typescript-capability-based-security/</guid><description>Capability-based security replaces scattered role checks with unforgeable tokens of authority.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate></item><item><title>What If Every Function Had to Receive Permission Instead of Assuming It?</title><link>https://autotomy.dev/blog/capability-based-security-permissions/</link><guid isPermaLink="true">https://autotomy.dev/blog/capability-based-security-permissions/</guid><description>Most code runs with ambient authority: every function can touch everything.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Stop Throwing Errors Your Type Checker Can&apos;t See</title><link>https://autotomy.dev/blog/should-i-stop-throwing-errors-and-start-returning-them/</link><guid isPermaLink="true">https://autotomy.dev/blog/should-i-stop-throwing-errors-and-start-returning-them/</guid><description>Thrown exceptions hide failure paths from your type system.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Rust newtypes make wrong states unrepresentable at compile time, for free</title><link>https://autotomy.dev/blog/rust-newtypes-zero-cost-safety/</link><guid isPermaLink="true">https://autotomy.dev/blog/rust-newtypes-zero-cost-safety/</guid><description>A single-field wrapper struct catches unit-mixing bugs and type confusion without adding a single byte of overhead.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Switch statements leak bugs at compile time</title><link>https://autotomy.dev/blog/is-there-a-better-way-than-switch-statements-for-type-safe-matching/</link><guid isPermaLink="true">https://autotomy.dev/blog/is-there-a-better-way-than-switch-statements-for-type-safe-matching/</guid><description>TypeScript switch statements silently let you forget cases.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The compiler should catch missing state cases, not your QA team</title><link>https://autotomy.dev/blog/typescript-exhaustiveness-state-machines/</link><guid isPermaLink="true">https://autotomy.dev/blog/typescript-exhaustiveness-state-machines/</guid><description>Adding a new state to your machine is easy. Remembering to update every switch statement is not.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Yes, But Your Type System Needs to Know What a Dollar Is</title><link>https://autotomy.dev/blog/typescript-currency-types/</link><guid isPermaLink="true">https://autotomy.dev/blog/typescript-currency-types/</guid><description>TypeScript sees all numbers as identical. Here&apos;s how to teach it the difference between USD and EUR so the compiler catches currency conversion bugs before...</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item><item><title>A number is not just a number: how to make the compiler catch unit bugs</title><link>https://autotomy.dev/blog/typescript-unit-types-compile-time/</link><guid isPermaLink="true">https://autotomy.dev/blog/typescript-unit-types-compile-time/</guid><description>Passing milliseconds where seconds were expected is a bug that passes every test.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript let me pass a user ID where an order ID belongs</title><link>https://autotomy.dev/blog/typescript-branded-types-newtypes/</link><guid isPermaLink="true">https://autotomy.dev/blog/typescript-branded-types-newtypes/</guid><description>Type aliases don&apos;t create distinct types in TypeScript. Branded types do, and they can save you from mixing up identifiers at compile time.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Differential Testing Works Without a Formal Proof, but Common-Mode Failures Are the Catch</title><link>https://autotomy.dev/blog/differential-testing-common-mode-failures/</link><guid isPermaLink="true">https://autotomy.dev/blog/differential-testing-common-mode-failures/</guid><description>Differential testing lets you find bugs without knowing the correct answer. The problem is that correlated mistakes look like agreement.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Testing Won&apos;t Prove Two Functions Are Equivalent. Here&apos;s What Will.</title><link>https://autotomy.dev/blog/function-equivalence-smt-solvers/</link><guid isPermaLink="true">https://autotomy.dev/blog/function-equivalence-smt-solvers/</guid><description>N-version programming assumes your implementations agree.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate></item><item><title>What If My LLM Variants Disagree? Which One Is Right?</title><link>https://autotomy.dev/blog/llm-variant-disagreement-resolution/</link><guid isPermaLink="true">https://autotomy.dev/blog/llm-variant-disagreement-resolution/</guid><description>Running multiple LLMs in parallel catches errors that any single model will confidently ship.</description><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Five Implementations and No Majority: How to Actually Pick the Best One</title><link>https://autotomy.dev/blog/n-version-implementation-selection/</link><guid isPermaLink="true">https://autotomy.dev/blog/n-version-implementation-selection/</guid><description>N-version programming sounds simple: run multiple implementations and pick the best answer. In practice, &apos;best&apos; is a lot harder to define than &apos;most common.&apos;</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The Same LLM Can Write Five Versions of Your Function. Here&apos;s How to Make Them Actually Different.</title><link>https://autotomy.dev/blog/llm-n-version-diverse-implementations/</link><guid isPermaLink="true">https://autotomy.dev/blog/llm-n-version-diverse-implementations/</guid><description>N-version programming with LLMs doesn&apos;t require multiple models.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>NASA Ran 27 Copies of the Same Program. The Bugs Voted as a Bloc.</title><link>https://autotomy.dev/blog/nasa-n-version-programming-knight-leveson/</link><guid isPermaLink="true">https://autotomy.dev/blog/nasa-n-version-programming-knight-leveson/</guid><description>N-version programming promised that independent teams would make independent mistakes.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Half Your Cucumber Scenarios Are Skipped. Here&apos;s Why That Status Is Lying to You.</title><link>https://autotomy.dev/blog/cucumber-skipped-scenarios-diagnosis/</link><guid isPermaLink="true">https://autotomy.dev/blog/cucumber-skipped-scenarios-diagnosis/</guid><description>Cucumber&apos;s &apos;skipped&apos; status hides three completely different problems. Here&apos;s how to diagnose which one is eating your test suite, and how to stop it.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your Gherkin specs are lying to you</title><link>https://autotomy.dev/blog/gherkin-specs-automated-sync/</link><guid isPermaLink="true">https://autotomy.dev/blog/gherkin-specs-automated-sync/</guid><description>Gherkin specs drift out of sync the moment you trust humans to update them manually. Here&apos;s how to automate the checks that keep feature files honest.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your Compiler Checks Syntax. Your Tests Should Check Architecture.</title><link>https://autotomy.dev/blog/architecture-tests-ci-enforcement/</link><guid isPermaLink="true">https://autotomy.dev/blog/architecture-tests-ci-enforcement/</guid><description>Most teams document architecture rules in wikis. Here&apos;s how to write them as executable tests that fail CI when your dependency graph drifts.</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your domain layer imports Postgres. Your CI doesn&apos;t care.</title><link>https://autotomy.dev/blog/clean-architecture-domain-infrastructure-ci/</link><guid isPermaLink="true">https://autotomy.dev/blog/clean-architecture-domain-infrastructure-ci/</guid><description>Clean architecture diagrams look great on a whiteboard.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your Architecture Diagram Is Already a Lie</title><link>https://autotomy.dev/blog/architecture-docs-code-generated-diagrams/</link><guid isPermaLink="true">https://autotomy.dev/blog/architecture-docs-code-generated-diagrams/</guid><description>Architecture documentation rots the moment you save it. Here&apos;s how to keep docs honest using code-generated diagrams, ADRs, and automated architecture tests.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your retry loop assumes the first request failed. It probably didn&apos;t.</title><link>https://autotomy.dev/blog/idempotency-keys-api-retries/</link><guid isPermaLink="true">https://autotomy.dev/blog/idempotency-keys-api-retries/</guid><description>A timeout or crash does not mean your API request was lost.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate></item><item><title>A lock that outlives your process: how distributed leases actually work</title><link>https://autotomy.dev/blog/distributed-leases-fencing-tokens/</link><guid isPermaLink="true">https://autotomy.dev/blog/distributed-leases-fencing-tokens/</guid><description>In-memory mutexes vanish when your server restarts. Here&apos;s how distributed leases with fencing tokens and TTLs prevent duplicate work across crashes, and...</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate></item><item><title>A circuit breaker with no goroutines, no timers, and no background overhead</title><link>https://autotomy.dev/blog/circuit-breaker-lazy-recovery-no-goroutines/</link><guid isPermaLink="true">https://autotomy.dev/blog/circuit-breaker-lazy-recovery-no-goroutines/</guid><description>Most circuit breaker libraries spawn background threads to probe for recovery. You don&apos;t need them.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your Web Service Has a Graceful Shutdown Path. That&apos;s the Bug.</title><link>https://autotomy.dev/blog/crash-only-software-web-services/</link><guid isPermaLink="true">https://autotomy.dev/blog/crash-only-software-web-services/</guid><description>Crash-only software treats every failure as a crash and every startup as a recovery.</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>How to Kill a Surviving Mutant When You Don&apos;t Understand What It Changed</title><link>https://autotomy.dev/blog/killing-surviving-mutants/</link><guid isPermaLink="true">https://autotomy.dev/blog/killing-surviving-mutants/</guid><description>Mutation testing found a survivor and you have no idea what the mutation even does.</description><pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate></item><item><title>Auth code needs 90% mutation coverage. Your string utils don&apos;t.</title><link>https://autotomy.dev/blog/mutation-score-per-module-risk/</link><guid isPermaLink="true">https://autotomy.dev/blog/mutation-score-per-module-risk/</guid><description>Why enforcing a single mutation score across your entire codebase is a mistake, and how to set per-module thresholds that match actual risk.</description><pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate></item><item><title>Your Tests Pass. Your Mutation Score Is 40%. Here&apos;s What Surviving Mutants Are Actually Telling You.</title><link>https://autotomy.dev/blog/my-tests-pass-but-my-mutation-score-is-40-whats-a-surviving-mutant/</link><guid isPermaLink="true">https://autotomy.dev/blog/my-tests-pass-but-my-mutation-score-is-40-whats-a-surviving-mutant/</guid><description>Code coverage says you&apos;re safe. Mutation testing says your tests are mostly decoration. Here&apos;s how surviving mutants expose the gap, and how to close it.</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate></item><item><title>Mutation Testing in Rust Works, but Your Compile Times Will Hate You</title><link>https://autotomy.dev/blog/rust-mutation-testing-cargo-mutants/</link><guid isPermaLink="true">https://autotomy.dev/blog/rust-mutation-testing-cargo-mutants/</guid><description>cargo-mutants finds the tests that only pretend to verify your code.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate></item><item><title>The Validation Spectrum: Why AI Codes Backend Best</title><link>https://autotomy.dev/blog/ai-coding-validation-spectrum-backend-web-mobile/</link><guid isPermaLink="true">https://autotomy.dev/blog/ai-coding-validation-spectrum-backend-web-mobile/</guid><description>AI coding follows a validation gradient. Backend validates in milliseconds. Web takes minutes. Mobile takes hours. The feedback loop determines where AI coding works.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>Monkey, Machine Gun, Aimbot: AI Governance for Coding Teams</title><link>https://autotomy.dev/blog/monkey-machine-gun-aimbot/</link><guid isPermaLink="true">https://autotomy.dev/blog/monkey-machine-gun-aimbot/</guid><description>AI code governance isn&apos;t about taking tools away from junior developers and AI agents. It&apos;s about installing guardrails that make every shot hit the target without collateral damage.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>Mutation testing takes 4 hours. How do teams actually use it in CI?</title><link>https://autotomy.dev/blog/mutation-testing-takes-4-hours-how-do-teams-actually-use-it-in-ci/</link><guid isPermaLink="true">https://autotomy.dev/blog/mutation-testing-takes-4-hours-how-do-teams-actually-use-it-in-ci/</guid><description>Most teams don&apos;t run full mutation testing suites on every commit.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>Your unit tests pass, but your data still disappears</title><link>https://autotomy.dev/blog/database-persistence-testing-mocks/</link><guid isPermaLink="true">https://autotomy.dev/blog/database-persistence-testing-mocks/</guid><description>Mocked database tests verify your SQL syntax, not whether rows survive crashes, concurrent writes, or schema mismatches.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate></item><item><title>Fear vs. Steamroll: The Two Realities of AI Coding</title><link>https://autotomy.dev/blog/fear-vs-steamroll-ai-coding-divide/</link><guid isPermaLink="true">https://autotomy.dev/blog/fear-vs-steamroll-ai-coding-divide/</guid><description>AI coding works for elite teams who recover from any mess. Everyone else gets fear, failed CI, and abandoned experiments. The gap isn&apos;t the model.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate></item><item><title>Testing Redux without drowning in mock actions</title><link>https://autotomy.dev/blog/redux-testing-real-state-transitions/</link><guid isPermaLink="true">https://autotomy.dev/blog/redux-testing-real-state-transitions/</guid><description>Mocking every Redux action turns your tests into a changelog validator. Here&apos;s how to test your store with real state transitions instead.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item><item><title>AI Coding in Production: Why Most Teams Quit</title><link>https://autotomy.dev/blog/ai-coding-in-production-autotomy-framework/</link><guid isPermaLink="true">https://autotomy.dev/blog/ai-coding-in-production-autotomy-framework/</guid><description>Most teams try AI coding, ship code that fails QA, and quit. The problem isn&apos;t the model—it&apos;s the absence of guardrails that make AI output trustworthy.</description><pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate></item><item><title>100 Test Runs Is a Lie: How to Actually Size Your Property-Based Tests</title><link>https://autotomy.dev/blog/property-based-testing-run-count/</link><guid isPermaLink="true">https://autotomy.dev/blog/property-based-testing-run-count/</guid><description>The default 100 examples in property-based testing is a social compromise, not a statistical strategy.</description><pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate></item><item><title>Fuck-u-code: The Deterministic Quality Gate Your AI Pipeline Forgot</title><link>https://autotomy.dev/blog/fuck-u-code-deterministic-quality-gate-ai-pipeline/</link><guid isPermaLink="true">https://autotomy.dev/blog/fuck-u-code-deterministic-quality-gate-ai-pipeline/</guid><description>You have type checking, linting, and architecture rules. But your deterministic stack is blind to complexity, duplication, and naming disasters. Here&apos;s the $0 fix.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate></item><item><title>Property-Based Tests in Rust Find the Bugs Your Unit Tests Miss</title><link>https://autotomy.dev/blog/rust-property-based-testing-quickcheck/</link><guid isPermaLink="true">https://autotomy.dev/blog/rust-property-based-testing-quickcheck/</guid><description>Example-based testing only covers the inputs you thought of.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate></item><item><title>Why Version One Is Never the Problem: AI Coding and Long-Term Maintenance</title><link>https://autotomy.dev/blog/ai-coding-why-version-one-is-never-the-problem/</link><guid isPermaLink="true">https://autotomy.dev/blog/ai-coding-why-version-one-is-never-the-problem/</guid><description>AI coding tools excel at generating version one. The real engineering challenge starts at version four, when the team needs to change something without breaking everything else.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>AI-Generated Code and the Replaceability Principle</title><link>https://autotomy.dev/blog/ai-generated-code-replaceability-principle/</link><guid isPermaLink="true">https://autotomy.dev/blog/ai-generated-code-replaceability-principle/</guid><description>The real measure of AI-generated code quality is not whether it works on day one. It is whether you can replace it on day thirty without rewriting everything else.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>Deterministic Guardrails for AI Codebases</title><link>https://autotomy.dev/blog/deterministic-guardrails-ai-codebases/</link><guid isPermaLink="true">https://autotomy.dev/blog/deterministic-guardrails-ai-codebases/</guid><description>Human review is inconsistent. AI review is worse. The only scalable defense for AI-generated codebases is deterministic enforcement: rules that fail the build, not suggestions that get ignored.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>Your Unit Tests Pass. Your Production Code Is Still Broken.</title><link>https://autotomy.dev/blog/i-write-unit-tests-why-do-bugs-still-slip-through/</link><guid isPermaLink="true">https://autotomy.dev/blog/i-write-unit-tests-why-do-bugs-still-slip-through/</guid><description>Code coverage metrics create a false sense of security. Here&apos;s why unit tests miss the bugs that actually cost you sleep, and what to test instead.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>Rust Runtime Contracts Can Be Free in Release Builds, but the Compiler Won&apos;t Do It for You</title><link>https://autotomy.dev/blog/rust-zero-cost-runtime-contracts/</link><guid isPermaLink="true">https://autotomy.dev/blog/rust-zero-cost-runtime-contracts/</guid><description>Rust strips debug assertions automatically, but real design-by-contract needs more than debug_assert!.</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate></item><item><title>Zero, One, or Twelve: How Many Assertions a Production Function Actually Needs</title><link>https://autotomy.dev/blog/production-assertion-decision-framework/</link><guid isPermaLink="true">https://autotomy.dev/blog/production-assertion-decision-framework/</guid><description>Developers either scatter assertions like confetti or avoid them entirely.</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate></item><item><title>Your validation layer is bigger than your business logic</title><link>https://autotomy.dev/blog/declarative-runtime-contracts-validation/</link><guid isPermaLink="true">https://autotomy.dev/blog/declarative-runtime-contracts-validation/</guid><description>Manual validation bloats your codebase and still misses edge cases. Here&apos;s how to enforce runtime contracts with declarative schemas that stay out of your way.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript strictNullChecks Is a Compile-Time Guard, Not a Runtime Shield</title><link>https://autotomy.dev/blog/typescript-strictnullchecks-runtime-nulls/</link><guid isPermaLink="true">https://autotomy.dev/blog/typescript-strictnullchecks-runtime-nulls/</guid><description>strict mode catches the nulls you write, not the nulls that arrive at runtime from APIs, DOM queries, and JSON.parse.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate></item><item><title>In the AI Era, Code Review Becomes Specification Review</title><link>https://autotomy.dev/blog/code-review-becomes-specification-review/</link><guid isPermaLink="true">https://autotomy.dev/blog/code-review-becomes-specification-review/</guid><description>When AI can generate implementation, tests, and contracts from a spec, the highest-leverage human work moves upstream.</description><pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate></item><item><title>The AI Safety Stack: Types, Contracts, Property Tests, and Mutation Gates</title><link>https://autotomy.dev/blog/ai-safety-stack-types-contracts-property-tests-mutation/</link><guid isPermaLink="true">https://autotomy.dev/blog/ai-safety-stack-types-contracts-property-tests-mutation/</guid><description>If you want AI-generated code to survive production, do not rely on code review alone.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>Meteor Development Is Real. Your Codebase Does Not Have to Collapse With It</title><link>https://autotomy.dev/blog/meteor-development-is-real/</link><guid isPermaLink="true">https://autotomy.dev/blog/meteor-development-is-real/</guid><description>The meme is funny because teams really do build against moving targets, fixed launch dates, and half-decided scope.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>Stanford CS146S Is Right About AI Coding. The Missing Subject Is Architecture</title><link>https://autotomy.dev/blog/stanford-cs146s-ai-architecture-gap/</link><guid isPermaLink="true">https://autotomy.dev/blog/stanford-cs146s-ai-architecture-gap/</guid><description>A Stanford CS146S review and critique: the inaugural Fall 2025 course gets AI coding right, but the missing lesson is AI architecture and replaceability.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>Why Great Engineering Ideas Stayed Niche Until AI Made Them Economical</title><link>https://autotomy.dev/blog/engineering-ideas-ai-economics/</link><guid isPermaLink="true">https://autotomy.dev/blog/engineering-ideas-ai-economics/</guid><description>Design by contract, property-based testing, mutation testing, and model checking were not bad ideas. They were too expertise-heavy to sustain.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate></item><item><title>From Vibe Code to Production: Why Your AI-Coded React Native App Needs Guardrails to Scale</title><link>https://autotomy.dev/blog/ai-react-native-guardrails-scaling/</link><guid isPermaLink="true">https://autotomy.dev/blog/ai-react-native-guardrails-scaling/</guid><description>AI can ship your React Native MVP fast, but without guardrails each small change can break unrelated flows.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>The Vibe Coder&apos;s Guide to React Native App Lifecycle</title><link>https://autotomy.dev/blog/app-lifecycle-resume-status/</link><guid isPermaLink="true">https://autotomy.dev/blog/app-lifecycle-resume-status/</guid><description>Your app works fine in dev, but users get a blank screen when they return after lunch. Here&apos;s the resume status pattern that handles native lifecycle properly.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Why Your Vibe-Coded React Native App Crashes on Launch (And How to Stop It)</title><link>https://autotomy.dev/blog/dependency-tiers-hard-soft-optional/</link><guid isPermaLink="true">https://autotomy.dev/blog/dependency-tiers-hard-soft-optional/</guid><description>If optional SDKs initialize like core infrastructure, they can crash your app on launch.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Why Vibe Coding with NativeWind in Cursor Will Break Your React Native App at Scale</title><link>https://autotomy.dev/blog/nativewind-vs-stylesheet-contract/</link><guid isPermaLink="true">https://autotomy.dev/blog/nativewind-vs-stylesheet-contract/</guid><description>You shipped an MVP in a weekend with Cursor, but now changing one color breaks 47 files. Here&apos;s the styling contract that stops the bleeding.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Why Claude Code Should Not Review Your Code (And What to Use Instead)</title><link>https://autotomy.dev/blog/o1-guards-vs-llm-reviews/</link><guid isPermaLink="true">https://autotomy.dev/blog/o1-guards-vs-llm-reviews/</guid><description>LLM code review is non-deterministic, slow, and misses architectural violations. Here&apos;s the O(1) guard stack that actually keeps your code clean.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Delete, Do Not Migrate: The Refactoring Strategy for Vibe-Coded React Native Apps</title><link>https://autotomy.dev/blog/refactor-by-replacement/</link><guid isPermaLink="true">https://autotomy.dev/blog/refactor-by-replacement/</guid><description>Refactoring AI-generated code means reverse-engineering intent you never had. Here&apos;s the interface-driven replacement pattern that makes deletes safe.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>How Cursor and Claude Code Destroy Your React Native Architecture (And How to Fix It)</title><link>https://autotomy.dev/blog/service-boundaries-composition-root/</link><guid isPermaLink="true">https://autotomy.dev/blog/service-boundaries-composition-root/</guid><description>AI-generated auth feels fine until a new feature reaches into the wrong service.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Why Deep Links Crash Vibe-Coded React Native Apps (And How to Validate Them with Zod)</title><link>https://autotomy.dev/blog/url-validation-expo-router/</link><guid isPermaLink="true">https://autotomy.dev/blog/url-validation-expo-router/</guid><description>Deep links, push payloads, and shared URLs are all untrusted input.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>useSyncExternalStore: The React Hook That Saves Your Vibe-Coded App From State Bugs</title><link>https://autotomy.dev/blog/useSyncExternalStore-pattern/</link><guid isPermaLink="true">https://autotomy.dev/blog/useSyncExternalStore-pattern/</guid><description>Stop writing useEffect subscriptions that leak memory and miss state updates. Here&apos;s the React 18 pattern for bulletproof external state.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item></channel></rss>