
What If Fixing Code Wasn’t Your Job Anymore?
Also available on
Chapters
In this episode
Jonathan Schneider, co-founder and CEO of Moderne, joins Simon Maple to share how real engineering teams are using Moderne’s rewrite engine to reduce technical debt at the source, and drive org-wide transformation.
On the docket:
• the hard limit LLMs can’t scale past
• why OpenRewrite uses a declarative framework
• the real challenge: accessing the compiler’s truth
Introduction to Moderne
In this episode of AI Native Dev, Jonathan Schneider, CEO and co-founder of Moderne, joined Simon to discuss code maintenance, large-scale refactoring, and the evolving intersection between LLMs and deterministic code transformation. Moderne, built on the OpenRewrite refactoring engine, targets the growing burden of maintaining enterprise-scale codebases and keeping them up to date with modern frameworks and standards.
Origins and Motivation
Moderne’s roots trace back to Schneider’s time at Netflix, where traditional developer dashboards failed to drive code modernization. Developers consistently deprioritized maintenance in favor of feature development. This led to the realization that tooling needed to “do it for them.” OpenRewrite was created to provide deterministic, automatable transformations that eliminate technical debt without developer intervention.
The Reality of Software Maintenance
Jonathan emphasizes that maintenance isn't just about repaying technical debt—it’s continuous upkeep required to ensure that applications remain functional as dependencies evolve. Approximately 30–40% of engineering effort is spent on this type of "code hygiene." With thousands of repositories and constant changes to APIs and frameworks, keeping codebases modern has become a scaling problem.
AI's Role and Its Limitations
While LLMs excel in authoring experiences on single repositories, they struggle with scale, determinism, and consistency across thousands of codebases. Larger context windows reduce attention precision, and LLMs introduce probabilistic variability in critical operations. However, LLMs can assist in generating OpenRewrite recipes by understanding before/after code states and iteratively refining code transformations.
OpenRewrite and Recipes
OpenRewrite operates on deterministic “recipes”—modular programs that make atomic code changes like modifying dependencies or migrating framework APIs. For example, a Spring Boot 3.4 migration may involve over 3,000 recipes. Recipes are composable, testable, and increasingly AI-assisted. LLMs can generate these recipes by understanding high-level intent and translating it into precise transformations.
Scaling Code Transformation
Rather than mass push-based pull requests, Moderne emphasizes developer-initiated pull-based changes. Product teams are more receptive when they opt-in at their convenience. High-urgency issues like vulnerabilities (e.g., Log4Shell) justify push-based approaches, but most modernization is better accepted when surfaced contextually within developer workflows.
Automation, Validation, and Feedback Loops
Recipes can verify compilation after transformation and emit data tables that support large-scale impact analysis. These tables enable LLMs and agents to reason across repositories, answering questions like “Where is this middleware cache pattern used?” with specific examples from billions of lines of code. This transforms OpenRewrite into a deep knowledge base for agents.
LLM Integration and MCP Servers
OpenRewrite recipes are exposed to LLMs via tool calling and MCP (Model Context Protocol) servers, enabling agents to query proprietary and open-source code at scale. This unlocks agentic workflows where models suggest changes based on usage patterns from across a company’s codebase, not just the active file.
Looking Forward
Jonathan’s vision centers on expanding language support and deepening integrations with compilers to build a universal, lossless semantic model of software. Surprisingly, recipes built for Java have proven reusable across Python, JavaScript, and C# due to shared underlying abstractions. As Moderne continues to grow its “data lake” of code intelligence, the platform becomes foundational for spec-driven development, documentation generation, and AI-assisted transformation across the software lifecycle.
Conclusion
Moderne, with OpenRewrite at its core, is reshaping how enterprise teams approach modernization. By combining deterministic refactoring with AI acceleration, it allows engineering teams to scale their modernization efforts while maintaining confidence and control. As LLMs mature and agent frameworks evolve, Moderne positions itself as the infrastructure backbone for AI-native code transformation.