Configuration & Testing
What belongs in code versus runtime configuration, why secrets are a separate problem, and a test strategy chosen by what each layer can actually prove.
The same artifact must run in dev, staging and production — so everything that differs between them is input, not source.
Credentials need a different storage, a different access path and a lifecycle — and rotation is the part every team skips.
Check everything the process needs at boot and refuse to start — rather than discovering the missing value at 3am on the first request that needs it.
Separating deploy from release, buying an instant off-switch — and accumulating a combinatorial mess if nobody removes them.
Business logic to unit tests, database behaviour to integration tests, contracts to contract tests, and only the critical flows to end-to-end.
A substitute engine with different SQL semantics gives you a green suite and a broken production — the failure the substitute exists to prevent.
Verify that a producer and its consumers still agree on the wire format, without running both systems at once.
Latency, throughput, concurrency, CPU, memory, database load and dependency load are seven different dimensions — a single "requests per second" number answers almost none of them.