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 want 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 information 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 for that, we use the documentTitle as the…


https://gradle.com

This week I had to create a simple Gradle plugin just to get to know how all the things work together in such a plugin. In our company we have special templates for that, but in this article I will show you how to create the plugin without any templates from scratch.

Why we should create Plugins

If a project grows bigger and bigger, after a certain amount of time, it is a good idea to relocate some parts of the logic into a plugin. This has the effect of cleaning up the main project and whats even more important, it makes the logic available…


Jason Longhttp://git-scm.com/downloads/logos

Last week I had to update the version of Gradle Enterprise in a template and downstream the changes to all its implemented projects. I was fascinated how useful this is, especially if you have many projects that build on the same base. I only had to update the template and downstream the changes but in this article I will also describe how to create one of these templates and how to use it in a project.

Why to use a Template

A template has the purpose of sharing boilerplate code across the whole codebase, which reduces the time needed to start a new project and…


First of all, why am I writing this article? I recently had a problem with a small project, that suddenly grew into a big one and got complexer and complexer. Since this project contained some of the first lines of code that I have ever written in Kotlin, it got pretty messy at the end. So, whats the problem, just fix these codesmells and you’re good to go, right?.. Not really. The main problem, that caused most of these codesmells are actually architectural design decisions. Actually, at the beginning of this project, I didn’t really invest a lot of time…


Photo by Jack Sloop on Unsplash

Last week I was looking trough some of my older projects and stumbled upon some really ugly, old code. I’ve written this code when I was just starting out with the Kotlin programming language. In this time, I was not aware of all the Kotlin special functions and coded that stuff all by myself and the code became pretty fast pretty unorganized. In this article I want to show you some of the most important and coolest Kotlin special functions.

Collection functions

1. Create a new Collection

These functions are all used to instantiate different types of collections.

// Empty Collection
emptyList, emptyMap, emptySet
// Read-only Collection
listOf


Photo by Geran de Klerk on Unsplash

This week I was working in pair programming and sometimes in the mob. But what is this whole concept of coding together? Isn’t it just a slightly better naming for: “Yes! Somebody else makes my job!”? Are we really more productive this way?

These were the questions that I had, when i first started with pair programming and working in the mob.

What is Pair Programming

Pair programming is the art of coding together in a really efficient and productive way. The concept of pair programming is pretty simple. Someone is coding while the other one is just saying the coder what to do.

Manserpatrice

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