Photo by Petri R on Unsplash

Recently I had the problem, that I needed to log some warnings for my application. Since I normally work test driven, it was pretty important to me, that I could create some unit tests for it. My test engine is JUnit 5. I found the logging library Log4J, which has a new name since version 2 (Log4J2) and used this one.

What is Log4J2?

Apache Log4j 2 is an upgrade to Log4j, which is pretty common in the industry, that provides significant improvements over its predecessor, Log4j 1.x, …

Photo by JJ Ying on Unsplash

A few days ago, I needed to create a new Project without any templates from scratch, that should be able to use Micronaut as a serverless Framework. My application is written in Kotlin. In the end, It should work like a webserver, that gets deployed on Kubernetes. First of all, There are three key components. The first one is the Application itself. This application needs to be converted to a docker image. The next part is the Pipeline. It needs to run some automated tests and build the whole image if the tests are successful. It should also push the…

Photo by David Knox on Unsplash

In this article, I want to talk about what Helm is, how to install and use it, and how to push its images to artifactory. This sounds like a whole lot of stuff, it actually is, but it is a really important step in CI/CD, so I will try to explain it as good as I can.

What is Helm

In short, Helm is a package manager for Kubernetes that allows developers and operators to more easily package, configure, and deploy applications and services onto Kubernetes clusters.

Helm has the opportunity to set variables for Kubernetes, which you can then assign to your…

Photo by Anja Junghans on Unsplash

What is Thymeleaf?

Thymeleaf is a dynamic templating engine for serverless applications like Micronaut or Spring. It is really useful if you want to create non static content that gets generated dynamically. Or with the words of the official website:

Thymeleaf is a modern server-side Java template engine for both web and standalone environments.

Thymeleaf’s main goal is to bring elegant natural templates to your development workflow — HTML that can be correctly displayed in browsers and also work as static prototypes, allowing for stronger collaboration in development teams.

With modules for Spring Framework, a host of integrations with your favourite tools, and…

A problem that i recently had was, that i needed to read the contents of some zipped files, which i didn’t wanted to unzip into temp, because i really only needed the content as a String. I had some Zip files, which contain a Metadata.yaml file with some informations like id or title in it. I wanted to read the content of the Metadata.yaml file and put the values into a data class, which is then stored inside a HashMap.

Some of my files don’t contain the Metadata.yaml file, so to compensate that, we use the documentTitle as the id…

Photo by Philippe Bout on Unsplash

Last week I wrote a story about arc42, a standard documentation template. When I was writing that post, it finally became clear to me how many different UML Diagrams there are. Since I was a little bit confused at the beginning and also slightly overwhelmed with all these different diagrams, I decided to write a new post just about that.

What is UML

UML, short for Unified Modeling Language, is a standardized modeling language consisting of an integrated set of diagrams, developed to help system and software developers for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for…

Photo by Noah Rosenfield on Unsplash

The first time I stumbled upon arc42 was, when I needed to document the architectural design of my own application. At the beginning I didn’t knew that there is a standardised solution to my problem and I was a little bit overwhelmed. I started reading about arc42 and I have to say, it really makes sense to use such a standard in documentation.

What is arc42 ?

Arc42 is a template for architecture documentation.

It answers the following two questions in a pragmatic way, but can be tailored to your specific needs:

  • What should we document/communicate about our architecture?
  • How should we document/communicate it?

Photo by Jon Parry on Unsplash

Sometimes, there are new software releases, that have new requirements to your IT-infrastructure, that you can’t just change in a matter of hours or days. Sometimes these infrastructure changes are much more difficult to realise than just using a slightly older version.

In my case I had the problem, that I needed to have Eclipse Neon installed on my MacBook. Our Eclipse Neon requires Java8 to run and doesn’t work with java9 or higher. The problem was, that the eclipse-installer, which should install and configure Eclipse Neon requires at least Java11 in its newest release. …

Photo by Tom Crew on Unsplash

Recently I had a problem, where I should get the last successful build hash of a Jenkins Job. For this I used a simple json api call via http and got a HttpResponse back. Now, the problem was, that I somehow needed to extract the value for the hash out of this HttpResponse. The first thing that came in mind was just to use substrings, but i recognised that this approach is not that save and future proof, if somebody changes something on the pattern of the json output. I needed a better, yet more programmatically solution to this.


Photo by Mildly Useful on Unsplash

Yesterday I had the problem, that I needed to log some events of my application in different log styles (different color, other order of information). I still wanted to use the same logger and didn’t wanna create a new one for each style. How to do that? With custom log levels.

What are log levels?

Log levels are used to differentiate different logs based on their importance. There are already some pretty useful log levels predefined by log4J.


Developer Experience Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store