{"version":"1.0","type":"rich","provider_name":"Acast","provider_url":"https://acast.com","height":250,"width":700,"html":"<iframe src=\"https://embed.acast.com/$/65de32896569fa0017d17653/6845b648212f7dfe61a1747c?\" frameBorder=\"0\" width=\"700\" height=\"250\"></iframe>","title":"Coffee Grindcore (with Alan Ridlehoover)","description":"<p>In this episode of <em>Dead Code</em>, Jared talks with Alan Ridlehoover, Senior Engineering Manager at Cisco Meraki, about managing software complexity through clear abstractions and thoughtful design. Using a metaphor of a vending-style coffee machine, Alan explains how complexity often arises not from algorithms but from code that’s hard to understand due to excessive abstraction or poor structure. He emphasizes focusing on the readability of what’s directly in front of you, using tools like flog and the ABC metric to quantify complexity, while also trusting gut instinct and applying heuristics like Sandi Metz’s five-line rule. Alan discusses minimizing over-engineering, favoring well-named private methods over inline comments, and stresses that code and commit messages—not comments—should tell the story. He also introduces “rehydration,” the process of adding back duplication to reveal better abstractions, helping developers make their code more maintainable and easier to change over time.</p><p><br></p><p><strong>Links:</strong></p><p><br></p><p><a href=\"https://github.com/seattlerb/flog\" rel=\"noopener noreferrer\" target=\"_blank\">Flog (Ruby)</a></p><p><a href=\"https://en.wikipedia.org/wiki/ABC_Software_Metric\" rel=\"noopener noreferrer\" target=\"_blank\">ABC Metric</a></p><p><a href=\"https://www.gerritcodereview.com/\" rel=\"noopener noreferrer\" target=\"_blank\">Gerrit</a></p><p><a href=\"https://en.wikipedia.org/wiki/Don%27t_repeat_yourself\" rel=\"noopener noreferrer\" target=\"_blank\">DRY Principle (Don’t Repeat Yourself)</a></p><p><a href=\"https://domainlanguage.com/ddd/\" rel=\"noopener noreferrer\" target=\"_blank\">Domain-Driven Design (DDD)</a></p><p><a href=\"https://en.wikipedia.org/wiki/Polymorphism_(computer_science)\" rel=\"noopener noreferrer\" target=\"_blank\">Polymorphism</a></p><p><br></p><p><strong>Dead Code Podcast Links:</strong></p><p><br></p><p><a href=\"https://hachyderm.io/@deadcode\" rel=\"noopener noreferrer\" target=\"_blank\">Mastodon</a></p><p><a href=\"https://twitter.com/DeadCodePod\" rel=\"noopener noreferrer\" target=\"_blank\">X</a></p><p><br></p><p><strong>Jared’s Links:</strong></p><p><br></p><p><a href=\"https://supergood.social/@jared\" rel=\"noopener noreferrer\" target=\"_blank\">Mastodon</a></p><p><a href=\"https://twitter.com/jardonamron\" rel=\"noopener noreferrer\" target=\"_blank\">X</a></p><p><a href=\"https://www.twitch.tv/jardonamron\" rel=\"noopener noreferrer\" target=\"_blank\">twitch.tv/jardonamron</a></p><p><a href=\"https://jardo.dev\" rel=\"noopener noreferrer\" target=\"_blank\">Jared’s Newsletter &amp; Website</a></p><p><br></p><p><a href=\"https://docs.google.com/document/d/1H2X2NsffO5pyPv7rbZGLdXBudMSd_x0AEl9eN1JMmRw/edit?pli=1&amp;tab=t.0\" rel=\"noopener noreferrer\" target=\"_blank\">Episode Transcript</a></p>","author_name":"Jared Norman"}