

Maintainable
Robby Russell
Do you feel like you're hitting a wall with your existing software projects? Are you curious to hear how other people are navigating this? You're not alone.
On the Maintainable Software Podcast, Robby speaks with seasoned practitioners who have overcome the technical and cultural problems often associated with software development.
Our guests will share stories in each episode and outline tangible, real-world approaches to software challenges. In turn, you'll uncover new ways of thinking about how to improve your software project's maintainability.
On the Maintainable Software Podcast, Robby speaks with seasoned practitioners who have overcome the technical and cultural problems often associated with software development.
Our guests will share stories in each episode and outline tangible, real-world approaches to software challenges. In turn, you'll uncover new ways of thinking about how to improve your software project's maintainability.
Episodes
Mentioned books

Oct 8, 2024 • 48min
Alan Ridlehoover: Building Robust Systems Through Behavior-Centric Testing
Alan Ridlehoover: Building Robust Systems Through Behavior-Centric TestingIn this episode of Maintainable, Robby speaks with Alan Ridlehoover, Senior Engineering Manager at Cisco Meraki. Alan shares his perspective on building well-maintained software by focusing on behavior-centric testing, clear code ownership, and thoughtful technical decisions that stand the test of time.Alan discusses his experience working in both startup environments and large-scale engineering teams, including how he navigates the unique challenges of each. He provides practical advice on managing conditional logic in code, scaling with third-party dependencies, and ensuring that testing strategies remain effective as systems grow in complexity.Key Takeaways:The characteristics of well-maintained software: behavior-centric testing, solid code principles, and ownership boundaries.Balancing the needs of startups vs. large enterprises when it comes to software maintenance.Alan’s approach to handling conditional logic with a technique called "rehydration" to simplify complex code.Why focusing on behavior, not implementation, is critical for scalable, maintainable tests.The importance of interfaces and facades for managing third-party dependencies and future scalability.How to approach technical debt as a conscious trade-off, not an inevitable burden.Best practices for addressing flaky tests, including managing non-determinism, order dependencies, and race conditions.How to set up effective monitoring and alerting systems to maintain a healthy software environment.The role of team structure and product ownership in delivering sustainable, high-quality software.Episode Highlights:[00:05:32] Introduction to the Guest's Background: Robby and Alan discuss Alan's work at Cisco Meraki and his approach to well-maintained software.[00:15:10] The Importance of Behavior-Centric Testing: Alan explains why focusing on behavior, not implementation, helps in both startups and large-scale environments.[00:24:30] Rehydration: A Strategy for Managing Conditional Logic in Code: Alan shares his method for simplifying code with many conditionals.[00:35:00] Navigating Technical Debt: Alan offers advice on how to strategically manage technical debt without slowing down business needs.[00:45:18] Monitoring and Alerting: Alan’s tips on keeping systems healthy and avoiding customer-facing issues through smart monitoring setups.Resources Mentioned:Radical Candor by Kim ScottThe Code GardenerConnect with Alan Ridlehoover:LinkedInThe Code Gardener BlogThanks to Our Sponsor!Turn hours of debugging into just minutes! AppSignal is a performance monitoring and error-tracking tool designed for Ruby, Elixir, Python, Node.js, Javascript, and other frameworks.It offers six powerful features with one simple interface, providing developers with real-time insights into the performance and health of web applications.Keep your coding cool and error-free, one line at a time! Use the code maintainable to get a 10% discount for your first year. Check them out!
Subscribe to Maintainable on:Apple PodcastsSpotifyOr search "Maintainable" wherever you stream your podcasts.Keep up to date with the Maintainable Podcast by joining the newsletter.

Oct 1, 2024 • 52min
April Wensel: Navigating Legacy Code with Compassion
April Wensel, Founder of Compassionate Coding, discusses the importance of empathy in software development. She shares how compassion can ease the struggles of maintaining legacy code and technical debt. April emphasizes the need for supportive environments, particularly for junior developers during onboarding. She also explains the beneficial effects of empathy in code reviews and fostering team morale. Additionally, she advocates for the refactor-over-rewrite approach, asserting that compassionate practices lead to better collaboration and code quality.

Sep 24, 2024 • 41min
Saron Yitbarek: The Balance Between Maintainable Code and Multiple Streams of Income
In this episode of the Maintainable Software Podcast, Robby sits down with Saron Yitbarek, founder and CEO of DiscoLink, to explore the challenges of maintaining early-stage software while balancing multiple streams of income. Saron shares her journey from being a solo developer to hiring her first teammate and the lessons learned along the way about code maintainability and business logic.Episode Highlights[00:05:32] Introduction to Saron's Background: Robby and Saron discuss her startup, DiscoLink, and the initial development of its MVP.[00:10:50] The Importance of Context in Code: Saron emphasizes why understanding the business decisions behind code is crucial for maintainability.[00:15:10] Onboarding a New Developer: Saron shares her experience hiring her first developer and how it changed her approach to software maintenance.[00:20:32] Multiple Streams of Income: Saron explains her motivation behind building DiscoLink to help professionals manage different revenue streams.[00:25:40] Transparency Around Money: A candid conversation about developers’ fears around charging for their work and how to overcome them.[00:30:45] Ethics and Side Projects: Robby and Saron discuss ethical considerations when working on side projects while employed full-time.[00:35:12] How Podcasting Shaped Saron's Career: Saron talks about how being a podcast host impacted her career growth and networking.Key TakeawaysMaintainability Beyond Code: Saron highlights the importance of documenting not just the code but also the business rationale behind decisions.Onboarding Challenges: Bringing a new developer into a solo-built project requires strong communication, context sharing, and flexible documentation practices.The Power of Multiple Income Streams: Saron’s vision with DiscoLink focuses on helping tech professionals build financial security through various revenue channels.Confronting Money Anxiety: Many developers struggle with charging for their work, but transparency and community conversations help break down those barriers.Ethical Side Projects: It's important to consider the ethical implications of using work-learned skills for personal projects.ResourcesSaron Yitbarek on LinkedInSaron Yitbarek on TwitterDiscoLink WebsiteBook Recommendation: Formerly Known as Food by Kristin LawlessLinks:My newsletter: https://themultihyphenate.ck.page/newsletterThanks to Our Sponsor!Turn hours of debugging into just minutes! AppSignal is a performance monitoring and error-tracking tool designed for Ruby, Elixir, Python, Node.js, Javascript, and other frameworks.It offers six powerful features with one simple interface, providing developers with real-time insights into the performance and health of web applications.Keep your coding cool and error-free, one line at a time! Use the code maintainable to get a 10% discount for your first year. Check them out!
Subscribe to Maintainable on:Apple PodcastsSpotifyOr search "Maintainable" wherever you stream your podcasts.Keep up to date with the Maintainable Podcast by joining the newsletter.

Sep 10, 2024 • 45min
Lutz Hühnken: Crafting Resilient Systems with Event-Driven Design
Lutz Hühnken, Head of Engineering Excellence at Upvest, dives into the transformative power of event-driven architecture in software development. He emphasizes the need for modular, maintainable software, cautioning against over-reliance on frameworks like Hibernate. Lutz explains the advantages of event-driven systems, highlighting the importance of promises for reliable communication. He advocates for choreography over orchestration in workflow management and shares tips for onboarding developers into complex architectures, making systems more resilient and efficient.

Sep 3, 2024 • 44min
Noel Rappin: Reviving the Pickaxe— A Journey through Ruby's Legacy
In this discussion, Noel Rappin, a Staff Engineer at Chime Financial and author of the latest Programming Ruby edition, shares insights into modernizing the beloved 'Pickaxe' book. He reflects on the challenges of updating legacy content while preserving its legacy. Noel compares this task to maintaining legacy software, highlighting the importance of understanding historical decisions. He also emphasizes the evolution of the Ruby community and shares advice for aspiring technical authors, encouraging them to start with smaller writing projects.

Aug 27, 2024 • 43min
Cassidy Williams: Navigating the Career Jungle Gym in Tech
Cassidy Williams, Developer Advocate at GitHub, shares her insights on navigating the tech landscape. She discusses the crucial role of clear documentation and the need to balance clever code with maintainability. Cassidy likens her career journey to a 'career jungle gym,' emphasizing non-linear paths and strategic pivots. She also highlights the significance of onboarding processes, collaborative code enhancements, and the evolving nature of software development, including the importance of community during transitions.

Aug 20, 2024 • 44min
Obie Fernandez: Pioneering AI in Ruby on Rails Development
Obie Fernandez, a pioneer in AI integration with Ruby on Rails development, shares insights on maintaining robust software. He emphasizes the value of test coverage and readable code while discussing the unique advantages of Ruby's syntax. Obie explores the challenges and strategies in integrating AI-driven APIs and introduces Olympia, his AI-powered platform. He highlights AI's transformative potential in handling errors and reshaping programming approaches, as well as revealing a sneak peek of his upcoming book on application development using AI.

Aug 13, 2024 • 43min
Tekin Süleyman: Balancing Complexity and Team Size
Topics DiscussedCharacteristics of Well-Maintained Software: Tekin emphasizes the importance of software that is easy to change and tailored to the team's needs.Balancing Complexity and Team Size: Tekin discusses how his small team manages complexity and features to maintain sustainable work practices without overburdening the developers.GovUK Project Insights: Tekin shares his experiences working on the GovUK project, highlighting the challenges and breakthroughs in rationalizing the UK's government digital real estate.Version Control Best Practices: Tekin and Robby delve into the importance of well-written Git commit messages and how they preserve institutional knowledge.Connecting with End Users: Tekin advocates for developers to get closer to end users to better understand their needs and deliver more effective solutions.Key TakeawaysMaintaining software sustainability is crucial, especially for small teams.Intentional decisions about growth and complexity can prevent burnout and maintain productivity.Direct interaction with end users can significantly improve software quality and usability.Effective version control practices help preserve valuable institutional knowledge.Organizations should balance parallel work to avoid overburdening development teams.Resources MentionedGovUK GitHub RepositoryProgramming as Theory Building by Peter Nauer User Story Mapping by Jeff PattonA Branch in Time (a story about revision histories)Tekin on Ruby.socialJoin Together CooperativeBook Recommendation: Palestine +100: Stories from a Century After the NakbaDon't miss this insightful conversation with Tekin Süleyman as he shares his journey and best practices for maintaining sustainable software within small teams.Thanks to Our Sponsor!Turn hours of debugging into just minutes! AppSignal is a performance monitoring and error-tracking tool designed for Ruby, Elixir, Python, Node.js, Javascript, and other frameworks.It offers six powerful features with one simple interface, providing developers with real-time insights into the performance and health of web applications.Keep your coding cool and error-free, one line at a time! Use the code maintainable to get a 10% discount for your first year. Check them out!
Subscribe to Maintainable on:Apple PodcastsSpotifyOr search "Maintainable" wherever you stream your podcasts.Keep up to date with the Maintainable Podcast by joining the newsletter.

Aug 8, 2024 • 42min
Ryosuke Iwanaga: The Benefits of Cell-Based Architecture
Ryosuke Iwanaga, President of OpsBR Software Technology Inc., shares his extensive knowledge on software architecture and maintenance. He discusses the importance of single-threaded ownership for better software maintenance and the evolving strategies to manage technical debt in legacy systems. Ryosuke emphasizes effective change management and the benefits of phased rollouts with feature flags. He dives into cell-based architecture, exploring its scalability and reliability, while also addressing the need for operational excellence through automation and monitoring.

Jul 30, 2024 • 48min
Julia Ferraioli - Capturing Untold Open Source Stories
Julia Ferraioli, an Open Source AI/ML Strategist at AWS and co-founder of Open Source Stories, dives deep into the world of open source. She discusses what makes software well-maintained and the balance between creativity and clarity in coding practices. Julia highlights untold stories from open source contributors, addressing the challenges they face. She also explores the evolving landscape of technical debt and the importance of narratives in shaping a supportive community for developers.


