Introduction to Java Programming and Data Structures Head First Java Think Java Clean Code Pragmatic Programmer Effective Java Refactoring Java Concurrency in Practice Test Driven Head First Design Patterns Release It! Kotlin in Action Spring in Action Spring Boot in Action Cloud Native Java Spring Microservices in Action Learning Spring Boot 2.0 Personally, I am always on the hunt for good programming books. Books are an opinionated topic, therefore I am quite sure some people would disagree with this selection. Nonetheless let’s have a look at my opinionated selection of the best Java books to read in 2020. You might...
[Read More]
To All Businesspeople: Developers Need Space to Do Whatever They Want
This might sound really controversial, but I think developers should have some free time to experiment. To make it even more controversial, I believe that providing opportunities for paid experimentation is more beneficial than leaving developers to investigate tools and techniques exclusively during their leisure. Why should I pay my developers to do whatever they want? - Some Boss somewhere Developers It is generally acknowledged that developers need to stay up-to-date to be successful. For their career growth, they need to regularly sharpen their saw. Developers need to learn new things here and there, otherwise they could be in a...
[Read More]
Kotlin Features that Java Developers love
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.
Over the years, I have witnessed a lot of developments towards something we shouldn’t chase: Making people feel bad about using matured technologies and correlating confidence with skill. About using technologies In other sources, this observation was called Resumé-Driven-Development. “We’re consumers. We are by-products of a lifestyle obsession…” — Tyler Durden I think this is nothing totally new, to some degree I even share the opinion that this kind of development is shaping our industry. People have always been chasing to work with the latest tech. I remember the days when I heard a lot of Javascript Developers moaning that...
[Read More]
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]