gRPC vs REST in 2026 — When to Pick Which
Practical decision criteria, not benchmark slides — the factors that actually change the answer
6 min · August 24, 2026
Build is for engineers who already ship — and still get burned by the production details tutorials skip.
Architecture calls. Tooling trade-offs. Data and runtime edges. The small contracts between services that decide whether Friday’s deploy is boring or a war story — including schema changes that don’t take the fleet down. The bar is a failure mode you recognize from production — a judgment call you’ve postponed twice. Not a framework tour dressed as wisdom.
If a topic needs a manual, it doesn’t belong here. No “hello world” stacks. No vendor changelog rewrites. No pieces that assume you’ve never opened a repo. What does belong: concrete trade-offs stated in shipping language. When the hard part is the decision around the code, not the code — that’s Lead.
The picks below are a short path in. After that, browse the grid — footing, doing, or mastery when you know the altitude you want.
The incremental path most teams actually survive.
Schema change without the heroics narrative.
Enough Docker to ship — stop collecting lore.
Limits that protect the API without breaking clients.
Practical decision criteria, not benchmark slides — the factors that actually change the answer
6 min · August 24, 2026
The coverage trap — why 80% can hide critical paths, and what to actually measure instead
6 min · August 11, 2026
Turning on strict flags one by one in a live codebase — no big-bang migration required
8 min · August 1, 2026
Token bucket or leaky bucket is the easy choice; burst semantics, quota scope, and retry behavior are the decisions your clients inherit.
6 min · July 22, 2026
Independent deploys are fine. Pretending each green pipeline is a release is how you recreate Tuesday's outage without knowing which Tuesday.
7 min · July 16, 2026
The maturity ladder is marketing. Team skill and traffic shape decide the platform.
6 min · July 13, 2026
Column rename, type change, FK add — each one without the rollback conversation.
6 min · July 8, 2026
The branch strategies that survive contact with a real team — without the enterprise ceremony
6 min · June 29, 2026
Append-only postings survive payouts — mutable balance columns don't.
6 min · June 17, 2026
Same-session green tests prove consistency — not that you shipped what the spec asked for.
6 min · June 15, 2026
Redis did its job on every miss — your application just sent two hundred loaders to Postgres at once.
6 min · June 15, 2026
The version timeline is everywhere. The resume logger, the Usenet post, and the sideways doodle that became a mascot — that's the birthday story worth telling.
6 min · June 10, 2026
Retries with an error taxonomy, deduplication that survives cleanup, and a dead-letter queue someone actually inspects — not a five-minute `Queue` demo.
6 min · June 6, 2026
Containerize your first app without cargo-culting a 12-layer config from Stack Overflow
7 min · May 30, 2026
Sätteri can shave a minute off docs builds — but only if you accept a different plugin universe. The `cf()` helper only matters if you already own the fetch handler.
6 min · May 29, 2026
You already have metrics. What you probably lack is a correlation contract — one collector, three signals, sampling at the tail.
6 min · May 29, 2026
Your Stripe subscription can be current while every seat slot is taken — Laravel Entitlements models that gap instead of pretending billing status is capacity.
6 min · May 27, 2026
Pros-and-cons lists fail when Mongo needs `$lookup` for every report and Postgres JSONB rewrites the whole row on every sensor tick.
9 min · May 27, 2026
AST-first codegen wins when TypeScript on disk is your contract boundary — the moment Legal or Mobile needs OpenAPI, you're back to picking whose lie is authoritative.
8 min · May 26, 2026