
Vadym Yaroshchuk
I'm a Software Engineer with 6 years of experience, mostly from personal projects. While my professional experience is limited, I've gained practical skills by working on various applications, focusing on Kotlin Multiplatform and client-server development. I enjoy solving complex problems, simplifying code, and sharing what I've learned through teaching and writing.
General info
- βοΈ English (B2+)
- π©πͺ German (B1)
- πΊπ¦ Ukrainian (Native)
- π³οΈ Russian (Native)
- Kotlin/Java
- PHP
- TS/JS
- Python
- Android
- iOS
- Web
- JVM (Desktop, Backend)
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.