Software Architecture in the AI Era: What Doesn’t Change, What Does
Content Introduction The Two Faces of AI in Architecture What Doesn’t Change Architecture Is About Capabilities, Not Behaviour The Architect’s Real Job Understanding Is the Hard Part Macro Patterns Stay,…
Taming AI Assistants: Practical Advice for Software Teams
Content Introduction The Challenge Four Critical Gaps The Solution Phase 1: Specification-Driven Development Why Specifications Are Critical Requirements Exploration with AI Architectural Decision Records (ADRs) - AI Guard Rails Test…
G1 GC Throughput Improvements: 5-15% Performance Gains with Dual Card Tables
Content Introduction The Problem: Synchronized Card Table Updates The Solution: Dual Card Tables with Atomic Swap Technical Deep Dive: Write Barrier Code Generation Performance Analysis Practical Examples Migration Considerations Conclusions…
JFR Method Timing and Tracing: Deterministic Profiling Without Overhead
Content Introduction Why This Matters How Method Tracing Works Technical Deep Dive Performance Analysis Practical Examples Migration Considerations Conclusions References Introduction Profilers are great until you need precision. Sampling-based tools…
Compact Object Headers: Reducing Java’s Memory Footprint by 22%
Content Introduction The Problem: Memory Overhead in Traditional Object Headers The Solution: Compact Object Headers Technical Deep Dive Performance Analysis Practical Examples Migration Considerations Conclusions References Introduction Every Java object…
JFR Cooperative Sampling: Safe and Precise Thread Stack Profiling
Content Introduction The Problem: Async Stack Walking is Dangerous The Solution: Cooperative Sampling Technical Deep Dive: Sample Request Lifecycle Performance Analysis Practical Examples Migration Considerations Conclusions References Introduction JDK Flight…
Ahead-of-Time Object Caching with Any GC: GC-Agnostic Startup Optimization
Content Introduction The Problem: GC-Specific Object References The Solution: GC-Agnostic Streaming Technical Deep Dive: Streaming vs Mapping Performance Analysis Practical Examples Migration Considerations Conclusions References Introduction The JVM’s ahead-of-time (AOT)…
Ahead-of-Time Method Profiling: Eliminating JIT Warmup Overhead
Content Introduction The Warmup Problem How AOT Method Profiling Works Technical Deep Dive Performance Analysis Practical Examples Migration Considerations Conclusions References Introduction Anyone who’s run Java applications in production knows…
Key Derivation Function API: Foundation for Post-Quantum Cryptography in Java
Content Introduction What Are Key Derivation Functions? The Missing API Problem The Post-Quantum Imperative API Design HKDF: Extract and Expand Technical Implementation Practical Examples Security Considerations Migration and Adoption Conclusions…
Scoped Values: A Better Alternative to ThreadLocal for Virtual Threads
Content Introduction The ThreadLocal Problem Enter Scoped Values Technical Deep Dive Performance Analysis Practical Examples Migration Considerations Conclusions References Introduction Thread-local variables have been Java’s answer to per-thread state since…