Hey folks, over the last weeks, we had a discussion at work whether or not we should make Kotlin the default for our future Spring Boot application development. For now, we don’t have a decision but I think there are a lot of good arguments on both sides. Java is a battle-tested, multiple-decade old programming language. Kotlin is the new kid on the block. Let’s have a detailed look into what Kotlin really has to offer in comparison to Java. The following list is not by any means complete - these are just the things I found most important so... [Read More]
Implementing Retries using RabbitMQ and Spring Boot 2
This article is inspired by a solution we needed at work: We needed a way to retry asynchronous operations using Spring Boot and RabbitMQ. WHY? Sometimes it is necessary to execute certain operations decoupled from the rest of your business logic. We needed to send an update to an external system (e.g. an audit log). The update itself is not necessary for the operation of our own user flows. The user should not be aware of failures. This is why we decided to build it using messaging. Since the update is really important, we need to make sure that the... [Read More]
Spring Boot WebSocket Tutorial
Twitter WebSocket Stream with Spring Boot
Finally another technology tutorial! This time I want to talk about creating a WebSocket Service with Spring Boot 2 (without the usage of STOMP). If you don’t know about STOMP, nevermind - we will create a solution working with plain WebSockets supported by all modern browsers. In order to verify our setup, we also will create a minimal Web Frontend. This Frontend will consume the events sent via our WebSocket implementation. The full code can be found on GitHub, in case you need a quick reference or just want to copy parts over. What will we implement? When I first... [Read More]
You Are Not Your Kubernetes ...
... you're not how much code you have in repositories, you're not the follower count of your GitHub Profile, you're not the size of your Hadoop Cluster, you're not your fucking Tensorflow.
Jumping Ship for Career Progression.
Having a look at my LinkedIn Network, I realized there are a few ways of growing your Software Engineering Career. I am trying to keep my personal opinion out of the middle part and only get involved in the end of the article. Working for a Single Company There are plenty of people who only have worked for a single company. Maybe my network is a bit biased, since it contains a lot of people who not have finished their first 5 years. Most of them stayed in the same role or added/removed a prefix from their title (e.g. Senior,... [Read More]
You are not Google. You are not Netflix.
You are also not Spotify, Amazon, Apple, Microsoft, Facebook or one of several other big tech companies I could mention here. If I have excluded anybody reading this - I am sorry.Maybe you will still enjoy the read. For everyone else: This article is probably for you. To give you all some context: I am a Backend Engineer on a team that is developing an iOS/Android App which is live in around 40 countries. Currently, we are only responsible for the EMEA (Europe, the Middle East, and Africa) region. Why am I even writing this? I am trying to digest... [Read More]
Monolith vs Microservices
Over the years I read a lot of articles and stories about the differences between Microservices Architectures and Monolithic Architecture (Monoliths). Today I am about to tell you my own version. What is a Monolith i.e. a monolithic architecture? A monolithic application, let’s call it a Monolith, is an application delivered via a single deployment unit. Examples could be an application delivered as single WAR or a Node application with a single entrypoint. Example: Let’s make an example: A classic online shop. Our business boundaries are ORDERS, ITEMS, CUSTOMERS, SHIPPING and PAYMENT. Provided ways of interacting with the service are:... [Read More]
8 Lessons learned starting a Developer Blog
1. Find your purpose What is your reason to start a blog? Did you read on Reddit, Hackernews or another site that you need one as developer in order to be relevant? Are blogging developers getting paid better? Or do you want to showcase your latest work somwhere? Another thing you can do on a personal blog is to build an audience and get into selling courses or guides. Whatever it is - be aware of it and act accordingly. You want to build tutorials? Cool - write good ones and publish them. You want to build a portfolio of... [Read More]
10 Rules to live by as a Developer
1. It is about the people! Software needs to solve people’s problems. What really separates good from great developers is mostly their way of communicating with others and thinking in problems. 2. Make friends and be someone you would to have as a co-worker - Be positive! You are probably spending more time with your co-workers than with your loved ones. Make sure to make the best out of it, make friends at work and you will see that work is much more bearable. Also it is a lot more fun! Try to be the best version of yourself. Even... [Read More]
Spring Boot Integration Testing Done The Right Way
This article will be about writing proper Integration Tests with Spring Boot 2. In my opinion Integration Tests should be as similar as possible to the production environment. Due to this, an embedded H2 is not cutting it. I sat on this exact problem when bootstrapping our latest project at work. In the past, we just went with the embedded H2 and were quite happy. The only complaints we had: Sometimes we used a syntax which was working on H2 but not on our Production MariaDB instance. Mostly it was about creating indexes and tables within Flyway. Since our current... [Read More]