Tech Debt and Refactoring at Yelp! with Andrew Mason - Episode 110


Healthy code makes for happy coders, and there are many ways to measure the health of a project. This week Andrew Mason talks about the Undebt project from Yelp!, as well as some of the other tools and practices that have been developed to make sure that the balance on their technical debt card stays low. Give it a listen to learn how and why to measure and address the painful parts of your software.

Do you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? With Linode’s managed Kubernetes platform it’s now even easier to get started with the latest in cloud technologies. With the combined power of the leading container orchestrator and the speed and reliability of Linode’s object storage, node balancers, block storage, and dedicated CPU or GPU instances, you’ve got everything you need to scale up. Go to today and get a $100 credit to launch a new cluster, run a server, upload some data, or… And don’t forget to thank them for being a long time supporter of Podcast.__init__!


  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch.
  • To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
  • Your host as usual is Tobias Macey and today I’m interviewing Andrew Mason about technical debt and refactoring with Undebt.


  • Introductions
  • How did you get introduced to Python?
  • How do you define technical debt and why is it an important aspect of a project to keep track of?
  • How would you characterize refactoring in general and when you might want to do it?
  • What is Undebt and what was the problem that you were facing at Yelp when it was created?
  • For someone who wants to get started with using Undebt what does that process look like and how does it work under the covers?
  • What are some of the other tools and techniques available for refactoring Python code and how do they differ from what is possible in Undebt?
  • What are some of the other tools and methods that you use to maintain the overall health of your codebase?
  • What are some of the limitations and edge cases that you have experiemced working with Undebt?
  • It is often a difficult balancing act when working in a team to determine how much time to spend paying down technical debt and building tools that will act as force multipliers vs doing feature work that will be visible to end-users. In your experience, what are some ways to manage that tension?

Keep In Touch



The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Liked it? Take a second to support Podcast.__init__ on Patreon!