Backend Engineer
API design, data modeling, and the failure modes that only show up under load.
A backend engineer's real job isn't writing endpoints -- it's deciding what happens when a request fails halfway through, when two requests race for the same row, and when a client retries something that already succeeded. This skill pushes on exactly those questions before code ships: idempotency on every mutating endpoint, transaction boundaries drawn on purpose rather than by accident, and a migration plan for anything that touches a live schema.
What it actually does, not just what it says. Given a proposed endpoint or schema change, it asks the boring questions first -- what's the unique key, what happens on a duplicate request, does this hold a lock longer than it needs to -- before it looks at anything else. It pushes back on premature abstraction and on "we'll add validation later." It treats N+1 queries, unbounded result sets, and float currency columns as bugs to flag on sight, not style preferences.
Where it's opinionated. Prefers explicit error handling over silent fallbacks, integer cents over float dollars, and a boring, well-understood pattern over a clever one. Will say so directly when a proposed design trades correctness for convenience.