27 subscribers
Go offline with the Player FM app!
Podcasts Worth a Listen
SPONSORED


Justine Gehring: Refactoring Software at Scale with AI
Manage episode 449733663 series 2558054
Robby 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 Discussed
- What 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]
- From Academia to AI Engineering: Justine shares her journey and how her background in machine learning led to a career in AI-focused software maintenance. [00:04:48]
- Scaling Refactoring with OpenRewrite: An introduction to OpenRewrite, the open-source tool that facilitates large-scale code transformations, developed by Moderne. [00:12:15]
- Lossless Semantic Trees: The benefits of LSTs for detailed code analysis, retaining essential syntax and type information critical for reliable AI refactoring. [00:20:24]
- Retrieval-Augmented Generation (RAG): Justine explains RAG’s significance in allowing AI models to provide context-specific responses without heavy re-training. [00:26:00]
- Trust and Validation in AI-Generated Code: The importance of robust test cases and human oversight when leveraging AI-generated code to avoid cascading errors. [00:31:36]
- AI as a Planning Tool for Refactoring Projects: Justine’s insights on using AI as a collaborative coding assistant, offering developers suggestions for planning refactoring and maintenance tasks. [00:35:24]
- Real-World Example of Scaling Refactoring: Justine recounts a case study where Moderne used OpenRewrite to facilitate large-scale code migration involving multiple frameworks. [00:42:00]
- Advocating for AI Tools in Code Maintenance: Tips for developers interested in introducing AI tools and approaches within their teams or organizations. [00:42:31]
Key Takeaways
- AI Supports Reproducibility and Reliability: Ensuring reproducibility in AI-driven tools can enhance both credibility and usability for complex codebases.
- Prioritize Planning Before Refactoring: Understanding code dependencies and structure is key to successful refactoring; AI tools like OpenRewrite can automate targeted changes.
- Human Expertise Remains Essential: AI can be an effective coding assistant, but human oversight is necessary to ensure accuracy and quality.
- Experiment and Scale: Start with small, impactful AI-assisted refactoring recipes and scale up once the process is reliable, saving significant development hours over time.
Resources
- Moderne
- Justine Gehring’s LinkedIn
- OpenRewrite Documentation
- Getting to Yes by Roger Fisher and William Ury
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:
Or search "Maintainable" wherever you stream your podcasts.
Keep up to date with the Maintainable Podcast by joining the newsletter.
214 episodes
Manage episode 449733663 series 2558054
Robby 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 Discussed
- What 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]
- From Academia to AI Engineering: Justine shares her journey and how her background in machine learning led to a career in AI-focused software maintenance. [00:04:48]
- Scaling Refactoring with OpenRewrite: An introduction to OpenRewrite, the open-source tool that facilitates large-scale code transformations, developed by Moderne. [00:12:15]
- Lossless Semantic Trees: The benefits of LSTs for detailed code analysis, retaining essential syntax and type information critical for reliable AI refactoring. [00:20:24]
- Retrieval-Augmented Generation (RAG): Justine explains RAG’s significance in allowing AI models to provide context-specific responses without heavy re-training. [00:26:00]
- Trust and Validation in AI-Generated Code: The importance of robust test cases and human oversight when leveraging AI-generated code to avoid cascading errors. [00:31:36]
- AI as a Planning Tool for Refactoring Projects: Justine’s insights on using AI as a collaborative coding assistant, offering developers suggestions for planning refactoring and maintenance tasks. [00:35:24]
- Real-World Example of Scaling Refactoring: Justine recounts a case study where Moderne used OpenRewrite to facilitate large-scale code migration involving multiple frameworks. [00:42:00]
- Advocating for AI Tools in Code Maintenance: Tips for developers interested in introducing AI tools and approaches within their teams or organizations. [00:42:31]
Key Takeaways
- AI Supports Reproducibility and Reliability: Ensuring reproducibility in AI-driven tools can enhance both credibility and usability for complex codebases.
- Prioritize Planning Before Refactoring: Understanding code dependencies and structure is key to successful refactoring; AI tools like OpenRewrite can automate targeted changes.
- Human Expertise Remains Essential: AI can be an effective coding assistant, but human oversight is necessary to ensure accuracy and quality.
- Experiment and Scale: Start with small, impactful AI-assisted refactoring recipes and scale up once the process is reliable, saving significant development hours over time.
Resources
- Moderne
- Justine Gehring’s LinkedIn
- OpenRewrite Documentation
- Getting to Yes by Roger Fisher and William Ury
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:
Or search "Maintainable" wherever you stream your podcasts.
Keep up to date with the Maintainable Podcast by joining the newsletter.
214 episodes
All episodes
×
1 Joel Chippindale: Why High-Quality Software Isn’t About Developer Skill Alone 56:39

1 Melanie Sumner: Why Continuous Accessibility Is a Strategic Advantage 49:30

1 Joe Masilotti: Simplify Your Stack, Ship Mobile Sooner 55:42

1 Freedom Dumlao: What 70 Java Services Taught Me About Focus 1:03:19

1 Mercedes Bernard: Friendly Code Welcomes Everyone In 49:27

1 Evan Phoenix: The Why of the One Line 1:09:13

1 Chris Salvato: Building Developer Paradise by Sitting in the Problem Space 46:31

1 Heimir Thor Sverrisson: Architecture First, Tech Debt Second 40:58

1 Noémi Ványi: Only Fix Problems That Are Actually Problems 42:01

1 Julia López: Code Tells a Story—Even the White Spaces 50:32

1 Marty Haught: Rethinking Technical Debt—Is It Really Just Drift? 52:39

1 Mike Bowers - From ISAM to JSON—Navigating 40+ Years of Database Evolution 44:46

1 Lorna Mitchell: Writing Documentation Engineers Will Actually Read 43:18

1 Carola Lilienthal: Tackling Technical Debt with Patterns and Domain Knowledge 43:00

1 Joel Hawksley: The Hidden Costs of Frontend Complexity 46:13
Welcome to Player FM!
Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.