Code that changes together, stays together
Most of us are familiar with clean/layered/onion architecture - the tried and tested approach where code is organized in distinct layers with clear abstractions like controllers, services, and repo...
Most of us are familiar with clean/layered/onion architecture - the tried and tested approach where code is organized in distinct layers with clear abstractions like controllers, services, and repo...
Writing good code feels like playing with LEGO® bricks—it’s all about connecting well-designed pieces to build something amazing. Just as LEGO bricks click together perfectly, well-structured code ...
In this article, I share the lessons and insights I’ve gained about change. Developing a clear understanding of the nature, impact, and value of change has given me greater confidence and enabled m...
One of Kotlin’s most powerful features is its approach to concurrent programming through coroutines. At the heart of this system lies a concept called “cooperative cancellation” - a mechanism that ...
In Kotlin’s type system, three special types play crucial roles in different scenarios: Any, Unit, and Nothing. Let’s explore what makes each unique and when to use them. Any Any is the root of K...
In this article, I’ll show you how to effectively model value objects in Kotlin, addressing two key challenges I’ve encountered in domain modeling. Let’s start with a common scenario. Consider thi...
While searching for a minimalist approach to creating web servers, I discovered http4k, a remarkable HTTP toolkit that caught my attention. Written in pure Kotlin, http4k stands out by offering a l...