Ruby is still in production. But who will be writing it in 10 years?

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.

RubyRailsOpinion

PostgreSQL: three sources of time in one table

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.

PostgreSQLGoGORM

Elastic APM: three bugs in one integration

Three silent defaults across Gin, GORM, pgx, and Elastic APM: why SQL spans disappeared and why the same context bug also broke request cancellation.

GoElastic APM

The Ringelmann effect

The larger the group, the smaller the average contribution of each person in it.

Leadership

Sentinel errors in Go: preserving meaning across layers

Why a shared ErrNotFound conflates distinct failures, where sentinel errors belong, and how to translate GORM or database/sql errors at the repository boundary.

GoArchitectureErrors

Projects in Onplate: why the agent behaves differently next door

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.

OnplateAI toolsProjects

Onplate: an inventory of five AI clients

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.

OnplateAI toolsDeveloper Tools

Astro for a blog

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.

AstroDeployment