Skip to content

Instantly share code, notes, and snippets.

@Darkflib
Created June 22, 2025 16:42
Show Gist options
  • Save Darkflib/ac72ee7084a93b169066bfd3b0b4c2b3 to your computer and use it in GitHub Desktop.
Save Darkflib/ac72ee7084a93b169066bfd3b0b4c2b3 to your computer and use it in GitHub Desktop.

18.5 Unofficial Rules of Software Engineering (The Bitterly Useful Edition)

  • Complexity always wins. Especially at 3am.

    Your clever abstraction becomes your 3am nightmare. Hope you like recursive stack traces.

  • Code you wrote 6 months ago was clearly the work of an idiot.

    Unfortunately, that idiot was you.

  • "Temporary" is the most permanent word in tech.

    Any hack marked #TEMP_FIX will survive product rewrites and multiple rebrands.

  • Every TODO is a time bomb.

    Ticking gently. You won't defuse it. You'll inherit it.

  • There is no such thing as "edge case" if your users are creative enough.

    Which they are. Somehow.

  • All software is haunted.

    That bug? It only appears on the CEO's device. During demos. In Mercury retrograde.

  • "Works on my machine" is not a valid QA strategy.

    Unless your machine is the production cluster. Which it shouldn't be.

  • Every framework is just another way to reinvent switch badly.

    Now with more decorators.

  • You either die a junior dev or live long enough to write linters.

    Then complain when no one follows them.

  • Every microservice eventually becomes a monolith.

    Made of JSON and regret.

  • Nobody reads documentation—unless it's wrong.

    Then it becomes gospel, referenced in 12 Slack threads and 3 Jira tickets.

  • CI/CD means "Can't Investigate, Can't Debug."

    But hey, at least it failed fast!

  • The first 80% of the project takes 80% of the time. The last 20% takes the other 80%.

    It's not bad math. It's software.

  • "Agile" means whatever justifies skipping testing.

    "We're iterative!" Yes. Iteratively broken.

  • Naming is hard. So is everything else.

    But bad names last longer than good code.

  • Your code isn't self-documenting. It's self-incriminating.

    Comment, or prepare your defence.

  • The best code is the code you never had to write.

    Or better yet, someone else wrote and now maintains.

  • If it compiles, ship it. If it runs, tag it. If it crashes, call it a beta.

    Now you're DevRel-ready.

Bonus Rule

  • Don't be the hero. Be the person who sleeps.

    The team doesn't need martyrs. They need maintainers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment