Sinopsis
Feel like you’re hitting a wall with your existing software projects? You're not alone. On Maintainable, we speak with seasoned practitioners who have worked past the problems often associated with technical debt and legacy code. In each episode, our guests will share stories 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. We're in this together. Enjoy the show!
Episodios
-
Gulcin Yildirim Jelinek: Maintaining Postgres for Modern Workloads
19/11/2024 Duración: 38minIn this episode of Maintainable, Robby speaks with Gulcin Yildirim Jelinek, a Staff Database Engineer at Xata. Joining from Prague, Czech Republic, Gulcin discusses her experiences working with legacy databases, the evolution of Postgres, and her passion for building accessible tech communities.Gulcin shares practical insights into modern database management, including the rise of automation tools like YAML and Pgroll, as well as how extensions like pgvector are unlocking new possibilities for Postgres users. Her work with the Prague PostgreSQL Meetup and Diva Conference highlights her dedication to fostering inclusive and welcoming tech communities.Episode Highlights[00:05:32] What Makes Databases Maintainable? Gulcin reflects on documentation, onboarding, and usability.[00:15:10] From Legacy to Modern: Challenges with legacy systems in hospitals and banks and the transition to Postgres.[00:22:18] Pgvector and Vector Search: Introducing Postgres extensions to enable vector-based queries.[00:28:12] Scaling Au
-
Justine Gehring: Refactoring Software at Scale with AI
12/11/2024 Duración: 48minRobby sits down with Justine Gehring, an AI Research Engineer at Moderne, to explore how AI tools are transforming code maintenance and scalability. They dive into the unique ways AI can support refactoring for massive and legacy codebases, from retrieval-augmented generation (RAG) to lossless semantic trees, and discuss how developers can benefit from AI-assisted planning and refactoring.Justine shares her background transitioning from academia to industry and reflects on the essential role of reproducibility in AI, why maintainable code is often overlooked in research, and the challenges of balancing innovation with real-world reliability in software projects.Topics DiscussedWhat Makes Software Maintainable: Justine’s take on good documentation, reusable code, and ensuring new team members can quickly navigate a codebase. [00:00:42]Academia vs. Industry in Code Maintainability: Why reproducibility and code maintenance often diverge in research settings, and how industry standards address this gap. [00:01:14
-
Katerina Skroumpelou: Bridging Engineering and Advocacy for Scalable Software
05/11/2024 Duración: 36minAs a product advocate at Nx, Katerina Skroumpelou combines her engineering skills with a knack for connecting with clients. In this episode, she shares how clear documentation, scalable architectures, and a collaborative culture can transform software development for the better.Key Takeaways[00:01:25] Katerina’s Background: Robby and Katerina discuss her career journey, starting in engineering and recently moving into product advocacy.[00:02:29] Characteristics of Well-Maintained Software: Katerina highlights key aspects of maintainable software—readability, scalability, and reliability.[00:04:39] Product Advocacy at Nx: Katerina describes her unique role, bridging technical support and customer outreach to ensure clients make the most of Nx tools.[00:07:01] White Glove Approach: The “white glove” service approach allows Katerina to dive deep into clients' codebases, offering a hands-on approach to using Nx effectively.[00:09:52] Scalable Documentation Practices: Balancing clarity and detail, Katerina provide
-
Moriel Schottlender: The Challenges of Modernizing MediaWiki's Monolith
22/10/2024 Duración: 46minWelcome to another engaging episode of the Maintainable Software Podcast! In this episode, Robby sits down with Moriel Schottlender, Principal Software Engineer at the Wikimedia Foundation, to explore the complex journey of modernizing MediaWiki, the software behind Wikipedia. Moriel shares her insights on what it takes to keep an enormous monolithic codebase maintainable while supporting an ever-growing and diverse set of global users. She highlights the importance of modularization, ownership, and the delicate balance between flexibility and stability in open-source software.Key Takeaways[00:00:51] Characteristics of Well-Maintained Software: Moriel discusses the three crucial characteristics of well-maintained software: ownership, modularization, and documentation.[00:01:09] Ownership and Rules for Contribution: Ownership goes beyond just fixing bugs—it involves understanding the architectural purpose and maintaining consistency even as teams change.[00:03:35] Product Vision's Role in Maintainability: Why
-
Kate Holterhoff: From Front-End Engineering to Developer Advocacy
15/10/2024 Duración: 51minWelcome to another engaging episode of Maintainable! Robby sits down with Kate Holterhoff, Ph.D., a Senior Analyst at RedMonk and former front-end engineer, to explore the intricate world of software maintenance, documentation, and the future of developer roles. Kate brings her unique perspective from her time as a practitioner at a digital marketing agency, her academic background, and her current role in developer advocacy.Topics Covered:[00:00:00] Introduction to Kate's Background: Robby and Kate discuss her journey from academia to front-end engineering and now to being a Senior Analyst at RedMonk. Kate shares how her experiences have shaped her perspective on software maintenance.[00:04:00] Well-Maintained Software: Kate dives into her definition of well-maintained software, emphasizing modularity, semantic readability, and the importance of considering future developers who will interact with the code.[00:11:30] The Challenges of Agency Work: Kate reflects on her time at a digital marketing agency, wher
-
Alan Ridlehoover: Building Robust Systems Through Behavior-Centric Testing
08/10/2024 Duración: 48minAlan 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 cal
-
April Wensel: Navigating Legacy Code with Compassion
01/10/2024 Duración: 52minIn this episode of Maintainable, Robby speaks with April Wensel, Founder and Owner of Compassionate Coding. April shares her journey in the software industry and how she came to embrace compassion as a core value in coding and team dynamics. She explains why empathy is critical when working with legacy code, mentoring junior developers, and addressing technical debt.Episode Highlights[00:05:32] Introduction to Compassionate Coding: April discusses the mission behind Compassionate Coding and why human-centered development is essential.[00:13:36] Compassion and Technical Debt: How fostering a compassionate mindset helps teams navigate the challenges of maintaining legacy code and tackling technical debt.[00:20:10] Empathy in Code Reviews: April talks about the role of compassion in creating healthy, constructive code review cultures.[00:26:30] Onboarding with Compassion: The importance of pairing and empathy in onboarding new engineers, whether junior or senior.[00:31:55] The Refactor vs. Rewrite Debate: April
-
Saron Yitbarek: The Balance Between Maintainable Code and Multiple Streams of Income
24/09/2024 Duración: 41minIn 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 M
-
Lutz Hühnken: Crafting Resilient Systems with Event-Driven Design
10/09/2024 Duración: 44minIntroductionIn this episode of Maintainable, Robby speaks with Lutz Hühnken, Head of Engineering Excellence at Upvest, about the transformative power of event-driven architecture in software development. Lutz brings his extensive experience to the table, discussing how breaking down complex systems into manageable modules and leveraging event-driven design can lead to more resilient and maintainable software.Topics Discussed[00:05:32] Introduction to Well-Maintained Software: Lutz shares his thoughts on the key characteristics of maintainable software, emphasizing modularity and simplicity.[00:10:24] Challenges with "Magic" in Code: The pitfalls of relying too much on frameworks and ORMs, including examples from Lutz’s experience with Hibernate.[00:11:16] Understanding Event-Driven Architecture: Lutz explains the fundamentals of event-driven architecture and its advantages over traditional command-driven approaches.[00:13:50] The Role of Promises in Event-Driven Systems: How clear design-time responsibilities
-
Noel Rappin: Reviving the Pickaxe— A Journey through Ruby's Legacy
03/09/2024 Duración: 43minIn this episode of the Maintainable Software Podcast, Robby is joined by Noel Rappin, Staff Engineer at Chime Financial, and the mind behind the latest edition of the classic Programming Ruby book, affectionately known as the "Pickaxe." Noel delves into the intricate process of modernizing a legacy technical book and the lessons learned along the way.Episode Highlights[00:05:32] A Legacy Revisited: Noel Rappin reflects on the process of updating the Programming Ruby book, navigating the balance between preserving its legacy and making it relevant for today’s Ruby community.[00:10:17] The Challenges of Modernizing: Noel discusses the complexities of working on a legacy book, including maintaining a consistent tone, updating technical content, and making strategic decisions about what to include or omit.[00:16:12] Parallels with Legacy Code: Noel shares his insights on the similarities between updating a legacy book and maintaining legacy software, emphasizing the importance of understanding past decisions befo
-
Cassidy Williams: Navigating the Career Jungle Gym in Tech
27/08/2024 Duración: 43minIn this episode of the Maintainable Software Podcast, Robby sits down with Cassidy Williams, Developer Advocate at GitHub, to explore the dynamic nature of a tech career, the delicate balance between clever code and maintainability, and the evolving trends in software development.Cassidy begins by discussing what makes software truly maintainable—starting with the ease of onboarding for new developers. She emphasizes the importance of clear documentation and warns against the pitfalls of writing overly clever code that might be difficult to maintain in the future.They then delve into the challenges of joining an existing codebase and managing technical debt. Cassidy shares her experiences, noting how codebases often start pristine but become more cumbersome as projects evolve and pivot.The Importance of Onboarding: Cassidy explains how fast someone can jump in and start working on code as a key indicator of well-maintained software.[00:10:21] Balancing Cleverness and Maintainability: Cassidy elaborates on why
-
Obie Fernandez: Pioneering AI in Ruby on Rails Development
20/08/2024 Duración: 44minIn this episode of the Maintainable Software Podcast, Robby speaks with Obie Fernandez, Chief Scientist at Olympia, about the integration of AI into modern software development. Obie shares his unique perspective on leveraging AI to enhance the maintainability and functionality of software applications, particularly in the Ruby on Rails ecosystem.Episode Highlights[00:01:00] Characteristics of Well-Maintained Software: Obie emphasizes the importance of test coverage and the role of Ruby in writing readable, maintainable code.[00:02:00] AI Integration Challenges: Delving into the complexities of working with external dependencies, Obie explains how he has tackled issues with OpenAI's API in the Olympia project.[00:05:50] Evals and Guardrails: Obie introduces the concept of evals and guardrails in AI-driven applications, detailing how they ensure robust and reliable software performance.[00:08:44] Account Management with AI: Learn about Obie's innovative "multitude of workers" approach to automating account man
-
Tekin Süleyman: Balancing Complexity and Team Size
13/08/2024 Duración: 42minTopics 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.Dir
-
Ryosuke Iwanaga: The Benefits of Cell-Based Architecture
08/08/2024 Duración: 42minRyosuke shares his insights on:Ownership in Software Maintenance: The role of single-threaded ownership and dedicated teams in maintaining software and shared libraries.Technical Debt: How his definition of technical debt has evolved over the years and strategies to manage it effectively.Monitoring and Alarming: The importance of comprehensive monitoring and alarming systems in handling legacy software and ensuring reliability.Change Management: Best practices for change management, including preparing for worst-case scenarios and automating processes to reduce risks.Phased Rollouts and Feature Flags: Implementing phased rollouts and using feature flags to manage changes safely and gradually.Cell-Based Architecture: How cell-based architecture enhances scalability and reliability, and the challenges of maintaining multi-cell systems.Operational Excellence: Continuous deployment, regular dashboard reviews, and technologies used in orchestration to achieve operational excellence.Ryosuke also discusses his curre
-
Julia Ferraioli - Capturing Untold Open Source Stories
30/07/2024 Duración: 47minWelcome to the Maintainable Software Podcast! In this episode, Robby speaks with Julia Ferraioli, an Open Source AI/ML Strategist at AWS and co-founder of Open Source Stories. Julia joins us from Seattle, Washington, and shares her insights into the world of open source, AI, and software maintainability.Key Topics:Well-Maintained Software: Julia shares her thoughts on the characteristics of well-maintained software, emphasizing the importance of avoiding "clever" code that is often unmaintainable.Creative vs. Assembly Process: The discussion touches on the balance between software as a creative endeavor and an assembly process, highlighting the need for maintainability.Ternary Operators and Readability: Julia provides her perspective on the use of ternary operators and how certain programming language features can impact code readability and maintainability.Open Source Stories: Julia discusses the origins and goals of Open Source Stories, a narrative project that captures the untold stories of open-source con
-
Tanmai Gopal: Unlocking the Potential of Unified APIs
23/07/2024 Duración: 44minIn this episode of Maintainable, Robby Russell sits down with Tanmai Gopal, the CEO and co-founder of Hasura. Tanmai shares his insights into the characteristics of well-maintained software and the importance of a codebase that no team member fears. He emphasizes the need for accessibility and understandability in code, making it easier for developers to work with and iterate upon.Tanmai dives deep into the metaphor of technical debt, urging teams to prioritize product outcomes over best practices. He highlights the value of addressing technical debt contextually and in a way that aligns with product goals.A significant portion of the discussion revolves around the concept of the "super graph" in GraphQL. Tanmai explains how a unified API, created through federated GraphQL, can streamline API integration and reduce latency. He compares GraphQL with RESTful APIs, showcasing the advantages of a graph-based approach for handling complex data relationships.Tanmai also introduces Hasura's platform, which introspec
-
James Socol: Building Social Capital in Engineering Teams
16/07/2024 Duración: 44minIn this episode of the Maintainable Software Podcast, Robby Russell sits down with James Socol, a Staff Engineer at Fastly, to discuss the art of maintaining legacy code and the nuances of technical debt versus technical depreciation.Key Topics Discussed:Characteristics of Well-Maintained Code: James shares his insights on what defines well-maintained code, emphasizing the importance of continuous maintenance, testing, and encapsulation.Technical Debt vs. Technical Depreciation: James introduces the concept of technical depreciation, distinguishing it from technical debt and explaining how time affects software maintenance.Balancing Old and New Patterns: The discussion explores the challenges of integrating modern standards into legacy systems and finding a healthy balance.20% Time for Maintenance: James advocates for dedicating a portion of engineering capacity to maintenance tasks, drawing parallels to Google's 20% time concept.Onboarding Strategies: James offers valuable advice for new hires, emphasizing o
-
Paola Ducolin: Building Trust and Communication in Engineering Teams
10/07/2024 Duración: 45minIn this episode of Maintainable, Robby chats with Paola Ducolin, Staff Engineer at Datadog. Paola shares her insights on the characteristics of well-maintained software, the common struggles teams face, and effective strategies for working with stakeholders to prioritize refactoring.Key Topics Discussed:Characteristics of Maintainable Software: Paola explains the importance of well-documented code and having tests that automatically detect breaks.Challenges in Maintaining Software: The impact of business pressures on maintaining code quality and how teams can navigate these challenges.Working with Stakeholders: Strategies for communicating the importance of refactoring and measuring the impact of technical debt on business objectives.Role of Staff Engineers: Paola’s journey to becoming a staff engineer and the responsibilities that come with the role, including coordination and networking.Documentation and Design Systems: The power of documentation and how design systems can serve as a model for well-document
-
Robin Heinze - React Native and the Art of Flexibility
18/06/2024 Duración: 40minIn this episode, Robby welcomes Robin Heinze, Director of Engineering at Infinite Red, to discuss the intricacies of building and maintaining robust software systems. Key topics covered include:Characteristics of Maintainable Software: Robin shares insights from her team on what makes software maintainable, emphasizing the need for clear documentation, robust setup scripts, and ongoing code refinement.Technical Debt: They delve into managing technical debt, particularly in a consultancy setting, and how to balance client expectations with software quality.React Native: Robin explains the advantages of using React Native for cross-platform development, highlighting its efficiency and accessibility to a broader range of developers.Consultancy Challenges: The conversation also covers the unique aspects of working in a consultancy, including how to embed standards while respecting client processes.Major Takeaways:Effective communication and a proactive approach to maintenance are crucial in software development.V
-
Scott Hanselman - The Fear Factor in Maintainable Software
11/06/2024 Duración: 36minIn this episode of Maintainable, Robby welcomes Scott Hanselman, VP of Developer Community at Microsoft and host of the Hanselminutes Podcast, to discuss the emotional side of maintainable software. Scott shares his thoughts on fear as a common thread in poorly maintained software, the importance of building a team culture of trust, and how finding a good work-life balance helps create better software.The Role of Fear in Technical DebtScott believes that if you fear the software you work on, it's a tell-tale sign that it has maintainability issues.Technical debt is rooted in fear--either fear of making a change that will break something or fear of being unable to change something when needed.He encourages teams to talk openly about their fears and anxieties regarding the software and to consider what things give them confidence in the codebase.Building a Team Culture of ConfidenceScott emphasizes the importance of empathy in overcoming technical debt and making software more maintainable.Senior engineers and