Broken Authentication Explained | OWASP API2:2023

Despite many developers and teams feel confident about the security of their APIs, Broken Authentication is still one of the top API security risks according to the Open Worldwide Application Security Project (OWASP). In this article, we will understand why this issue is still so common and how we can prevent it in our systems. […]

The State Design Pattern Explained

The State Design Pattern is a behavioral design pattern that allows an object to change its behavior when its internal state changes. It was introduced in the famous “Gang of Four” book titled “Design Patterns: Elements of Reusable Object-Oriented Software“. By the end of this article, you will have a clear understanding of this pattern […]

GitHub Copilot vs JetBrains AI Assistant vs Duet AI

This article complements “Beware of AI Coding Assistants” by giving more insight on the comparison I did between GitHub Copilot, JetBrains AI Assistant, and Duet AI by Google. As I already mentioned in the other article and related video, I decided to create a subscription with GitHub Copilot because it’s far superior when it comes […]

How to fix MicroK8s restart loop

If you have enabled the cis-hardening plugin in your microk8s cluster, you might experience instability issues, especially after a node restart. In this article, I will explain the cause of this issue and how to fix microk8s in this scenario. Symptoms Sometimes it is not obvious that we have an issue with our microk8s configuration. […]

The Clean Architecture Explained

This article is a transcription of my video on the Clean Architecture by Robert C. Martin. It is part of a series of videos where we analyze some of the most popular architecture styles such as the Onion Architecture and the Hexagonal Architecture. Let’s get started! Clean Architecture Motivation In simple terms, the clean architecture […]

The Onion Architecture explained

Whether you are a junior or senior developer, it can be difficult to understand what the hexagonal, clean, or onion architectures are. But, most importantly, it’s difficult to figure out how to use them when coding a real application. In this video, we will start by demystifying the concepts behind the onion architecture and figure […]

Event Sourcing and CQRS Explained (Are they worth the hassle?)

YouTube Video on Event Sourcing and CQRS Event Sourcing and CQRS are possibly the most fascinating architectural patterns in the software world, especially when combined with an event-driven architecture (EDA). In this article, we explain both patterns highlighting advantages and disadvantages of these approaches. In the conclusion, I will give you my personal opinion on […]

Backend for Frontend Pattern Explained

In this article, I cover the “Backend for Frontend” pattern mentioned by Sam Newman in his “Building Microservices” book. You can also find the same content in video format on my YouTube channel. Introduction There are times when the typical general-purpose API backed by a microservice is not enough to ensure the smooth integration of […]

EP2: Inefficiencies of Software Development

Why is software development so slow and costly? There is always a stage during the lifetime of a software system where development efficiency decreases significantly. Everything feels slow and costly. Teams that previously delivered features within a couple of weeks start requesting months to complete newly prioritized features. Tension builds between business and development. The […]

EP1: The COP Theorem for Success (my answer to McKinsey)

McKinsey article on measuring individual software developer productivity ignited many souls in the software engineering world. This is my perspective as a long-standing software architect. If you haven’t heard yet about the McKinsey article “Yes, you can measure software developer productivity”, you must be living under a rock! In fact, it caused quite a stir […]