Architecture

1 min read
At the very beginning, I viewed programming as the act of making things work. Nowadays, it's an integral part of me as an engineer.
Usually, when anybody asks me what kind of "programmer" I am, I always answer that I'm an "architecture" type of guy. It's something I always reflect on and try to get better at. My interest comes from the intolerance for ambiguity.
The biggest shift for me over the years is that I don't consider a codebase to be just a set of instructions anymore. My goal is to move away from implicit assumptions or "gut" feelings towards stable and logical rules (what I think of as mathematical guarantees for the system).
Main motivation for writing notes about Software Architecture is almost always rather personal — I get better at something when I'm trying to explain that "something".
You can find my notes related to the "Architecture" in "Linked mentions" below.

Linked Mentions7

UI shouldn't think about validation

How I structured validation in one of my projects

Failures We Don't Model Correctly

Why returning null, throwing exceptions, or wrapping everything in Result isn't just a style choice — it's a contract you define.

Semantic Typing We Ignore

Move from a 'this is just a string' mentality to a 'this is a concept' approach. This exploration of Semantic Typing in Kotlin turns design habits into clear rules for building better, self-documenting domain models.

Package Naming Nobody Cares About (But Should)

Why do developers often overlook package naming? Uncover its crucial role in code maintainability and discover how thinking beyond mere folders can lead to clearer responsibilities, easier navigation, and a more robust software architecture.

Digging Deep to Find the Right Balance Between DDD, Clean and Hexagonal Architectures

Finding the right architecture can be a puzzle. Dive into practical insights on balancing DDD, Clean, and Hexagonal principles to build robust, maintainable applications without over-engineering. Discover how to make these theories work for you.

ViewModel is not a place for your logic

Are your ViewModels doing too much? We explore the proper boundaries of ViewModel responsibility and why keeping them focused on UI state is key to a healthy, scalable architecture.

Extension-Oriented Design in Kotlin

Uncover the power of Extension Oriented Design in Kotlin. See how this elegant approach streamlines code organization, enhances existing classes, and provides solutions for common development challenges.