Focus on the Bottleneck
Don't waste your time optimizing non-constraints. Improvements made anywhere other than the bottleneck are a waste of effort.
Coalesce Names Alphabetically
When naming things with multiple segments, order segments so names cluster naturally in sorted lists. Put the most general segment first and the most specific last.
Colocate Docs With Code
Store your application documentation with your source code in the same git repository.
Complete or Credit
When facing outside resistance to a task, ask a simple question: do you want the outcome, or do you want recognition for your accomplishment? The answer should guide how public, formal, and political your approach needs to be.
Prefer Data Driven Tests
Tests should be defined by data, not logic. Structure test cases around inputs, system state, and expected outcomes using data files (ex: JSON, YAML, XML) so the test code itself stays fixed and simple and new tests can be added by simply adding new data entries.
Eliminate Long Lived Secrets
The goal shouldn’t be to secure secrets, it should be to not need them at all. If your application depends on long lived credentials you’ve already failed.
POC vs MVP
A POC cuts corners but not scope. An MVP cuts scope but not corners.
The Solution Paradox
Most solutions create new problems. Be thoughtful before adding complexity.
Name Your HTTP Clients (User Agents)
Always use a descriptive User-Agent when making HTTP requests. This helps with observability, debugging, and understanding traffic patterns even when authentication fails.