The Curious Engineer

All blogs / Software / engineering practice

Bad Software Advice

badsoftwareadvice.substack.com

Learn from the wrong. Click to read Bad Software Advice, by David Tate, a Substack publication.

Software / engineering practiceEngineering management / careersAI / ML

Posts
89 from 25 Jul 2023 to 24 Oct 2026
Posting
now and then (4 in the last year)
Kind
personal blog
Feed
https://badsoftwareadvice.substack.com/feed

2026 4

  1. Bad Software Advice: A confession, kitchens, factories, and an identity crisis
  2. A quick note to the AI-skeptical software developers
  3. Good news - all of your current skills translate well into the AI development era. Except one.
  4. There are two systems. Which one are you working on?

2025 14

  1. How to determine the urgency of a task
  2. How to build everything yourself
  3. The term "technical debt" is wrong
  4. How to apply best practices
  5. Bad Software Advice: Three Interesting Links #7
  6. How to write (and read) a bug report
  7. How to control your employees
  8. How to be a (anti) hero
  9. How to handle complexity
  10. How to handle working software
  11. How to assign a bug report
  12. How to understand deadlines (as a developer)
  13. Bad Software Advice: Three Interesting Links #6
  14. How to handle an IT escape room

2024 25

  1. 20 behaviors to get software engineers to respect you more
  2. How to solve problems too early
  3. Commentary: How to tell who your best programmer is
  4. How to build the wrong product, semi-accidentally
  5. How to build a good abstraction
  6. How to ignore issues and keep secrets
  7. How to selfishly design a system
  8. Bad Software Advice: Three Interesting Links #5
  9. How to ignore customers
  10. What to do when everyone else is wrong
  11. How to be a real programmer
  12. Commentary: How to write a post-mortem that always blames Terry
  13. How to practice isometric software development
  14. Commentary: How to Build Toxic Software Teams
  15. How to use an Object Relational Mapper and never learn SQL
  16. How to treat the people that built the system you work on
  17. Commentary: How to treat the people that built the system you work on
  18. Commentary: How to weaponize your experience
  19. How to weaponize your experience
  20. How to use bad metaphors to explain software development
  21. How to make your programmers (look like they) work harder
  22. Bad Software Advice: Three Interesting Links #4
  23. How to run yourself into the ground in tech
  24. How to get in to developer heaven
  25. Commentary: How to be really bad at fixing problems in software

2023 46

  1. How to be really bad at fixing problems in software
  2. Commentary: How to become a senior engineer too early
  3. How to become a senior engineer too early
  4. Commentary: How to treat programming with illogical seriousness
  5. How to decrease your empathy and stop caring about your users
  6. How to lead your team by yelling
  7. How to point stories
  8. How to run a demoralizing and ineffective technical interview
  9. How to ship a prototype
  10. How to create a legendarily bad database
  11. Commentary: How to keep coding as a technical manager, to cause maximum pain
  12. How to keep coding as a technical manager, to cause maximum pain
  13. Bad Software Advice: Three Interesting Links #2
  14. How to avoid documentation and hoard what you know
  15. Commentary: How to simplify your technical organization, and accidentally ruin it
  16. How to simplify your technical organization, and accidentally ruin it
  17. Bad Software Advice : Three Interesting Links
  18. How to create an insecure privacy-blind startup
  19. Commentary: How to create an insecure, privacy-blind startup
  20. How to create a passive-aggressive vacation policy
  21. How to delay automation of your deployments and ruin your life
  22. How to run a production incident that creates more incidents
  23. Commentary: How to run a production incident that creates more incidents
  24. Commentary: How to do a full rewrite
  25. How to do a full rewrite
  26. How to treat programming with illogical seriousness
  27. Resources for Subscribers
  28. Commentary by Post
  29. Library for Subscribers
  30. How to use the term technical debt to mean anything you want
  31. How to design a system that never works, that you can't be blamed for
  32. How to recruit the best people (that are friends with your coworkers)
  33. How to run an Agile software process without using any Agile
  34. How to tell who your best programmer is
  35. How to fumble your promotion from developer to manager
  36. How to create a perfect software development process that does not work
  37. How to write a post-mortem that always blames Terry
  38. How to waste your vacation
  39. How to run a miserable code review
  40. How to avoid learning new things as a software engineer
  41. How to avoid understanding the business domain of the software you work on
  42. How not to onboard a new developer
  43. How to Build Toxic Software Teams
  44. How to create a useless product roadmap
  45. How to avoid debugging software
  46. What is Bad Software Advice