8 Subtle Rules of Software Engineering 0. You WILL regret complexity when on-call 1. Stop falling in love with your own code 2. Every single thing is a trade-off - no "best" 3. Every line of code y

To Nha Notes | Oct. 20, 2025, 9:40 a.m.

After years of writing code, debugging at 3 AM, and watching "simple" features turn into nightmares, here are the hard-earned lessons every developer learns eventually:

The Rules

0. You WILL regret complexity when on-call
That clever abstraction? Not so clever at midnight.

1. Stop falling in love with your own code
Your code isn't your baby. It's a tool. Be willing to delete it.

2. Every single thing is a trade-off - no "best"
There's no perfect solution, only trade-offs. Choose wisely.

3. Every line of code you wrote is a liability
More code = more bugs, more maintenance. Less is often more.

4. Document your designs and decisions
Future you (and your team) will thank you. Or curse you less.

5. Everyone hates code they didn't write
It's not personal. We all do it. Get over it.

6. Don't use unnecessary dependencies
Every dependency is a commitment. Choose them carefully.

7. Coding standards prevent arguments
Tabs vs spaces? Let the linter decide and move on.

8. Write meaningful commit descriptions
"Fixed stuff" helps nobody. Not even future you.

9. Never ever stop learning new things
Technology moves fast. Stand still and you fall behind.

10. Code reviews are to spread context
Not to show how smart you are. Share knowledge, not ego.

11. Always build for maintainability
You're writing code for humans first, computers second.

12. Always ask for help when stuck
Two hours stuck? Ask. Don't waste a whole day.

13. Fix root causes, not symptoms
Band-aids hide problems. Surgery fixes them.

14. Software is never finished
It's either being improved or becoming obsolete.

15. Estimates are not promises
They're educated guesses at best. Treat them as such.

16. Ship early, iterate often
Perfect is the enemy of shipped. Get feedback early.

17. Keep. It. Simple.
Complexity is easy. Simplicity takes discipline.