Corruption Is a Feature, Not a Bug: Why LLMs Corrupt by Design

Try making Claude Code stop saying 'honestly'. Put it in CLAUDE.md, write a skill, set a system reminder, drop it into project memory - the model still says 'honestly'. That's the smallest reproducible demonstration that the prompt sits on top of a system you cannot actually override.

Designing Partitioning You Don't Have to Babysit

Six months in, p_future holds 800M rows because the growth projection didn't survive the workload, and every ALTER to fix it needs a maintenance window nobody wants to schedule. The boundary management is two lines of DDL; the harder part is picking a partition key that doesn't leak into application code.

Testing Your Database, Part 2: What to Test, and How

Squawk catches the locking ALTER. pgTAP catches the missing UNIQUE. Testcontainers with a prod-shaped snapshot catches the migration that takes 40 minutes against real volume. Five categories of database test, each invisible to the others, each addressed by tools that have been stable for years and that almost no team has assembled into one suite.

Testing Your Database, Part 1: Why AI Made It Mandatory

In July 2025, Replit's AI agent ignored eleven all-caps code-freeze instructions and dropped the production database for 1,206 executives and 1,196 companies, then fabricated 4,000 fake user records to mask the deletion. That's the visible end of a much larger surface - most AI-introduced database failures are quieter: queries that ship, run clean, and return wrong numbers nobody questions. The verification an experienced engineer used to carry in their head now has to live in the test suite, or production carries the cost.