Stefan Kreidel

Stefan Kreidel

10 Posts

I have 12 years of experience in software engineering, design, architecture and operation. I studied computer science at the University of Ulm in Germany before becoming a software engineer for Mercedes.

In 2022, I took over a position as software architect which caused me to question many of the patterns I “got used to” over the years. This led to many evenings and weekends doing research.

So why am I writing this blog?

Read it here!

Suspending Code Execution with Kotlin Coroutines

Using JVM threads efficiently can be difficult, especially if your application has blocking / waiting operations. This post explains how Kotlin Coroutines can be used to free a thread of a blocking task instead of waiting and how this can even lead to parallel code execution.

Using Kotlin Coroutines for Parallel and Concurrent Compute

Besides implementing non-blocking applications, Kotlin Coroutines can also easily be used for parallel or concurrent compute of code. This post not only explains how it can be done, but also how it is implemented on JVM level.

Kotlin Coroutines are not Threads. So why do they behave as such?

You oftern hear that 'Coroutines are like Threads but also different'. But if they are not threads, then what are they and how are they implemented on the JVM? This post will explain the basics.

Set Filesystem Creation Date to when Photo or Video was taken (Mac and Linux)

When importing or transcoding photos or videos, the new files' creation date is usually not the date when they were taken. This messes up some program's file sorting. So let`s fix it.

Copying EXIF Metadata (Mac and Linux)

Recover original medatada after transcoding or editing photos or videos.

Spring WebFlux: Executing Code in Parallel

Spring WebFlux is intended to optimize resource utilization if your application implements many blocking operations. It can however also be used to implement parallel compute like Java's CompletableFuture. This post explains how this can by done and why you SHOULD NOT do so.

Spring WebFlux Visualized: Threading and EventLoops

If EventLoops are fundamentally just threads, then how do they differ from traditional Java threads and how do they prevent your CPU from starving when many blocking operations occur at the same time?

Spring Web MVC + WebClient: How they work Together

Spring's new WebClient is part of WebFlux / reactive Spring. But it is recommended to be used for Spring Web MVC as well. This post explains how WebClient is implemented in a non-reactive framework.

Spring Web MVC Visualized: Threading and Servelts

An introduction to how Java threads are used to implement Spring Servlets in order to handle incoming and outgoing requests.

The first post I ever wrote!

So lets say you are interested in what the internet has to say? Then you are at the right place here! What this is about Some cool stuff obviously! echo "...