Inversion of Control (IoC) Explained | Spring and Clean Architecture

Inversion of control is one of the most important concepts in object-oriented programming that forms the base of popular architectures like the onion, hexagonal and clean architectures. In this article, I’ll answer the following questions: If you prefer, you can also find the same content in explained in video with the aid of animations. Let’s […]
How to secure a Kubernetes Nginx Ingress with Basic Auth

There are scenarios where we want to expose services outside our Kubernetes cluster that do not have proper authentication and authorization baked in. In these particular cases, it is possible to enable Basic Auth at the Ingress with few simple steps. Note that this tutorial is specific to the Nginx Ingress Controller. Other ingress controllers […]
Kubernetes Architecture Explained
How does Kubernetes work? And what makes it so successful? Despite its popularity, few software engineers have a good understanding of the inner mechanisms of Kubernetes such as declarative APIs and control loops. In this post, I’ll break down the Kubernetes architecture and highlight key aspects that have made it the leading solution in the […]
EP7: 5 Tips for Using ChatGPT in Domain-Driven Design

I’m back! During my absence from the newsletter these past months, I’ve been working very hard and learning a lot along the way. In particular, I’ve improved the way I leverage tools like ChatGPT in complex areas like Domain-Driven Design (DDD). In this episode, I’ll share with you 5 tips that will allow you to […]
How to integrate cert-manager with Let’s Encrypt and Cloudflare

If you’re looking to automatically issue and renew certificates using cert-manager and Let’s Encrypt for a domain record managed and proxied by Cloudflare using Full (strict) TLS, you’re in the right place. The process is straightforward, and you’ll have everything set up in under 5 minutes. Install cert-manager Ensure that cert-manager is correctly installed on […]
EP6: Entities vs Value Objects: Which one is better?

Deciding whether something should be an entity or a value object can be tricky even for developers experienced in domain-driven design. In this issue, I’ll clarify the differences so we understand these concepts once and for all! Let’s get started! Entities and Value Objects as Classes Entities and Value Objects represent tangible and intangible concepts […]
EP5: AI Coding Assistants, Eventual Consistency, Spring Boot and GraalVM

It has been almost two months from my last newsletter issue, so there’s lot of ground we need to cover! Before we start, I want to apologize for not maintaining the regular cadence of the newsletter. However, as I mentioned on LinkedIn, my full time job demands most of my focus and sometimes eats into […]
Spring Boot and GraalVM Native Images: A Match Made in Heaven?

In this article, I’ll share my experience with Spring Boot and GraalVM Native Images. We’ll compare ‘Just In Time’ and ‘Ahead Of Time’ compilation, explore Spring Boot’s support for both, and determine if Spring Boot and GraalVM are a match made in heaven or hell. Let’s dive in! GraalVM GraalVM is an advanced JDK capable […]
Is the NEW JetBrains AI better than GitHub Copilot? | My AI Setup July 2024

On the first of July, JetBrains announced improved code completion in their AI Assistant, so I subscribed to test it out and save you some time and money. Is it going to be better than Copilot? Let’s discover it in the next few minutes! Setting up To try out the improved AI Assistant, you need […]
Eventual Consistency for Beginners

In this article, we will answer the following questions: What is eventual consistency? Is it better than strong consistency? And do we have any other option? Let’s discover it in the next few minutes! Strong Consistency Defined Strong consistency guarantees that read operations receive always the most recent data. Let’s imagine we are storing a […]