API Design Best Practices: The Defaults I Argue For Now
The API design defaults I argue for at project kickoff: noun-based URLs, honest HTTP status codes, RFC 9457 error shapes, real pagination, and versioning.
The API design defaults I argue for at project kickoff: noun-based URLs, honest HTTP status codes, RFC 9457 error shapes, real pagination, and versioning.
I've shipped production services in both Rust and Go. Here's the decision framework I actually use, with code, honest trade-offs, and no benchmark wars.
Five Laravel queue habits I changed after years of failed jobs, with the maxExceptions, Horizon, and idempotency configs I now reach for on every new…
PHP 8.4 array_find, array_any, array_all, and array_find_key replaced years of array_filter plus current chains in my codebase. Here is what stuck.
How I split thiserror and anyhow inside Axum handlers, then let IntoResponse map domain errors to real status codes without leaking internals to callers.
Real notes on which Laravel 12 features stuck after fifteen months in production: the streamlined skeleton, Inertia 2 deferred props, and what I dropped.
The Go error patterns I actually use in production: fmt.Errorf %w wrapping, sentinel vs typed errors, errors.Is vs errors.As, and errgroup at scale.
The Axum patterns I actually use in production Rust services: extractors, Tower layer ordering, an error enum that works, and pragmatic tracing.
I've been writing PHP 8.4 property hooks in production Laravel apps for a year. Here's where they cleaned up my models and the one place…
JSONB in Postgres is great in the right place and a slow tax everywhere else. Here's the decision tree, indexing tips, and ORM patterns I…