java
- Measuring OpenTelemetry Overhead Without Fooling Yourself
What OpenTelemetry costs a Spring Boot app in MiB and CPU per order, and the proofs each test cell needed before its number counted.
- Your GraalVM Version Is the Other Number
Which GraalVM to build native images with in 2026, what the free edition lacks, and why the image tag shows the JDK version, not GraalVM's.
- My sandbox profile had never run as shipped
My opt-in Claude Code sandbox profile had never been run. Its first run showed three ways it would break Maven and Gradle builds; the fix had a price.
- The Config I Measured Was Not the Config That Ran
A Spring Boot native image never got its telemetry config file, and optional: kept quiet. Plus a compose run that swapped the app before a load test.
- Spring Boot 4 Keeps a Tracer With Tracing Off
In Spring Boot 4, management.tracing.enabled=false binds to nothing. The replacement switches off export, not the Tracer bean.
- Counts Match, Dashboards Don't: OTel Agent vs Starter
Swapping the OTel Java agent for a starter, which native requires, kept every exact count. Names, units, labels and buckets moved. What breaks, per target.
- Java 25 Changes Your Telemetry in Strings, Not Code
A 21 to 25 move compiles fine. Then ZGC series rename, pinning metrics go quiet, -javaagent sidelines the AOT cache, and going native on top drops GC metrics.
- Three bugs between K2 and a working Spring app
Two models, 0 lie cells each, same sampler: Swift-1.5 shipped both Java tasks, K2-Horizon neither. Its Spring app never booted; three patches fixed it.
- The hard tier sorted by a rollback, not by speed
Five fast MoEs passed 1 of 45 hard-tier runs and skipped the same rollback in 33 of 45 ledger runs. A fast 2-bit model passed 7 of 9.
- The hidden test asked for more than the prompt
39 agent runs on a Java ledger task were marked down by one hidden check. The prompt never asked for it, and the project's README steered them into failing it.