

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

Mar 22, 2024 • 37min
Episode 46: Workshopping Live with Dustin Rea
In this conversation, Dustin Rea discusses the challenges faced by one of his clients who has a CRM. The CRM is built on a legacy codebase with issues in quality, scalability, and deliverability. The team has been working on improving the system, but there are still problems with emails, SMS, payments, and automations. The company is mission-driven and relies on the CRM to run their business, so rebuilding customer trust is crucial. They have made some improvements in infrastructure and email deliverability, but there is still work to be done. The conversation covered several topics related to database architecture and system design. The main themes include database optimization, handling heavy reads and writes, improving error handling and incident response, and enhancing observability. The speakers discussed the need for a purpose-driven database, implementing caching with Redis, tracking heavy queries, and addressing inconsistencies in the email service. They also mentioned the importance of logging and monitoring tools like Sentry and Grafana. Overall, the conversation highlighted the challenges and potential solutions for improving the performance and reliability of the system.

Mar 15, 2024 • 35min
Episode 45 - Year In Review
Isaac and Jeffrey celebrate the one-year anniversary of the podcast. They discuss the challenges of maintaining a consistent schedule and reflect on the evolution of topics covered in the past year. They also talk about running out of failure stories and the importance of finding interesting guests. The hosts discuss the concept of forcing functions for successful rewrites and the risks associated with rewrites. They also explore the idea of the Ship of Theseus and how it relates to software development. Lastly, they discuss how rewrites can discourage learning about the current system. In this episode, the hosts discuss various themes related to software development and the process of rewriting code. They emphasize the importance of the investigation process and how it can be used to improve code quality. They also discuss the benefits of tidying up code and the value of iterative workshops. The hosts highlight the importance of understanding the business side of software development and the need for developers to develop human skills in the age of AI. They also reflect on past interviews with industry experts and invite listeners to participate in future guest episodes.

Mar 8, 2024 • 15min
Episode 44 - Do More With Less
Jeffrey and Isaac discuss the concept of ‘doing more with less.’ They explore the initial visceral reaction to this idea and highlight the importance of doing less of things that don't matter. The impact of layoffs and the need to work smarter, not harder, are also discussed. The hosts emphasize the value of having honest discussions and creating a culture of transparency. They caution against burnout and advocate for trimming the fat responsibly. The episode concludes with a reminder to acknowledge mistakes and continuously learn.

Mar 1, 2024 • 21min
Episode 43: Rewriting in the Age of AI
Jeffrey and Isaac discuss their stance on 'never rewriting' given the possibility of AI making rewriting faster, cheaper, and less risky. They explore the limitations of current AI capabilities and the potential benefits of AI-assisted refactoring. The conversation delves into the idea of using AI to write tests and improve code quality. They also discuss the challenges and opportunities of AI in language switching and high-performance code optimization. Overall, the episode highlights the evolving role of AI in the rewriting process and the potential impact it may have on software development in the future.

Feb 23, 2024 • 11min
Episode 42: Iteration as a Defense From Micromanagement
Jeffrey and Isaac discuss how iteration can be a defense against micromanagement. They explore the reasons behind micromanagement, such as a lack of progress and fear, and how iteration provides observability and reassurance to managers. They emphasize the importance of breaking down nebulous projects into smaller deliverables and providing checkpoints to show progress.

Feb 16, 2024 • 35min
Episode 41: Rewrites from a Manager's Perspective with Ryan Cowan
In this episode, Isaac Askew interviews Ryan Cowan, a software engineering manager, about the perspective of managers on rewrites. They discuss the challenges of placating individual engineers who want to rewrite code, the role of managers in supporting engineers' ideas, and the frequency and success of large rewrites. Ryan shares a case study of data engineers rewriting a data pipeline and highlights the importance of understanding the root cause of concerns before deciding on a rewrite. They also discuss the difference between refactoring and rewriting and the expectations engineers have from their managers.

Feb 9, 2024 • 16min
Episode 40: Convincing Emotionally-Committed Colleagues It's Not Worth It
Isaac and Jeffrey provide strategies for working with colleagues who are emotionally committed to rewriting old and flawed code at their companies.

Feb 2, 2024 • 48min
Episode 39 - Project Risk with Jonathan Stark
Jonathan Stark joins as a guest to discuss the risks of hourly billing and the parallels between risk in a rewrite and in hourly billing.

Jan 26, 2024 • 24min
Episode 38 - Maintenance Work as a Flight to Safety
Isaac and Jeffrey explore the significance of maintenance work for developers, stressing its strategic value during uncertain periods like layoffs. They share personal experiences, highlighting how tackling these tasks can lead to trust, new opportunities, and a more impactful role within a team.

Jan 19, 2024 • 45min
Episode 37: Interview Insights - Changing the Game for Interviewers and Candidates
Isaac and Jeffrey dissect the flaws in the interviewing process and offer valuable insights for both interviewers and interviewees. They discuss the broken aspects of traditional interviews, highlight the importance of resume tailoring, and share anecdotes about handling past job experiences during interviews. The episode serves as a guide for interviewers to improve the hiring process and for candidates to enhance their chances by navigating the pitfalls and maximizing opportunities.