
The Marco Show Modern Bytecode Instrumentation with ByteBuddy – Rafael Winterhalter
Rafael Winterhalter, creator of ByteBuddy and long-time Java consultant, joins Marco to break down the hidden world of JVM bytecode instrumentation. They discuss how ByteBuddy powers tools like Mockito and Hibernate, why legacy Java still dominates enterprise systems, and what it’s really like maintaining a massive open-source project as a single developer.
💡 Topics in this episode:
How ByteBuddy works and why frameworks rely on it
JVM bugs, JIT issues, and surprises from instrumentation
Supporting legacy Java (5, 6, 8…) in modern environments
Open-source sustainability and avoiding burnout
Java modules, unsafe, and evolving with new JDK releases
Rethinking Java build tools and software engineering complexity
🕑 Timestamps:
(00:00) Intro
(01:10) Rafael’s background & the origin of ByteBuddy
(03:00) What ByteBuddy does and why it matters
(04:32) Replacing CGLIB and early challenges
(07:05) ByteBuddy’s design philosophy
(09:15) Mockito, Hibernate and real-world adoption
(13:14) Open source reality
(15:48) Performance myths and JVM behavior
(18:47) JVM bugs, JIT issues and instrumentation pitfalls
(21:11) Supporting legacy Java in enterprise
(23:56) Testing ByteBuddy across many JDKs
(25:53) Why companies still run Java 5/6
(28:25) Engineering vs economics
(30:39) Modules, unsafe and evolving with Java
(36:12) Maintaining a one-person project
(39:31) Conferences and developer evangelism
(42:02) Consulting vs product engineering
(49:51) Burnout and sustainability
(52:02) Thoughts on AI in software development
(57:13) Rethinking Java build tools
(01:05:07) Build security and dependency risks
(01:10:16) Giveaway
(01:10:48) Rapid fire and outro
New episodes every other Wednesday. Subscribe for more developer-focused conversations.
🎥 Watch the full episode on YouTube: https://youtu.be/AzfhxgkBL9s
