Never Rewrite: Software Engineering & AI Coding

Never Rewrite: Software Engineering & AI Coding

By Isaac Askew and Jeffrey ShermanTechnology
Download on the App Store

Never Rewrite: Software Engineering & AI Coding episodes

  • Episode 49: Falsehoods Programmers Believe About Projects Part 2
    Isaac and Jeffrey discuss falsehoods that programmers believe about projects. They explore the misconception that the project will solve the stated problem, highlighting instances where the delivered software did not actually solve the problem. They also discuss the importance of understanding how the user will use the software and the need for clear communication and feedback loops to ensure that the project is on track. They emphasize that the success of a project is not solely determined by the software, but also by factors such as the alignment of project goals and the availability of resources. Overall, they highlight the need for critical thinking and continuous communication to avoid common pitfalls in project development.
    27 min
  • Episode 48: Falsehoods Programmers Believe About Projects
    In this episode, Isaac and Jeffrey discuss falsehoods that programmers believe about projects. They explore assumptions such as projects having defined beginnings and endings, the role of priorities in project work, and the importance of clear communication and feedback. They also touch on the challenges of working on successful projects that transition into ongoing maintenance and the consequences of failed projects that continue to exist. The conversation highlights the need for programmers to question these assumptions and adapt their approach to project management.
    19 min
  • Episode 47 - Maintenance Work as a Flight to Safety - A Manager's Perspective
    Isaac and Jeffrey discuss the flight to maintenance work as a safety option from the manager's perspective. They explore different perspectives on maintenance work and the value of taking on such work. They emphasize the importance of understanding the reality of the system and approaching maintenance work as an opportunity to solve real problems. They also discuss the role of accountability and changing the culture around maintenance work. The episode concludes with a discussion on the impact of not addressing maintenance work and the benefits of going slow to go fast.
    21 min
  • 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.
    37 min
  • 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.
    35 min
  • 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.
    16 min
  • 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.
    21 min
  • 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.
    12 min
  • 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.
    35 min

About Never Rewrite: Software Engineering & AI Coding

From the publisher's feed

‘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…