Engineering With Java: Digest #82
Ahead of time compilation, Full observability with dash0, memory usage with java, startup memory cost and more...
👋 Java Devs! Welcome to this week’s addition (#82)! I hope you’re all doing great.
This week, we cover essential insights on:
📢 Get actionable Java/Spring Boot insights every week, from practical code tips to real-world use-case based interview questions.
Join 6500+ subscribers and level up your Spring & backend skills with hand-crafted content, no fluff.
First 100 paid subscribers will get the annual membership at $50/year forever that is ~ $4/mo ( 71 already converted to paid, 29 remaining)
Before we kick off, meme of the day 😊
🗒️ Articles Of The Week (7)
From Zero to Full Observability with Dash0 : This article shows how to add full observability to a Spring Boot service on Kubernetes using Dash0, automatically instrumenting pods without changing code, enabling real-time insights into logs, metrics, and traces.
Does Java Really Use Too Much Memory? Let’s Look at the Facts (JEPs) : This article debunks the myth that Java wastes memory, showing that modern JVMs use advanced garbage collectors, virtual threads, and memory optimizations. Most memory issues come from poor application design, not Java itself. Modern Java is efficient, and high usage is usually a developer or architecture problem.
Ahead-of-Time Class Loading & Linking : This article explains Java AOT class loading, where the JVM preloads and links classes using a “training run” to speed startup. Features like one-step cache creation and method profiling enable faster execution while keeping JIT benefits.
Memory Optimization and Utilization in Java 25 LTS: Practical Best Practices : This article explains Java 25 LTS memory improvements using GCs like ZGC and Shenandoah, compact object headers, and smarter GC tuning, showing that modern Java optimizes memory efficiently with minimal manual effort.
Why Your Spring Data Queries Break After Every Refactor : Spring Data queries often break after refactoring because many rely on fragile string-based definitions or method-name conventions that aren’t checked by the compiler. Renaming fields, entities, or parameters can silently break these queries at runtime. Using typed queries, Specifications, or query builders reduces this brittleness and improves refactor safety.
Measuring the Startup Memory Cost for Lazy Iteration Patterns in Java : This article examines Java’s lazy iteration patterns, showing that Stream pipelines create more transient objects than alternatives like Eclipse Collections’ LazyIterable, and that longer pipelines increase memory overhead, emphasizing careful object management for efficiency.
Deep Dive into Kafka Offset Commit with Spring Boot : This article explains Kafka offset commits in Spring Boot, detailing automatic vs. manual commits and how KafkaListener handles them, highlighting that proper offset management is crucial for reliable, duplication-free message processing.
🔥 Recently Published In-house Blogs (4)
Spring Data Interview Question - Identify & Optimize Slow SQL Queries
Spring Data Interview Question : Efficient Keyset Pagination with Spring Data WindowIterator
Spring Boot Interview Question - Rollup Updates To Improve Database Performance
Java Interview Question - Merging Two Priority Queues
▶️ Videos of the week (4)
How to (Re)start Your Java Journey in 2026 : This talk shows how modern Java has improved with faster releases, virtual threads, GraalVM native images, and better tooling, while its many options drive innovation but can overwhelm newcomers; it emphasizes upgrading to Java 21+, using new features for performance, and tools like OpenRewrite to modernize code.
Reliable AI Agents Using Domain Modeling with Koog in Java : The speaker presents Cook, JetBrains’ JVM framework for building reliable AI agents in Java, likening consistent coffee-making to deterministic agent design, and shows how agents use models, tools, and the environment with Spring integration and chat memory, emphasizing domain modeling and typed subtasks to replace non-deterministic prompt-based logic with structured, predictable behavior.
Testing Spring Boot Applications with Daniel Garnier-Moiroux : This Spring Office Hours episode features Daniel Garnier Muro discussing Spring Boot testing, stressing fundamentals, fast feedback, and avoiding overuse of @SpringBootTest, highlighting TDD,especially with AI agents and focusing on writing strong tests while using agents for support, alongside modern trends, tooling, and his upcoming Spring testing book.
Building AI Agents in Java with Embabel (Getting Started) : The speaker introduces Embabel, a JVM framework for building AI agents with structured actions, goals, and plans, enabling deterministic, type-safe workflows. Built on Spring AI, it combines LLMs with code and domain models, supports multiple models, and demonstrates a blog-writing agent using draft and review steps to showcase its features.
Thats all for this week friends! Thanks for reading this far. If you liked it please share with your network.
Happy Coding 🚀
Suraj
Subscribe | Sponsor us | LinkedIn | Twitter




