Making software easier to understand, evolve and operate.

🎯 Featured Article
🪲 Debugging Spring Boot Applications With IntelliJ IDEA Spring Debugger adds runtime visibility for beans, configuration, transactions, databases and security directly to IntelliJ IDEA’s debugging workflow.
- Runtime views expose which beans and configuration values are actually active.
- Debugging can inspect transactions, databases, security and application state.
⏩ TL;DR (Quick Recap)
- Debugging tools increasingly expose runtime behavior directly in the IDE.
- Coding agents are shifting how software is specified, built and migrated.
- Java 27 adds nine JEP-level enhancements across language and runtime areas.
- Rust migrations show agents can support incremental production rewrites.
☕ JVM Corner
📝 From Spec-Driven Development to Living Specifications in Java Projects How specifications can preserve engineering intent while giving coding agents more freedom to implement Java projects.
- Living specifications provide constraints without prescribing every implementation detail.
- Agent autonomy still requires explicit engineering intent and boundaries.
📚 My Ten Year Quest to Evolve Java Collections Beyond Java Stream Examines the long effort to extend Java collections beyond the capabilities of the standard Stream API.
- Eclipse Collections remains an alternative for richer collection operations.
- The article argues that library evolution can continue outside the JDK.
🚀 The Arrival of Java 27! Generally available with nine JEP-level enhancements spanning language, security, runtime, performance and libraries.
- Four of the nine JEP-level enhancements are preview features.
- JEP 527 adds post-quantum hybrid key exchange support for TLS 1.3.
🍃 Spring Updates
🔐 Debug Past an HTTP 403 Without Breaking Spring Security IntelliJ IDEA’s security inlays let developers inspect and adjust runtime endpoint authorization while debugging Spring applications.
- Runtime security information can be inspected directly beside endpoints.
- Temporary endpoint unlocking avoids changing application security configuration.
🛡️ Spring AI Recipe: Securing an MCP Server with OAuth Demonstrates OAuth 2.0 protection for Spring AI MCP servers with authorization applied to individual tools.
- OAuth 2.0 provides stronger authentication than a single API key.
- Fine-grained authorization can restrict access to individual MCP tools.
⚙️ Spring Batch Partitioning and Parallel Steps: Scaling a 10-Million-Row Job Spring Batch partitioning for large jobs and the practical limits of worker parallelism and partition coordination.
- Partitioning distributes large jobs across multiple worker threads.
- Rejected partitions and grid-size assumptions can affect completion and speedup.
🔑 Spring Authorization Server in Action: Securing Modern Applications with OAuth 2.1 Walks through a Spring Authorization Server implementation using PostgreSQL, OAuth 2.1, PKCE and JWT-based authentication.
🧪 Testing your Spring Boot auto-configuration against a missing optional dependency How a custom class loader can test Spring Boot auto-configuration, when optional dependencies are absent from the classpath.
🔍 Extra Reads
Agentic Software Engineering
🧠 How to name things — Good names encode intent and context, making software easier for both people and AI tools to understand.
🛠️ A coding agent is six functions in a trenchcoat — A minimal coding agent can combine file access, editing, searching and shell execution into a small toolset.
🤖 TODOs Considered Harmful — Ambiguous TODO comments can become risky instructions when coding agents act on repository context with less human oversight.
🦀 Migrating the GitHub Copilot runtime to Rust, using Copilot — GitHub describes rewriting more than 800,000 lines of Copilot runtime code in Rust with AI agents across 128 pull requests.
Debugging & Performance
⏱️ A faster way to convert a timestamp ➜ Hour, Min, Sec — Reordering timestamp calculations can reduce dependency chains and replace repeated division with fixed-point multiplication.
🔎 Logpoints Walkthrough — Breakpoint-style diagnostics without modifying source code or restarting the application.
🦀 Rust debugging survey 2026 results — Rust’s first debugging survey collected more than 2,300 responses about debugger usage and developer pain points.
Architecture & Engineering Decisions
🧱 The most important product decision is what you don’t build — Product decisions through the work deliberately excluded or removed from consumer financial applications.
💾 Backups aren’t simple — A personal data-loss story illustrates why backups require deliberate processes rather than assumptions.
🎨 The CSS Zen Garden dream, finally shipped — Rebuilding Firefox.com with native CSS explores what modern CSS means for design systems and preprocessing.
Originally posted on marconak-matej.medium.com.