Benjamin Muskalla
Featured AuthorBenny (@bmuskalla) has been following his passion of building tools for improving developer productivity. He has been an active committer of the world-class Eclipse IDE (Platform, Java, Git). Over the years, he spent a lot of time building tools, frameworks, and test approaches to help his peers become more effective. TDD and API design are aspects dear to his heart as well as working on open-source software. Benny currently works for Gradle Inc. on the Gradle Build Tool.
Jakarta EE 11: Beyond the Era of Java EE
This user guide provides a brief history of Java EE/Jakarta EE and a detailed overview of some of the specifications that will be updated in Jakarta EE 11.
Step up your coding with the Continuous Feedback Udemy Course: Additional coupons are available
What do you know about the code changes that were just introduced into the codebase? When will you notice if something goes wrong?
Stable, Secure, and Affordable Java
Azul Platform Core is the #1 Oracle Java alternative, offering OpenJDK support for more versions (including Java 6 & 7) and more configurations for the greatest business value and lowest TCO.
Do you want your ad here?
Contact us to get your ad seen by thousands of users every day!
[email protected]Git Archeology: Go Back & Forward in Time
Most people will start with using "git blame" (or the respective functionality within their IDE/editor). But on most non-trivial projects, you usually end up with a refactoring commit, a rename, or a trivial cross-project fix like switching to another assertion library. At first glance, we only see the most recent changes, not the most important ones. We need to carefully remove layer by layer of sand and dirt that has been swept over the real changes to unearth them.
The other day, I went grocery shopping. While waiting in line, I thought about some struggles I had in a test I wrote earlier that day.
When it was my turn, the cashier scanned my items and said what I owe him. And I just gave him my whole wallet. He stared at me blankly and gave it back. A little confused for a second, I took out my card, paid, and left the store. And at that point, it hit me what was wrong with my test.
Instead of giving the cashier our whole wallet, let’s just give them what they need. Not more, not less.
Sometimes, you need to make code more trivial to see the higher-level patterns that solve the issue at hand more elegantly.
Working on language-specific tooling exposes you to all kinds of edge cases and delicate details and language has to offer. Some of them are well known and generally seen as “unprofessional” (hello goto). Others are actually not known at all. And with all due respect, I quite enjoy discovering the edge cases of the language syntax – a lot of times to confuse my co-workers who think they know the Java Language Syntax.
And given I love a good puzzle (especially the Java Puzzles), let’s try a puzzle but using the Java syntax only, without any runtime behavior.
The hottest #Java unconference in the world is coming back 27-31 July 2026 (starting evening of 26th). Deep discussions about Java and life. We are making some seats available using a lottery system. Draw will be on Friday the 20th Feb. Sign up here: https://www.jcrete.org/lottery
Confession: I usually lose the Flow switching between Quality Gates and Code 📉😅
But I connected @claudeai + #SonarQube via #MCP
Verify & Fix vulnerabilities without touching the mouse.
Zero context switching. Pure flow. 🚀
https://foojay.io/today/claude-code-sonarqube-mcp/
#Java #AI @foojayio
Hola Java devs! 👋 The #SonarQube AI Code Assurance #article is LIVE on @foojayio ! 🎉
Stop just finding bugs. 🛑 Use SonarQube's new AI "Magic Button" to auto-fix them instantly! 🤯🪄
Crush that tech debt fast. 🚀☕️ #Java #AI @SonarSource
https://foojay.io/today/sonarqube-part-4-ai-code-assurance/