Austin Story, Senior Engineering Director at Doximity, joins Robby to explore the intricacies of building maintainable systems, fostering team accountability, and enabling faster iteration without sacrificing quality. Austin shares how his team approached migrating from a monolithic GraphQL architecture to a federated model, why simplicity matters for long-term success, and how guiding principles like YAGNI influence his decision-making.
Doximity is a leading digital platform for medical professionals, and their technology blog offers deep dives into the systems and tools that power their innovative solutions.
Key Topics Discussed
- [00:00:41] What is maintainable software? Austin highlights key traits, including testability, simplicity, and ease of removal.
- [00:02:09] Designing for removability: Why it's important and how it enables iterative progress.
- [00:03:05] YAGNI (You Aren’t Gonna Need It): How this principle shapes Austin's approach to feature development.
- [00:04:13] Migrating to GraphQL Federation: Benefits of breaking up a monolithic GraphQL server and the challenges faced during the transition.
- [00:05:56] GraphQL vs. REST: How GraphQL aids developer productivity while maintaining backward compatibility.
- [00:10:53] Collaboration between data and application teams: Using tools like Kafka to bridge gaps and improve workflow.
- [00:17:00] Upgrading Ruby on Rails applications: Balancing autonomy with central guidance for seamless updates.
- [00:27:55] Fostering ownership on teams: The cultural practices that empower engineers to take initiative and drive results.
- [00:34:29] Prioritizing work effectively: How Austin's team uses quarterly planning and measurable "goalposts" to align efforts with impact.
- [00:40:00] Avoiding bike-shedding: Keeping meetings and reviews focused on meaningful progress.
Key Takeaways
- Simplicity Wins: Maintainable software is easier to adapt, remove, and iterate on when it's kept simple.
- Iterate and Refine: Use principles like YAGNI to avoid over-engineering and ensure systems are built to evolve.
- Collaboration Drives Success: Bridging communication between specialized teams can unlock untapped potential.
- Focus on Outcomes: Define clear goals and track measurable results to ensure projects align with business needs.
Resources Mentioned
- YAGNI (You Aren’t Gonna Need It)
- GraphQL Federation Overview
- Doximity Technology Blog
- The Mom Test by Rob Fitzpatrick
- Austin Story on LinkedIn
- Austin Story's Website
Stay Connected
Follow Austin:
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!