Growing Quarkus in a Spring Boot World – Kevin Dubois (IBM)
Kevin Dubois (IBM Developer Advocate, Quarkus Team) joins Marco to explore how Quarkus is reinventing Java for the modern cloud era, and why it’s not about killing Spring Boot. From startup times to developer experience, microservices, AI, and GraalVM, this episode dives into where Java is heading in 2025 and beyond.💡 Topics in this episode:The origins of Quarkus and why it existsSpring Boot dominance and migration trendsHot reload, Dev UI, and developer experienceCloud-native Java, containers, and serverlessGraalVM and the future of native JavaJava’s role in the age of AINew episodes every other Wednesday. Subscribe for more deep, developer-focused conversations.🎥 Watch the full episode on YouTube: https://youtu.be/IRqTbgC2JLU⏱️ Timestamps:(00:00) Intro(01:12) Why Quarkus was created (it’s not about killing Spring)(04:45) How Quarkus compares to Spring Boot today(08:30) Developer experience: hot reloads, Dev UI, and that “aha” moment(13:05) Quarkus in the cloud: Kubernetes, containers, and serverless(18:20) Native compilation vs JVM: when (and when not) to use it(24:00) MicroProfile, Jakarta EE, and open specs(28:35) The future of Java: monoliths, microservices, and AI(33:10) How IBM is investing in Quarkus and the Java ecosystem(37:25) Agentic AI, LangChain4J, and practical use cases(42:10) Rapid-fire questions(46:15) Giveaway question + closing thoughts
--------
47:54
--------
47:54
Hibernate vs Spring Data vs jOOQ: Understanding Java Persistence | Thorben Janssen
Thorben Janssen joins Marco to talk about the hidden power (and pain) of Java persistence frameworks. Hibernate, JPA, Spring Data, jOOQ: which one should you really use in 2025? From learning SQL the right way to surviving microservices madness, this episode is packed with hard-won lessons from decades of real-world Java work.💡 Topics in this episode: Hibernate vs JPA vs Jakarta Data When to use jOOQ or Exposed The biggest persistence misconceptions Common performance traps (and how to avoid them) Monoliths, microservices, and “real” architecture decisions How AI might change the way we write queries⏱️ Timestamps:(00:00) Introduction: From painful early learning to AI-generated annotations(01:02) Meet Thorben Janssen – consultant and trainer for Java persistence(02:11) Early days of Hibernate and the horror of EJB2(04:33) Main challenges in database access today(06:18) Too many tools: Hibernate, JPA, Spring Data, jOOQ – how to choose(08:15) Why understanding ORM internals really matters(09:20) How juniors should start learning persistence(10:59) SQL skills – why you still need them even with Hibernate or Spring Data(13:48) SQL essentials for beginners: what to learn first(16:01) Why Hibernate became the dominant persistence tool(18:57) Hibernate vs JPA – is there really a difference?(20:35) Hibernate API vs Jakarta Persistence API – which to use(22:10) Criteria API and DSLs for queries(23:43) Strengths and weaknesses of Spring Data JPA(27:26) Jakarta Data vs Spring Data JPA(30:53) Stateful vs stateless data models(33:21) jOOQ, Exposed, and the SQL-centric approach(37:41) Mixing Hibernate and Exposed in one project(39:33) Where Spring Data JDBC fits in(43:24) Starting a new project in 2025 – what stack to choose(45:24) The role of experience and not chasing every new trend(48:50) Monoliths, microservices, and common pitfalls(52:14) Database design vs service design – where to start(59:02) Common database performance issues(01:03:10) Why developers should collaborate with DBAs(01:06:20) Caching problems: when caches make things worse(01:09:29) Reactive database access – what happened to the hype(01:12:33) The "perfect" persistence framework – does it exist?(01:14:40) AI-assisted development and query generation(01:19:43) The AI hype cycle and developer reality(01:20:17) Other persistence models worth learning (graph, full-text search)(01:21:43) Full-text search and graph databases in practice(01:23:25) Integrating AI into applications(01:24:38) Thorben's unpopular opinions(01:26:04) Giveaway announcement(01:27:06) Rapid-fire round: Paderborn, joins, and lazy loading(01:30:00) Closing remarks🎁 Giveaway: What’s the highest number of SQL queries you’ve ever seen one workflow generate? Best answers win JetBrains merch or IDE licenses.New episodes every other Wednesday. Subscribe for deep, developer-focused conversations.📺 Watch on YouTube: https://youtu.be/t4h6l-HlMJ8
--------
1:30:10
--------
1:30:10
Flyway: From Open Source Side Project to Multimillion Exit – Axel Fontaine
Axel Fontaine, creator of Flyway, one of the most popular database migration tools, joins Marco to share how he built a global open source project, turned it into a profitable business, and sold it to Redgate. From bootstrapping alone to making millions without investors, Axel’s story is a deep dive into the business side of coding.💡 Topics in this episode:How Flyway grew from a side project to an acquisitionThe power of simplicity and zero dependenciesTurning open source into a sustainable businessBootstrapping vs venture capitalLife after selling your company⏱️ Timestamps:(00:00) Intro(00:54) Guest introduction(01:18) What is Flyway?(02:16) Evolution of databases and CI/CD(07:37) The idea and first version of Flyway(10:41) Competitors and why Axel built his own tool(13:27) Building Flyway’s simplicity and focus(17:30) Design principles: zero dependencies and reliability(20:18) Learning user focus through onboarding docs(23:31) How Flyway’s roadmap evolved(27:00) Handling bugs, testing challenges, and quality(31:27) Marketing and early promotion(33:49) The Maven Release Plugin blog post(36:07) Technical mistakes and lessons learned(38:28) Managing contributors and open-source community(44:44) Burnout and balancing workload(50:43) Turning Flyway into a business(52:20) Failed monetization attempts(01:09:11) Licensing, IP cleanup, and CLA process(01:30:02) First commercial release and first sale(01:31:56) Rapid revenue growth(01:39:07) Leaving consulting and going full-time on Flyway(01:44:30) Negotiating with enterprise customers(01:46:55) Acquisition interest and decision process(01:52:46) Decision to sell(02:04:57) Life after the sale and reflection(02:07:38) Key lessons for founders(02:09:50) Giveaway(02:10:47) Rapid-fire questions(02:13:18) OutroNew episodes every other Wednesday. Subscribe for more deep, developer-focused conversations.📺 Watch the episodes on YouTube: https://youtu.be/lwF2fg1fOHk
--------
2:13:35
--------
2:13:35
Hibernate: Myths & Over-Engineering. ORMs vs SQL vs Hexagonal — Gavin King
📺 Note: This episode contains screensharing and live coding examples that work best visually. If you’d like to follow along, check out the full video version on YouTube: https://youtu.be/Qvh3VFlvJnE.Gavin King (creator of Hibernate) joins Marco to cut through the myths of Java persistence. When should you skip layers of repositories and just write SQL, or even model database views? What actually causes lazy-loading pain, and how do stateless sessions help? We cover Hibernate, JPA, and where Jakarta Data is headed, plus pragmatic advice for legacy schemas, performance, and keeping your code DRY.💡 Topics in this episode:• SQL vs repositories (and why views can be your adapter layer)• The three inheritance strategies, and the trap of table-per-class• Stateless sessions vs stateful persistence contexts• LazyInitializationException explained (and avoided)• DRY first: let architecture emerge via refactoring• Jakarta Data 1.0/1.1: annotation processing, stateful repos, dynamic queries• Performance rule-of-thumb: minimize round-trips⏱️ Timestamps(00:00) Teaser(01:00) Gavin King intro and early Hibernate motivation(03:59) Old-school open-source culture and discovery(08:39) SQL isn’t hard: minimize DB round-trips(10:03) “Leaky abstractions are good” (and why)(12:04) Architecture should emerge from code(15:44) DRY as commandment #1(22:05) Reviewing a typical Spring Data setup (and pitfalls)(25:39) Inheritance strategies: joined vs single table vs table-per-class(30:06) One screen? Just write a SQL query (pragmatism)(33:08) When ORM shines: operations over graphs(35:22) Use views to adapt messy legacy schemas(43:18) Jakarta Data repos: annotation-driven, step-into-able(44:59) Stateless Session: less magic, explicit updates(48:51) Jakarta Data 1.1: stateful repos, dynamic queries, reactive(01:24:22) Rapid fire questions(01:33:15) Features Gavin would delete and lessons learned(01:42:30) GiveawayNew episodes every other Wednesday. Subscribe for deep, developer-focused conversations.
--------
1:43:04
--------
1:43:04
Software Performance: Avoiding Slow Code, Myths & Sane Approaches – Casey Muratori | The Marco Show
Casey Muratori (programmer, educator, performance advocate) joins Marco to explore why modern software feels so slow, even with today’s powerful hardware. From the infamous Windows Terminal controversy to game server limits, billion-row challenges in Java, and his unfiltered take on AI. This episode dives deep into performance, programming culture, and what developers should really care about.💡 Topics in this episode:Why software performance matters (and how to avoid “ridiculously slow” code)The “excuse parade” developers use when things lagExpectations for game server concurrencyParsing a billion rows in Java: lessons in performanceContainers, cloud, and performance mythsAI: helpful tool or unethical theft?Why Casey would get rid of Python⏱️ Timestamps:(00:00) Teaser(01:00) Meet Casey Muratori(04:00) The Windows Terminal story(15:00) The “excuse parade” of slow software(18:30) Game servers and performance expectations(24:00) The billion-row Java challenge(46:00) Getting 30x performance gains(52:00) Modern CPUs and performance myths(01:09:00) Should companies rewrite bloated software?(01:18:00) Casey’s take on AI(01:33:00) AI and ethics: who owns the data?(01:40:00) Rapid-fire questions: OS, IDEs, languages(01:50:00) Giveaway and OutroNew episodes every other Wednesday. Subscribe for more deep, developer-focused conversations.Watch the episodes on YouTube: https://youtu.be/apREl0KmTdQ
The Marco Show is a bi-weekly podcast about AI, coding, and developer tools — hosted by Marco Behler, Developer Advocate for Java at JetBrains.
Before JetBrains, Marco ran a consultancy in Munich, working with clients like BMW, Wirecard, and KVB, and built software at BWSO (now tresmo). He’s also a Java and Spring trainer, conference speaker, and writer of guides, courses, and videos.
Each episode brings real conversations with tech people who actually build things: opposing opinions, hot takes, and useful insights for developers who want to go deeper.
New episodes every other Wednesday.