Skip to main content

Blog

Technical writing about Kotlin, backend engineering, and software architecture. Posts are being migrated – check kotlinbackend.com for existing content.

XKCD: From Tile to Picture - Seeing the Full Image

Table of Contents

Toggle

Introduction

If there’s one thing I can say about myself, it’s that I love challenges related to software programming. They don’t need to be meaningful or even useful, but I enjoy the challenge. That’s why when I saw this message on my LinkedIn, I had to take on the challenge!

How to Fix Misconfigurations in RedisTemplate

Table of Contents

Toggle

Introduction

Our story begins with a colleague and me trying to debug an issue with our project for a few hours. We needed to fetch a value from Redis storage, but whenever the service ran, the fetched value was null. Despite our efforts, we couldn’t find a solution on the internet, and to make matters worse, our code was actually covered by tests that had all passed!

[Interview Questions] Concurrency vs. Parallelism: Decoding the Simultaneous Illusion

TL;DR - What are the differences between concurrent and parallel programming?

One of my most successful posts so far is a detailed explanation of my favorite interview question (see How does HashMap work in Java? for more details). As a result, I’ve decided to create a series of posts breaking down more questions. All the questions that will be answered during this series have been used in my current employer’s hiring process.

Real-Life Problem Solving: Lessons from My Engineering Principles

My employer announced a few months ago that any employee who works for three years or more is entitled to a sabbatical. This sabbatical is a fully paid one-month vacation of your choice. Since my wife and I had accumulated a significant number of vacation days, we decided to embark on a two-month trip to Asia—a destination we had long desired to visit. In this post, I will describe step by step how I applied methods from my day-to-day work as a software engineer to solve real-life problems.

How to Use OpenApi to Build a Robust RESTful API

Editor’s Note: This post was originally written by me and published on SumUp’s blog. However, a lot has changed since then. I am no longer working for SumUp, OpenAPI has released two major versions, Spring Boot has had a major release, and even Gradle has had multiple major releases. Not only that, but my writing skills have improved dramatically since then, and over time, I have found some small mistakes in the original article. Since the original article is one of my most successful, I decided to rewrite it and publish an updated version.

Create a Custom Spring Boot App Banner

Today, I’d like to share a fun feature of Spring with you. It’s not new or crucial, but it’s definitely enjoyable!

Normally, when you launch your Spring Boot app, you see a standard banner in the logs like this:

Spring Boot Banner

But have you ever thought about replacing that Spring banner with your own custom banner? If you have, then this article is for you!

To begin, let’s visit https://patorjk.com/, a website that helps us create custom text. You can enter the desired text for your log and choose from a variety of fonts. For example:

How does HashMap work in Java?

As an interviewer, I often ask the question about how HashMap works in Java. It helps me assess a candidate’s understanding of data structures, JVM internals, and their problem-solving approach. I’ve encountered many candidates, including juniors, mid-levels, and seniors, who couldn’t answer this question correctly. So, I decided to share the answer with everyone.

In this article, I will explain the HashMap question step by step.

What is the contract between the equals() and hashCode() functions in Java?

How to Break Your HashMap in Less Than a Minute

TL;DR: Never use mutable objects as keys in your HashMap!

After I wrote my article How does HashMap work in Java?, a few people suggested more topics related to HashMap. As a result, I decided to create a short series of articles about it.

In today’s article, we will discuss JVM HashMaps and how they can be easily broken if not used carefully. It’s important to note that while we’ll be focusing on the JVM world, the same principles apply to most modern programming languages.