Jonathan is co-founder and CEO at Miami-based Moderne which automates software maintenance activities at scale. He founded OpenRewrite at Netflix and went on to found the Micrometer project as a member of the Spring Team. Jonathan is the author of SRE with Java Microservices (OReilly). He is an Army veteran and two time bronze star recipient.
Software is now 80% open source and third-party and 20% proprietary code that stitches it together into business-critical applications. In these large and diversely composed codebases, dependencies change frequently at their own pace and security vulnerabilities can be introduced at any time by anyone. Not updating software regularly leads to critical bugs, performance, and security issues (plus your code can just get harder to work with!).
Mass code refactoring in these massive codebases is a multi-point operation that requires accuracy and consistency. It’s about affecting change across many individual cursor positions in thousands of repositories representing tens or hundreds of millions of lines of code. Whether you’re migrating frameworks or guarding against vulnerabilities, this requires coordination, tracking, and accuracy. This is not a problem AI can solve alone. AI, like many humans, is not good at math and programming. AI needs a computer just like a human does.
In this talk, we’ll discuss automated code remediation with the deterministic OpenRewrite refactoring engine, a technology born at Netflix in 2016. It’s built on manipulating the Lossless Semantic Tree (LST) representation of code with recipes (programs) that result in 100% accurate style-preserving code transformations. It is a rule-based, authoritative system. Then we’ll show how to couple the precision of a rules-based system with the power of AI. We'll demonstrate a generative AI procedure that samples source code to identify defects and uses OpenRewrite to fix them. This is a general purpose pattern you're going to start seeing a lot of — “ChatGPT gets a computer” (with OpenRewrite as the computer in this case).
How adaptable is your technology stack to changes in business requirements, technological advancements, and the availability of new and better tools (and avoiding vendor lock-in!)?
When you can more easily secure, upgrade, move, or modernize your code, that means you can adapt quickly and efficiently to changes in technology and markets. That’s what Migration Engineering is all about, which we’ll be exploring in this workshop.
We’ll discuss and demonstrate how to write custom recipes using OpenRewrite, an open source auto-refactoring tool, to study and analyze your code before planning migration and modernization efforts—and then automate code changes for your teams.
You’ll also learn how to write recipes that will automate code search and transformation actions that are custom to your organization. We will assemble these recipes with the visitor pattern, show how to stitch recipes together with YAML, with Refaster-style templates, with Semgrep matchers, etc. This is a comprehensive look at all kinds of recipe development.
You will come away fully equipped to plan and exercise large scale code transformations in your organization.
Outline:
How adaptable is your technology stack to changes in business requirements, technological advancements, and the availability of new and better tools (and avoiding vendor lock-in!)?
When you can more easily secure, upgrade, move, or modernize your code, that means you can adapt quickly and efficiently to changes in technology and markets. That’s what Migration Engineering is all about, which we’ll be exploring in this workshop.
We’ll discuss and demonstrate how to write custom recipes using OpenRewrite, an open source auto-refactoring tool, to study and analyze your code before planning migration and modernization efforts—and then automate code changes for your teams.
You’ll also learn how to write recipes that will automate code search and transformation actions that are custom to your organization. We will assemble these recipes with the visitor pattern, show how to stitch recipes together with YAML, with Refaster-style templates, with Semgrep matchers, etc. This is a comprehensive look at all kinds of recipe development.
You will come away fully equipped to plan and exercise large scale code transformations in your organization.
OpenRewrite Outline
Are you behind migrating from Spring Boot 2 to 3 or Java 8 to 11 to 17 to 21? Are you stuck on an old library or tool when you really want to switch? Are you feeling buried under the weight of CVE patches and static analysis issues? If you can't keep up, your codebase becomes extremely difficult and expensive to maintain and evolve. Code breaks. Innovation dies.
The rise of the 100x developer is here, and it's fueled by automated code maintenance, migration, and security at scale. In this keynote, we're going to cover how development teams can achieve the ultimate in productivity and efficiency when not held back by old, stagnant code. Learn about the largest Java auto-refactoring ecosystem, the wealth of open-source code analysis and transformation recipes available, and how you can put it all to work for you today and every day.
We'll be showing off some of the latest advancements in OpenRewrite open-source refactoring tech, sharing its integration in some well-known dev tools like IntelliJ IDEA, as well as how to break out of single-repo refactoring and leverage AI to make a big impact across your codebase.