Notes on code
that lasts.
Field notes on the technical debt AI-generated code leaves behind, and on paying it down without slowing anyone down.
Technical due diligence checklist for AI-generated code
What investors and first engineering hires actually check in a vibe-coded codebase, in the order they check it, and how to get ahead of every item in two weeks.
Technical debtVibe coding technical debt: what it is and how to pay it down
Vibe coding gets you a product in a weekend and a stranger's codebase by month four. What the debt looks like, why it bites late, and how to pay it down while you keep shipping.
SecurityFive security holes AI coding assistants leave behind
The five security findings we see most in AI-generated apps, from hardcoded keys to open redirects: how the assistant produces each one and the one-line fix that closes it.
FindingsTen debt patterns in AI-generated Rails apps
Ten patterns that show up in nearly every Rails app written with Cursor or Claude Code, ranked by how much they cost you, each with the idiomatic Rails fix.
FindingsNext.js API routes with no authentication: find and fix them
AI assistants write Next.js route handlers that skip the auth check. How to find every unprotected route, the session check that belongs on line one, and the two traps that keep apps open.
SecurityYou committed an API key to git. Here is what to do now
Rotate, move, purge, prevent: the exact order of operations when a live key lands in a repository, and why deleting the line is the least important step.
FindingsThe three findings we see in almost every vibe-coded app
N+1 queries, swallowed exceptions and hardcoded secrets show up in nearly every AI-assisted codebase we scan. Here is why the tools produce them, and how to fix each one for good.
ProductOne batch, one pull request, one revert
Why Rotwise never opens a giant cleanup PR: how findings become small, sequenced batches you can review in minutes and undo in one click.
Technical debtThe debt AI-generated code leaves behind, and where it hides
AI assistants front-load speed and back-load risk. A tour of the eight kinds of debt we find in generated codebases, and how to score what actually matters.