

Never Rewrite
Isaac Askew and Jeffrey Sherman
‘Never Rewrite’ is a mantra of ours in the programming realm. Often times when software developers encounter nightmare codebases, the thought crosses their mind to work towards a rewrite, a port to a new language, or despair that their code is unfixable.
It’s not unfixable, and we explore how to get started along with an array of other software topics in our eponymous podcast.
It’s not unfixable, and we explore how to get started along with an array of other software topics in our eponymous podcast.
Episodes
Mentioned books

Jul 18, 2025 • 12min
Episode 113: Do You Want a Better Version of What You Have?
In this episode of Never Rewrite, Isaac Askew and Jeffrey Sherman emphasize the importance of understanding customer needs and the risks associated with maintaining old features while developing new ones. The conversation highlights the value of iterative delivery and the significance of API versioning in ensuring a smooth transition for users. Ultimately, they advocate for a pivoting approach rather than a complete rewrite, allowing for a more adaptive and responsive development process.(Isaac used the wrong microphone for recording and Jeffrey said nothing...)

Jul 11, 2025 • 19min
Episode 112: The Impact & Cost of Hidden Business Rules
Today we highlight he significant impact and costs associated with hidden business rules in software development. We explore the challenges of implementation, the importance of documenting business rules effectively, and how AI can assist in managing these rules. Our discussion emphasizes the need for an internal product book to consolidate knowledge and improve communication among teams, ultimately leading to more efficient development processes.

Jul 4, 2025 • 14min
Episode 111: The Social Aspects of a Failed Rewrite
Isaac Askew and Jeffrey Sherman discuss the social and emotional ramifications of failed rewrites in project management. They explore the loss of patience from leadership, the burnout experienced by teams, and the importance of taking responsibility for project outcomes. The discussion emphasizes the need for teams to salvage lessons from failures and to approach leadership with solutions rather than just problems. The conversation concludes with strategies for ensuring future success and maintaining trust within teams.Chapters00:00 The Impact of Failed Rewrites03:03 Team Dynamics and Leadership Pressure06:01 Salvaging Lessons from Failure09:00 Taking Responsibility for Project Outcomes12:02 Strategies for Future Success

Jun 27, 2025 • 27min
Episode 110: MVPs, YAGNI, and the Goldilocks Problem
Isaac Askew, Dustin Rea, and Jeffrey Sherman delve into the complexities of developing Minimum Viable Products (MVPs) and the challenges of balancing simplicity with the need for future scalability. They discuss the Goldilocks problem in software development, emphasizing the importance of finding the right balance between over-engineering and under-engineering. The discussion highlights the distinction between maintainability and optionality, the significance of timing in product development, and the lessons learned from past experiences. The trio also explores the concept of gaming out scenarios to prepare for potential challenges and the importance of aligning teams to ensure a cohesive approach to development.

Jun 20, 2025 • 20min
Episode 109: Conway's Law and Software Quality
Today we discuss the relationship between Conway's Law and software quality, exploring how a company's structure and culture can impact code quality. We delve into the signs of a toxic culture, the consequences of a 'yes culture', and strategies for identifying and changing company culture. The conversation emphasizes the importance of communication patterns and the long-term nature of cultural transformation in organizations.

Jun 13, 2025 • 16min
Episode 108: Consolidating Tech Stacks - Is It Worth It?
We debate the merits of consolidating technology stacks versus diversifying them. Today we explore the implications of each approach on business value, engineering efficiency, and organizational dynamics. Key points include the importance of evaluating the business value of consolidation, the impact on developer fungibility, and the balance between engineering optimization and business leverage.

Jun 6, 2025 • 14min
Episode 107: Rebuilding vs. Rewriting vs. Refactoring?
Jeffrey and Isaac dive into a comment made by Allen Holub to 'rebuild' instead of 'rewriting' legacy software and dive into the terminology.Show Notes:Allen Holub's thread mentioned: https://bsky.app/profile/allenholub.bsky.social/post/3lmcyvi3kag2f

May 30, 2025 • 15min
Episode 106: How to Stop a Rewrite in Progress
Isaac and Jeffrey explore how to halt a rewrite, the importance of learning from the process, and how to effectively communicate changes in direction to a team. The conversation emphasizes the value of reframing discussions around rewrites to focus on new insights and solutions rather than perceived failures.

May 23, 2025 • 42min
Episode 105: A Core Engine Rewrite with Nick Gerace
Guest Nick Gerace discusses the rewrite of the core engine at System Initiatives, detailing the challenges faced, the technical decisions made, and the importance of aligning development with business goals. The conversation covers the transition from the old engine to the new, the role of user feedback, and the iterative process that led to a more efficient and user-friendly product.Show Notes:Domain-Driven Design book: https://www.oreilly.com/library/view/domain-driven-design-tackling/0321125215/Nick's LinkedIn: https://www.linkedin.com/in/nickgerace/

May 16, 2025 • 34min
Episode 104: An Infrastructure Rewrite Story with Guest Paul Stack
Guest Paul Stack shares his experiences in transforming a massive logging infrastructure from a monolithic architecture to a microservices-based system. He discusses the challenges faced during the transition, the implementation of Kafka for log management, and the importance of data retention and cost management. The conversation highlights the evolution of logging practices and the empowerment of teams through decentralization, ultimately leading to a more efficient and effective infrastructure.Show Notes:Paul's LinkedIn: https://www.linkedin.com/in/stack72/Paul's Github: https://github.com/stack72


