Practical lessons on Java, Spring, resilient systems, developer tooling and the changing economics of software engineering.

🎯 Featured Article
🌱 Big things have small beginnings: taking Java from small to big with JBang JBang shows how Java programs can grow from simple scripts to larger applications without requiring Maven or Gradle from the start.
- JBang makes Java scripting practical with minimal project setup.
- Maven and Gradle remain choices rather than mandatory starting points.
⏩ TL;DR (Quick Recap)
- JBang simplifies the path from small Java scripts to larger programs.
- JDK 28 previews identity-free value objects through Project Valhalla.
- Spring teams can improve RAG filtering, idempotency and batch transformations.
- AI tooling changes development workflows, but does not remove engineering complexity.
☕ JVM Corner
🔭 Hacking in the nameOf A bytecode-introspection experiment demonstrates how a nameOf-style expression could be implemented in Java.
- Bytecode introspection can recover information unavailable directly in Java syntax.
- The technique demonstrates a possible approach to nameOf semantics.
⚡ Introducing Apache Fory™ JSON: Blazingly Fast JSON Serialization for Java Apache Fory JSON provides Java-to-JSON serialization with support for JDK 8+, Android and GraalVM Native Image.
- Published benchmarks report higher throughput than Jackson and Gson.
- The framework supports both standard JSON text and UTF-8 bytes.
🧬 Project Valhalla’s First Preview: JEP 401 Redefines == for Java Objects
JEP 401 previews identity-free Java value objects, laying groundwork for flatter and potentially allocation-free representations.
- Value objects contain only final fields and have no object identity.
- The preview requires --enable-preview during compilation and runtime.
🗺️ When Escape Routes Become Toll Roads: Mapping How Developers Move Between Programming Languages JetBrains examines why developers change languages, including notable migration patterns involving Java, Kotlin, Python and TypeScript.
📦 Reflecting on STF support and looking ahead — Reviews 16 months of Sovereign Tech Fund support and the resulting work on JUnit sustainability.
🍃 Spring Updates
🧠 Spring AI Recipe: Filtering RAG Results with Metadata Metadata filtering narrows Spring AI RAG searches before irrelevant context reaches the language model.
- Metadata can constrain vector searches beyond semantic similarity.
- Early filtering reduces irrelevant context supplied to the LLM.
🔁 Idempotent REST Endpoints Without the Boilerplate An idempotent Spring Boot starter packages request deduplication so repeated POST requests can be handled consistently.
- Idempotency keys protect against retries and duplicate submissions.
- A starter reduces repeated implementation work across endpoints.
🦆 DuckDB in Spring Batch: Replace In-Memory Java Loops with One SQL Statement DuckDB moves batch transformations from row-by-row Java loops into vectorized SQL processing inside the JVM.
- DuckDB provides an embedded analytical engine through JDBC.
- Vectorized queries can replace costly per-row transformation loops.
🔍 Extra Reads
AI Engineering and Developer Productivity
🧮 The Economic Benefit of Refactoring — Refactoring becomes an important economic consideration as agentic engineering increases code production.
🗣️ Don’t be a meat proxy — Passing raw LLM responses between people adds little value when the recipient can query the model directly.
🧑💻 “Code was never the hard part” is an insult to all programmers — The article challenges the claim that programming is merely the easy implementation step of software development.
🧩 The Prototype Isn’t the Product — AI-generated prototypes still require engineering for reliability, security, data modeling, and production operation.
🌱 Pi’s Minimalism Is Its Advantage — A minimalist approach to AI tooling contrasts with increasingly complex prompts and orchestration layers.
Intellij IDEA Productivity
🧰 How to Use AI Agents in IntelliJ IDEA With ACP —The Agent Client Protocol to connect its workflow with multiple compatible AI agents.
✨ Top 5 AI Features in IntelliJ IDEA — AI into editing, code generation, explanations, stack traces and commit workflows.
🧱 Agent Skills in IntelliJ IDEA — Agent Skills give AI agents additional capabilities and project-specific knowledge for development tasks.
Resilience, Operations, and Maintainability
⏱️ Beyond Happy Path Engineering: Time — Production systems must account for delays, retries, outages and dependencies that do not behave ideally.
🚨 Notes on incidents — Incident response often involves waiting for investigations, deployments, dependencies and changes to produce observable results.
🔧 Use Task Runners for Common Coding Tasks — Task runners provide a consistent way to automate recurring development commands across repositories.
🧪 Blog about things you don’t understand yet — Writing becomes a learning mechanism by forcing deeper investigation into unfamiliar technical subjects.
Open Source, Infrastructure, and Systems
🧑🔧 Devtools must be open source — AI agents reduce the cost of customizing developer tools while making upstream synchronization more practical.
📱 my server is a phone now — A rooted CMF Phone 1 becomes the host for personal infrastructure and home services.
🗄️ We replaced Redis with MySQL for inventory reservations — and it scaled — Shopify describes using SKIP LOCKED, composite keys and connection visibility to scale inventory reservations.
Originally posted on marconak-matej.medium.com.