Java Ecosystem, Kotlin, Distributed Systems, Sociology of Software Development

Talk 'Best Practices for Unit Testing' at the KotlinConf 2018 in Amsterdam

Posted on Oct 15, 2018

Talk 'Best Practices for Unit Testing' at the KotlinConf 2018 in Amsterdam

On Oct 05, 2018, I held a talk about Best Practices for Unit Testing in Kotlin at the awesome KotlinConf in Amsterdam. I’m still overwhelmed by the packed room taking about 650 people. Thank so much for your interest! I’m also thrilled by the positive feedback on twitter. In this post, you can find the recording and the slides of my talk. The KotlinConf was an awesome conference. It was so great to meet the kind and open Kotlin community in person. Let’s carry on!

Kotlin and MongoDB, a Perfect Match

Posted on Sep 25, 2018

Kotlin and MongoDB, a Perfect Match

MongoDB’s dynamic schema is powerful and challenging at the same time. In Java, a common approach is to use a object-document mapper to make the schema explicit in the application layer. Kotlin takes this approach even further by providing additional safety and conciseness. This post shows how the development with MongoDB can benefit from Kotlin and which patterns turned out to be useful in practice. We’ll also cover best practices for coding and schema design.

Code Review Guidelines

Posted on Jul 31, 2018

Code Review Guidelines

Code reviews are a powerful mean to improve the code quality, establish best practices and to spread knowledge. However, code reviews can come to nothing or harm the interpersonal relations when they are done wrong. Hence, it’s important to pay attention to the human aspects of code reviews. Code reviews require a certain mindset and phrasing techniques in order to be successful. This post provides both the author and the reviewer with a compass for navigating through a constructive, effective and respectful code review.

Install Cairo and CairoSVG on an Alpine Docker Image

Posted on Jun 25, 2018

Install Cairo and CairoSVG on an Alpine Docker Image

I just wanted to convert SVG to PNG files with Python and the library CairoSVG. That was no problem on my Ubuntu system. But running the SVG converter script within a lightweight Alpine Docker container turned out to be problematic. Figuring out which libraries have to be installed up front took me some time. That’s why I like to share my findings here. Hopefully, it’ll save your time.

Convincing Your Management to Introduce Kotlin

Posted on May 29, 2018

Convincing Your Management to Introduce Kotlin

“Kotlin is great and I really want to use it. But how can I convince my management?” This is the most frequent question I get asked after a talk. In this post, I explain how we introduced Kotlin and show arguments, strategies and tricks that can increase your chances of success. I keep the fingers crossed for you!

Self-Contained Systems in Practice with Vaadin and Feeds

Posted on May 16, 2018

Self-Contained Systems in Practice with Vaadin and Feeds

The term Microservices is quite vague as it leaves many questions unanswered. Contrarily, a Self-Contained Systems subsumes concrete recommendations and best practices that can guide you to create an application which is resilient and independent. But how can we implement such a system? At Spreadshirt, we build an application following the recommendations of a Self-Contained System. In this post, I’ll show you which technologies we used and which challenges we faced.

Smooth Local Development with Docker-Compose, Seeding, Stubs, and Faker

Posted on May 1, 2018

Smooth Local Development with Docker-Compose, Seeding, Stubs, and Faker

Imagine you clone a git repo and try to start its application in your IDE. It fails. Why? The database is missing. After installing and starting a database manually you look at an empty application. There is no data in the database. Moreover, the application still doesn’t work as it requires an external service… The process of setting up a local development environment is often a journey of pain with many manual actions and implicit knowledge. How cool would it be, if we just have to call docker-compose up and the whole environment is automatically created locally containing nice dummy data?

Talk 'Kotlin in Practice' at the JAX 2018

Posted on Apr 26, 2018

Talk 'Kotlin in Practice' at the JAX 2018

On April 25, 2018, I held a talk about my favorite topic “Kotlin in Practice” at the JAX Conference in Mainz. I’m still impressed by the huge amount of people that have been interested in my talk (~ 350 folks). There weren’t even enough chairs for everyone. I’m still thrilled! Thank you so much! Also for the great questions during and after the talk.

Why I Moved Back from Gradle to Maven

Posted on Apr 2, 2018

Why I Moved Back from Gradle to Maven

“Maven is old school” they said. “Use Gradle instead. It’s the future of building Java applications” they said. Sounds like something you don’t want to miss. So I tried Gradle in two real-world projects. In this post, I like to tell you about my experiences with Gradle and why I finally migrated back to Maven. It’s a story about enthusiasm and disillusionment.

Talk 'Kotlin in Practice' at the JavaLand 2018

Posted on Mar 15, 2018

Talk 'Kotlin in Practice' at the JavaLand 2018

On March 13, 2018, I held a talk about “Kotlin in Practice” at the JavaLand Conference. The conference was awesome and 1900 people attended. I guess about 300 folks came to my talk although it was so early in the morning. That was awesome! Thank you so much! Special thanks go out to the guys that approached me after the talk and the kind tweets. I’m still euphoric. :-)