Rails keeps shipping releases and large systems keep running, but the entry point into the profession has narrowed: the market wants middles and seniors, while the places where people become one are far fewer. Why betting on agents does not close that gap.
In one year, DHH went from fearing that AI would erode his programming skills to giving up coding by hand. Why one engineer's reversal changes which tools others consider acceptable.
A 30-minute reservation expired after only five minutes because the application and PostgreSQL wrote timestamps in different time zones to the same table. How we found it, why staging stayed green, and why the application now verifies the session time zone at startup.
Why a shared ErrNotFound conflates distinct failures, where sentinel errors belong, and how to translate GORM or database/sql errors at the repository boundary.
A project is a folder, and what the agent receives in it depends on scope, precedence, instruction files, and the directory the session starts in. How to see all four and compare two repositories.
What accumulates in Claude Code, Codex, Cursor, GLM, and OpenCode over a year, and how to audit it: where each file came from, what the scanner finds, what it costs per request, and whether a skill fires at all.
An engineering blog with no CMS and no database: an article is a file in the repository, local and production builds run the same code, and only nginx runs in production.
↗
Currently building
In development
onplate
Local AI-context audit and management for Claude Code, Codex, Cursor, GLM, and OpenCode settings.