Rewrites are seductive. Clean slates promise clarity, speed, and “doing it right this time.” In practice, they’re often late, over budget, and quietly demoralizing.
In this episode of Maintainable, Robby sits down with Brittany Ellich, a Senior Software Engineer at GitHub, to talk about a different path. One rooted in stewardship, readability, and resisting the urge to start over.
Brittany’s career began with a long string of rebuild projects. Over time, she noticed a pattern. The estimates were wrong. Feature development stalled. Teams burned energy reaching parity with systems they’d already had. That experience pushed her toward a strong belief: if software is in production and serving users, it’s usually worth maintaining.
[00:00:57] What well-maintained software actually looks like
For Brittany, readability is the first signal. If code can’t be understood, it can’t be changed safely. Maintenance begins with making systems approachable for the next person.
[00:01:42] Rethinking technical debt
She explains how her understanding of technical debt has evolved. Rather than a fixed category of work, it’s often anything that doesn’t map directly to new features. Bugs, reliability issues, and long-term risks frequently get lumped together, making prioritization harder than it needs to be.
[00:05:49] Why AI changes the maintenance equation
Brittany describes how coding agents have made it easier to tackle small, previously ignored maintenance tasks. Instead of waiting for debt to accumulate into massive projects, teams can chip away incrementally. (Related: GitHub Copilot and the Copilot coding agent workflow she’s explored.)
[00:07:16] Context from GitHub’s billing systems
Working on metered billing at GitHub means correctness and reliability matter more than flash. Billing should be boring. When it’s not, customers notice quickly.
[00:11:43] Navigating a multi-era codebase
GitHub’s original Rails codebase is still in active use. Brittany relies heavily on Git blame and old pull requests to understand why decisions were made, treating them as a form of living documentation.
[00:25:27] Treating coding agents like teammates
Rather than delegating massive changes, Brittany assigns agents small, well-scoped tasks. She approaches them the same way she would a new engineer: clear instructions, limited scope, and careful review.
[00:36:00] Structuring the day to avoid cognitive overload
She breaks agent interaction into focused windows, checking in a few times a day instead of constantly monitoring progress. This keeps deep work intact while still moving maintenance forward.
[00:40:24] Low-risk ways to experiment
Improving test coverage and generating repository instructions are safe entry points. These changes add value without risking production behavior.
[00:54:10] Navigating team resistance and ethics
Brittany acknowledges skepticism around AI and encourages teams to start with existing backlog problems rather than selling AI as a feature factory.
[00:57:57] Books, habits, and staying balanced
Outside of software, Brittany recommends Atomic Habits by James Clear, sharing how small routines help her stay focused.
The takeaway is clear. AI doesn’t replace engineering judgment. Used thoughtfully, it can support the unglamorous work that keeps software alive.
Good software doesn’t need a rewrite.
It needs caretakers.
References Mentioned
- GitHub – Brittany’s current role and the primary environment discussed
- GitHub Universe – Where Brittany presented her coding agent workflow
- Atomic Habits by James Clear – Brittany’s recommended book outside of tech
- Overcommitted - Podcast Brittany co-hosts
- The Balanced Engineer Newsletter – Brittany’s monthly newsletter on engineering, leadership, and balance
- Brittany Ellich’s website – Central hub for her writing and links
- GitHub Copilot – The AI tooling discussed throughout the episode
- How the GitHub billing team uses the coding agent in GitHub Copilot to continuously burn down technical debt – GitHub blog post referenced
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!