#60 - Software Tradeoffs and How to Make Good Programming Decisions - Tomasz Lelek
“Software engineering involves a lot of decisions, and that decision has some trade-offs. We have pros and cons. It’s not like one decision is always better than the other." Tomasz Lelek is the author of “Software Mistakes and Tradeoffs”. In this episode, Tomasz shared what led him to write his book and one of the past software mistakes from his career experience. He also gave advice on how software developers should approach the potential software mistakes and explained some typical trade-offs when making software engineering design decisions, such as code duplication vs flexibility, premature optimization vs optimizing hot-path, data locality and memory, and finally delivery semantics in distributed systems. Listen out for: Career Journey - [00:05:00] Why Write about Software Mistakes and Trade-offs - [00:07:42] Software Mistake Experience - [00:10:16] Tips for Software Developers - [00:13:08] Trade-off 1: Code Duplication vs Flexibility - [00:15:24] Trade-off 2: Premature Optimization vs Opt