

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

Sep 12, 2025 • 14min
Episode 121: A Helpful Analogy For Understanding Legacy Code & Tech Debt
Isaac Askew and Jeffrey Sherman explore the complexities of legacy code and tech debt through the analogy of construction in old houses. They discuss how unexpected issues can arise when making changes, the importance of communication between engineers and product managers, and the need for thorough investigation before committing to projects. The discussion emphasizes the significance of understanding costs and efforts involved in engineering tasks, and how to effectively convey this information to stakeholders.

Sep 5, 2025 • 21min
Episode 120: Bad Testing & Release Practices Are Cultural Problems, Not Technical Problems
Today we discuss the cultural implications of testing and release practices in software development, emphasizing that these issues are often rooted in organizational culture rather than technical challenges. We explore the transition from startup mentality to a more structured approach as businesses grow, the fragility of early successes, and the importance of quality over speed in releases. The discussion also highlights the role of leadership in fostering a culture of accountability and continuous improvement, as well as the need for developers to take ownership of their code.

Aug 29, 2025 • 24min
Episode 119: Iterating, Adapting, & Pivoting ft. Day Martin
In this episode, Day Martin, founder of Swayday, shares her journey from creating a standing desk company to developing motion gaming experiences aimed at improving educational outcomes for children with ADHD. The conversation explores the iterative process of game development and the importance of feedback. Day notably reuses instead of rewrites the gaming code of her pilot gaming project to pivot towards an idea with better traction.Show NotesSwayday: https://swayday.com/Times Tables: AR Space Game: https://apps.apple.com/az/app/times-tables-ar-space-game/id6743813232

Aug 22, 2025 • 16min
Episode 118: Recovering Value From Failed Projects
Isaac and Jeffrey discuss the challenges faced in recovering value from failed projects, particularly focusing on a specific project that was halted due to legal concerns. They explore the importance of A-B testing, the role of legal feedback, and the lessons learned from the experience. The discussion emphasizes the need for quick iterations, optimizing processes for future projects, and maintaining a positive team attitude in the face of setbacks.

Aug 15, 2025 • 20min
Episode 117: How to Make Incremental Changes Visible
Isaac Askew and Jeffrey Sherman discuss the significance of making incremental changes visible in software development. They emphasize the importance of metrics in measuring performance, system reliability, and user behavior. The discussion covers A-B testing, decision-making based on data, and real-world applications of metrics in projects, highlighting how these practices can lead to better outcomes and improved communication within teams.

Aug 8, 2025 • 21min
Episode 116: Inverting the Testing Pyramid Pt. 2
Isaac Askew and Jeffrey Sherman discuss the ongoing debate between end-to-end tests and unit tests in software development. The discussion delves into the implications of the testing pyramid, the potential future of testing with AI, and the evolving role of product teams in the testing process. They emphasize the need for a balanced approach to testing, cautioning against over-reliance on end-to-end tests while recognizing their value in certain scenarios.

17 snips
Aug 1, 2025 • 37min
Episode 115: [CI/CD] Beautiful Feedback Loops with guest Spriha Tucker
Spriha Tucker, Field CTO at BuildKite and former founder of Aviator, dives deep into CI/CD practices. She discusses the pivotal role of feedback loops in agile development to enhance code quality and align products with user needs. Spriha highlights innovative rapid prototyping strategies and the necessity of authentic customer relationships. The conversation also covers the importance of data visualization in improving developer experiences and scaling organizational success, emphasizing that it's all about delivering real value through effective collaboration.

Jul 25, 2025 • 21min
Episode 114: Old Projects Never Die, They Just Fade Away
Isaac and Jeffrey discuss why abandoned projects or failed rewrites have code that always seems to just linger - is it worth fixing?

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.


