I'm excited to speak in a few days at @baselone.bsky.social about my new parttimenerd.github.io/test-order/ tool, which allows you to prioritize tests that are actually affected by your code changes. It's an awesome conference, small but with a lot of mighty speakers. So come join me baselone.org
Johannes Bechberger
Johannes Bechberger
@mostlynerdless.de
OpenJDK hacker at SapMachine, works on hello-ebpf for fun
683 followers99 following257 posts
☕️ Shape the future of Java. Join us on 1 October in Walldorf for a JCP Community Meetup with talks on Project Valhalla, Value Objects, and Java for AI. Meet Java community members, JCP representatives, and developers — and join the conversation. www.jug-da.de/2026/10/JCP-... #Java #JCP #OpenJDK
The newly released Java 27 seems boring; the JDK only got some new defaults and refinements, but the most consequential change hides beneath the surface. Read all about the newest Java release in my blog post at mostlynerdless.de/blog/2026/09...
Johannes Bechberger reposted
Stop wasting hours on tests that never fail. 🧪 At #BaselOne26, @mostlynerdless.de shows how bytecode instrumentation can identify tests affected by code changes – so relevant tests run first and feedback comes faster. 👉 baselone.org#programm 🎟️ eventfrog.ch/BaselOne26 #BaselOne #SoftwareTesting
What does GitHub's asset download counter really track? Not the full download, that's for sure. Read about my empirical investigation in my latest blog post: mostlynerdless.de/blog/2026/09...
I arrived in Oslo for @javazone.bsky.social and just wanted to say thank you to the organizers, who were able to sort out any issues for the speakers within minutes (I was clumsy). It's the first conference I'll be speaking at as a newly minted Java Champion. Thanks for being awesome.
Johannes Bechberger reposted
Why is Arrays.fill 265 times slower on G1GC Good article from Krzysztof Ślusarski krzysztofslusarski.github.io/2026/08/19/g...
My fun little blog post titled "OpenJDK is faster than GraalVM Java*" became a major source for GoogleAI, and I don't know why: mostlynerdless.de/blog/2026/07...
Learn how to create a hand-drawn text reveal for header text with CSS and some clip-path magic in this week's blog posts: mostlynerdless.de/blog/2026/07...
SAP joined the OpenJDK 15 years ago on the 14th of July 2011, contributing many ports, features, and ecosystem improvements. Let's celebrate: https:// mostlynerdless.de/blog/2026/07/07/celebrating-15-years-of-saps-involvement-in-the-openjdk/
Want to make vegan waffles that don't rip or stick even when doing large badges on commercial-grade equipment? Here is a recipe that gives you proper heart waffles with inexperienced labor: mostlynerdless.de/blog/2026/05...
I'm looking forward to speaking at this conference (and did you know that bagels came from Krakow?).
🚀 When your Java app is slow, are you measuring the right thing? Join Johannes Bechberger (@mostlynerdless.de) to explore the brand-new CPU-Time Profiler in JDK 25 (JEP 509) — and learn why execution time alone can mislead you. 2026.geecon.org/speakers/inf... #Java #JDK25 #Performance #Profiling
Femtojar is a new tool and Maven plugin that reduces the size of your tool's JAR files using ProGuard, Zopfli, and a custom classloader. Read more on it in my latest blog post: mostlynerdless.de/blog/2026/04...
I released a new version of ap-loader that wraps the newest async-profiler 4.4 version: github.com/jvm-profilin...
JCmd allows you to quickly get information on an existing JVM, like thread-dumps. In this blog post, you'll learn to send commands programmatically: mostlynerdless.de/blog/2026/04...
Honestly, it's surprising how easy it is to port a Java CLI into a tiny web-app with @graalvm.org: parttimenerd.github.io/jhserr/ It is far superior to running the CLI on a webserver, as these leads to all sorts of security problems and also privacy concerns (especially with redaction tools).
Ever looked at a HotSpot error file and thought “nope”? I wrote a guide + built a VSCode highlighter and a browser redaction tool (using @graalvm.org). mostlynerdless.de/blog/2026/04...
Ever looked at a HotSpot error file and thought “nope”? I wrote a guide + built a VSCode highlighter and a browser redaction tool (using @graalvm.org). mostlynerdless.de/blog/2026/04...
I just updated femtocli, my tiny (<50KB) CLI option parsing library. More bug fixes, better type conversions, and documentation: github.com/parttimenerd...
Johannes Bechberger reposted
Probably the most cool visual explanation for HTTP/3 in #JDK26 by @lutskedev.bsky.social and Johannes Bechberger 🥳🥳🥳!!! #Java #JEP #VoxxedDaysAmsterdam
Johannes Bechberger reposted
Join us today at 13:30 in zaal 11 @amsterdam.voxxeddays.com and hear why @mostlynerdless.de and I think that Java 26 is boring! #VDAMS26
Java 26 is here, but it's boring. Nothing really exciting. But that's a good thing, as the boring stability is what made Java successful (co-written with @lutskedev.bsky.social): mostlynerdless.de/blog/2026/03...
Come and win a "Java 26 is boring" t-shirt :)
Excited for #JCON EUROPE 2026? See Johannes Bechberger at #JCON2026 in Cologne talking about 'Guess the #Java Version' In this interactive #quiz, we'll look through Java snippets from Java 1.0 to Java 25 and try to guess the version... 🎟️ 2026.europe.jcon.one/tickets Free for #JUG members
Parsing JSON is not hard; we can easily build a parser that directly follows a (transformed) JSON grammar, creating femtojson in the process: mostlynerdless.de/blog/2026/03...
I need your help: If anyone wants to send me an audio snippet saying "Boring" (as in "Java 26 is stable. It's boring."), I would happily accept them. I want to play this audio via a button press during a talk. In other news: I'm speaking at @amsterdam.voxxeddays.com with @lutskedev.bsky.social.
I need your help: If anyone wants to send me an audio snippet saying "Boring" (as in "Java 26 is stable. It's boring."), I would happily accept them. I want to play this audio via a button press during a talk. In other news: I'm speaking at @amsterdam.voxxeddays.com with @lutskedev.bsky.social.
Java Heap Dumps might contain sensitive information; with hprof-redact, you can easily remove it. Learn more in this blog post: mostlynerdless.de/blog/2026/02...
Command-line parser libraries don't have to be big to support everything you need, like subcommands, validators, and Java-agent-style argument parsing: Introducing femtocli, with a 45KB JAR file. Read more at mostlynerdless.de/blog/2026/02...
Redact sensitive data from Java Flight Recorder and JVM crash logs with jfr-redact, a tool for safely sharing profiling and error files: mostlynerdless.de/blog/2026/02...
Think you really know Java? ☕ Guess the Java version from code snippets in my Java Version Quiz: mostlynerdless.de/java-game/
In this week's blog post, I explain how a chaotic eBPF-based scheduler helps reproduce rare concurrency bugs, illustrated with a real-world OpenJDK case: mostlynerdless.de/blog/2026/01...
Async-profiler has released an update that includes native lock profiling and a latency filter. Consequently, ap-loader, which wraps async-profiler in a platform-independent JAR, has also been updated: github.com/jvm-profilin...
JFR is great, but do you know how to read and write JFR files programmatically? Learn more in this week's blog post: mostlynerdless.de/blog/2026/01...
I just released a new version of the cf-cli-java-plugin (github.com/SAP/cf-cli-j...), which solves a rare ssh connection issue by not using the plugin framework to call "cf ssh", but calling it directly via exec.Command
I have just released version 4.2.1-11 of ap-loader, which combines the 4.2.1 async-profiler maintenance release with a bug fix related to --jfr-sync in ap-loader itself. Get it via Maven or from the GitHub releases: github.com/jvm-profilin...
Java 25 got a new CPU time profiler, get into the details and the journey to get there in my talk at @jfokus.se early February: jfokus.se
After last week's blog post that showed you how OpenJDK is faster than GraalVM, this week you will learn the quickest way to obtain the version of a Java binary (hint: it runs in less than a millisecond): mostlynerdless.de/blog/2026/01...
OpenJDK is faster than GraalVM* It's around twice as fast in one particular area. Read more in my latest tiny blog post at mostlynerdless.de/blog/2026/01...
Discover how to create executables from JAR files using the new execjar project, taking advantage of the fact that JARs are simply ZIP files, in this week's blog post: mostlynerdless.de/blog/2026/01...