Blog Layout

Busting Myths, Building Futures: A Conversation with Cay Horstmann on Java and Machine Learning

In our ongoing series of interviews with the movers and shakers of the software world, we bring you a conversation with Cay Horstmann, a towering figure in the Java community and a respected academic and entrepreneur. Known for his prolific contributions in the form of textbooks, online content, and courses, Cay has been instrumental in shaping the Java education landscape. …

Read More »

Getting Started With Apache Camel On Jakarta EE 10

Apache Camel is an open source enterprise integration framework that helps you connect different systems and applications together with as little effort as possible. It provides a simple and powerful way to define and implement message-based routing and mediation rules. It is an implementation of the patterns described in the book Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf. …

Read More »

Building for Failure: Best Practices for Easy Production Debugging

Before going into the content of this post, check out my new book which launched last week! Quite a few years ago I was maintaining a database-driven system and ran into a weird production bug. The column I was reading from had a null value, but this wasn’t allowed in the code and there was no place where that value …

Read More »

Build Rot: The Hidden Technical Debt in Maven and Gradle Builds

Discover ‘Build Rot’, the hidden technical debt in Maven and Gradle builds. This article explores the impact of Build Rot on build speed and test times, offering strategies for enhanced observability and Developer Productivity Engineering to optimize build processes. Technical debt is a constant companion in the complex world of software development. It’s the price we pay for quick fixes …

Read More »

SnakeYaml 2.0: Solving the unsafe deserialization vulnerability

In December of last year, we reported CVE-2022-1471 to you. This unsafe deserialization problem could easily lead to arbitrary code execution under the right circumstances.  In the deep-dive blog post “Unsafe deserialization vulnerability in SnakeYaml (CVE-2022-1471)”, I explained the problems in this library and how it could be executed. The gist of the problem was that by default SnakeYaml parsed the incoming …

Read More »

How We Developed the Eclipse OpenJ9 CRIU Support for Fast Java Startup

Checkpointing and restoring the JVM makes applications run faster because all the startup work is done before deployment. This means that in serverless cloud applications, the end-user of the application perceives no delay when the application starts. You can try it out now with your own apps on Open Liberty with Eclipse OpenJ9. But if you want to know more, …

Read More »

Contributing to Open Source Software: Creating a Pull Request

In this tutorial, we are going to take a look at contributing to Open Source Software, specifically how to do a pull request (PR). We will look at forking and cloning the project, making the changes, committing and pushing these changes, creating the pull request, the review and hopefully merge of your PR. The same process may apply when making …

Read More »

JDK Safari: How To Find Hidden Tools in the JDK

We all have some hobby, be it sports, fishing, playing games or building compilers. One of my hobbies is regularly searching the JDK for new Java classes with executable main methods. How come? Many years ago, during my forays through the JDK sources, I first encountered a class with a main-method I didn’t know about. That was in 2007 (oh …

Read More »

Dive into the OpenJDK: Top 10 Reads on Foojay.io

Foojay.io is a community platform dedicated to the needs of Java developers (and beyond, e.g., Kotlin) who use OpenJDK and related technologies. It serves as a central hub for sharing knowledge, resources, and tools related to Java and OpenJDK. The platform offers a wide range of content, including articles, tutorials, and insights from industry experts and Java enthusiasts. Whether you’re …

Read More »

Effective Coding with Java Observability

Things you can do right now to learn new and valuable things that can improve your code.  There are many common mistakes I’ve seen repeated over the years while trying to make observability initiatives successful. However, the most critical and fundamental of these organizational stumbles is the irresistible infatuation with technology and toolings themselves.  It should not come as a surprise. …

Read More »