$ Dev Log
The unpolished, ongoing record — real, verified code and development experience from Robin’s own projects, most recent first.
robinsamways.ca · AI-Assisted Development
> A 'Drift-Audited and Synced' Report That Wasn't
A change shipped with an honestly-flagged behavioral deviation — and the spec's own literal wording about that exact behavior still didn't get corrected until a second, separate read caught it after archiving.
robinsamways.ca · AI-Assisted Development
> I Rewrote Ten Already-Published Stories Without Noticing
Handed the same code and the same context notes a second time, I wrote nine completely different titles and framings for content that had already been live on the site for days — proof the same input doesn't produce the same output twice.
robinsamways.ca · AI-Assisted Development
> 10 Minutes, Nine Task Groups: What 'Minor UI Change' Actually Cost
A casual request to clean up the mobile nav turned into a shared-state decision, a stale-session bug pattern avoided before it existed, and a spec drift finding — none of it visible from outside.
Vocare · Business Model
> Three Prices in Three Days, and Why Each Change Was Right
A one-time $10 lifetime unlock, raised to $29, then moved to a $12/year recurring plan — a real account of changing your mind under evidence, not a single pricing decision presented as if it were final from day one.
robinsamways.ca · Interview Process
> What a Timed AI Interview Actually Measures
Two AI-interview attempts surfaced a real weak spot in cold, timed terminology recall — even though the reasoning ability the interview was supposedly testing stayed intact the whole time.
Farpost · Data Modeling
> Fixing a Design Without Tearing Out What It Replaced
A professional's 'role' turned out to be modeled two different ways in the same schema at once — not from a bad decision, but from a good one that arrived late and never removed the skeleton underneath it.
robinsamways.ca · Business Model
> Two Projects Independently Invented the Same Pricing Shape
Designing a shared billing model surfaced that two separate projects had each already arrived at the identical 'buy a bundle, spend per use' pattern — independently, under different names, before anyone connected them.
robinsamways.ca · Platform Engineering
> I Built a 'Golden Path' Before I Knew That Was the Name for It
Converging every project onto one stack, and giving each one the same homepage-plus-live-build shape, turned out to match patterns real engineering orgs already run at scale — recognized after the fact, not planned top-down.
robinsamways.ca · Stack Decisions
> Choosing the Framework With 10x Fewer Downloads, on Purpose
Express had no major version for a decade and still lacked built-in async-error handling until late 2024 — the decision to use Fastify anyway traded market visibility for technical merit, deliberately.
robinsamways.ca · Stack Decisions
> I Found My Tech Stack by Auditing My Own Code
Checking real dependency files across four separate projects turned up a stack that had already converged on its own, before it was ever consciously named as 'the stack.'
Farpost · AI Integration
> Respecting the Event Loop When Wiring Up Claude
A blocking AI SDK call wrapped so it can't stall every other concurrent request.
Farpost · Data Modeling
> Not Every Fact Goes Stale at the Same Rate
Not every fact about a building goes stale at the same rate — so neither does its tracking.
Farpost · Notifications
> When the Infrastructure Lies About Its Own URL
Production infrastructure quietly rewrote a URL's scheme, breaking every webhook signature check.
Farpost · Payments
> The Webhook Redelivery Stripe Warns You About
Stripe's own redelivery warning, ignored once, silently corrupted a paid-date.
Farpost · Payments
> A Stripe Default That Produces a $0 Invoice — Silently
A missing Stripe parameter silently produces a $0, auto-paid invoice.
Farpost · Payments
> The Fix That Almost Reopened the Bug It Fixed
A caching fix for one Stripe race quietly opened a second, quieter one — fixed by verifying, not un-caching.
Farpost · Data Ingestion
> Two Weak Signals Beat One Strong-Looking One
Two independent weak signals beat trusting one strong-looking string match alone.
Farpost · Reputation Scoring
> Scoring a Blank Slate Without Lying About It
Scoring a professional with zero history without dishonestly calling them average.
Farpost · Dispatch Architecture
> A Generic Dispatch Loop, Built Before It Needed to Be
A dispatch loop built generic before a second consumer existed — and got the one subtle correctness detail right.
Farpost · Data Ingestion
> The Bug That Silently Ate 2,706 Records
A batch-loading race condition let two colliding slugs silently swallow 2,706 real records.
robinsamways.ca · Verification Practice
> No CI, and That's a Deliberate Choice — Not a Gap
This site's real testing approach — Playwright, FastAPI's TestClient, real external calls when testing an integration itself, and no persistent CI — is a documented, deliberate trade-off for a solo project at this scale, not an oversight left unexplained.
Farpost Pulse · Infrastructure
> Azure said the deploy succeeded. The app had zero functions.
A 'successful' Azure Functions deploy that silently shipped without its dependencies, and the log stream that finally showed why.
Farpost Pulse · Infrastructure
> Cosmos DB rejected my seed script — and the fix wasn't in the error message
A batch of Cosmos DB containers each quietly reserved its own throughput, silently stacking past the account cap.
