Brief
What had to change
"Every career tool I wanted to hand an Indonesian friend was in English, priced in dollars, and shaped around applying to a US company. A few had an Indonesian UI bolted on and you could feel where the bolt was. They still tell you to take the photo off your CV — normal advice in the US, the opposite of the convention here. None of them have heard of CPNS. None of them know which papers have to be in your hand before you can legally start work in Japan." And the design response, in the same voice: "Translating the buttons doesn't fix that, because the assumptions live in the data, not the copy. So I built it the other way round: model one hiring market properly, and treat other languages as a rendering problem."
Approach
How the work was shaped
He builds the harness before the feature: a `Stop` hook gates every agent turn with lint + typecheck on the dirty tree and exits 2 so the failure text feeds straight back to the model, a `/ship` skill encodes the release order and refuses a blanket `git add -A`, and the vendored `audit-bp` reviewer is required to pull live Next.js / React / Convex docs before it will call anything a violation, on the stated grounds that “anything your memory says may be stale”. That instinct paid off in the 2026-07-30 deployment audit, which found the pre-push hook had only ever resolved the legacy self-hosted backend and warned about nothing — so `convex/**` changes, including security fixes, never reached production while the hook reported success; it now resolves a target in three tiers, prints which one it hit, and aborts outright on a non-prod target. The clearest judgement call is one where he rejected his own fix: re-running category inference across the job board would have rewritten 1,563 of 2,809 listings and collapsed 72% of the board into engineering, off a tag threshold he had no labelled data to validate, so he shipped only the rows the job title decides and deliberately left WeWorkRemotely listings alone because that feed carries the source's own category and overwriting it with inference would be a downgrade.
