@Star and Stream
2026Founder-stage, AI-builtI used to be the junior dev writing auth code alone under deadline. Now I’m the reviewer catching what a fast AI harness gets wrong.
Technical lead: architecture, review, and verification (build execution via Claude Code)

- 01Ran the same adversarial-review discipline I’d use on a human engineer’s pull request: didn’t relax it because the "engineer" this time was a harness.
- 02Never accepted "done" from the harness’s own self-assessment: brought in a structured review pass before treating any stage as finished.
- 03Asked the questions the original requirement actually implied, not just the ones the code visibly answered: does "reusable" mean reusable yet, does this feature actually deliver what it claims to, does one person stay one account across three different ways of logging in, are these tests proving anything or just not currently failing.
- 04Verified every fix against a real, running instance before calling it closed. "Should work now" was never the end of a conversation.
Technical take
The two account-duplication bugs: (1) the OAuth callback wasn’t lowercasing the provider’s email before the account lookup, so a provider returning different casing than an existing password/magic-link account would silently create a second account instead of linking to the first. Every other entry point already normalized case, this one didn’t. (2) findOrCreateForMagicLink/findOrCreateForOAuth used find-then-insert, a real TOCTOU race: two concurrent requests for a brand-new email could both pass the find check before either insert committed. Fixed with ON CONFLICT DO NOTHING plus a fallback read, verified by firing both requests concurrently in a test and asserting they resolve to the same row. The test-isolation catch: the integration test suite had only ever been run against containers I was managing by hand across the session. When I built a real spin-up/migrate/test/teardown script, it immediately failed, because the store-level test file never called its own migration and had only "passed" against schema left over from earlier manual runs.

