
Vadym Yaroshchuk
I am a Software Engineer and architecture enthusiast based in Munich. My main focus is system design and the Kotlin ecosystem, where I enjoy solving the structural puzzles that others often overlook. I use this space to explore how to build software that lasts β focusing on clear contracts, intentional design, and code that speaks for itself.
Summary
Notes

Failures We Don't Model Correctly
We often treat exceptions, nulls, and Results as mere tools, swapping them based on style or habit. But every choice you make β throwing an error, returning a safe type, or silently failing β actually defines a hidden contract with the caller. This article explores why 'handling errors' is really about managing broken promises, and how to stop lying to your users (and yourself) about what your code actually does.

Semantic Typing We Ignore
We've all stared at a function signature, unsure what it actually expects, only to spend time digging through implementation details because the documentation was missing. But what if the problem isn't the docs, but how we write the code itself? This exploration of Semantic Typing in Kotlin looks at how to move from a "this is just a string" mentality to a "this is a concept" approach, turning subconscious design habits into clear rules for building better, self-documenting domain models.

Package Naming Nobody Cares About (But Should)
Ever wondered why package names in code often don't matter β but maybe they should? Until just recently, apart from subconscious decisions, I couldn't fully explain when it makes sense to create a package and when it doesn't. As a result, I tried to draft meaningful explanation and rules for this matter.