On writing as little as possible
- Software is best without classes, or functions, or code. But if you must, write as little as possible.
- The only thing that really matters in software is KISS.
- That is classic over-abstraction.
- When in doubt, add
setTimeout. - No hack is complete without
.replace(). try/catchis for cowards.
On shipping
- Never merge a PR.
- If you’re afraid to release on Friday, the problem isn’t Friday.
- If you can’t release fast, you have tech debt to solve.
- Precommit hooks are the root of all evil.
- The difference between a hobby and a job is that you don’t write documentation for the former.
On things one if-statement away from disaster
- Almost all software is one if-statement away from disaster.
- If you code just to make things work, one day suddenly nothing will work.
- Dependencies are the root of all evil.
- Developers will always find unexpected ways to use your API.
- There are two hard things in computer science: cache invalidation and symlinks.
On knowing better
- Debugging skills are underrated.
- You are only an expert in a given technology when you know when not to use it.
- A good engineer balances not underestimating apparently simple tasks against not overengineering apparently complex ones.
- An experienced developer is the one who knows when to be volatile and when to be stable. (I figured it out, by the way: a stable is someone who installs linting build scripts, and a volatile is someone who disables them.)
- I love monorepos, but I hate lerna.
If you got this far looking for a coherent philosophy, I’m sorry. The honest version is that good engineering is mostly knowing which of these to ignore today.