Kotlin

1 min read
I started using Kotlin in 2020. At the time, I was moving away from Java for Android and PHP for backend work, switching to Kotlin for both.
Like many Java developers, I found Kotlin a bit weird at first and didn't really like it. But as time went by, I completely changed my mind. Now, it's hard to imagine going back to Java or PHP for my own projects.
A few things made the difference for me: the Multiplatform philosophy, how coroutines simplify concurrency, and small features like extension functions. Kotlin's elegance even changed how I think about code structure and architecture.
It's been almost six years now, and every article I've written so far has been about Kotlin. I might write about other languages in the future, but Kotlin is definitely the language that helped me grow the most as a developer.

Linked Mentions10

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.

Kotlin Coroutines are not just about concurrency

Is concurrency the only use for Kotlin Coroutines? Explore the versatile applications of coroutines beyond asynchronous tasks, from foundational primitives to advanced techniques in Sequences, deep recursion, and UI frameworks like Jetpack Compose.

Kotlin Multiplatform is now stable – What's the Impact?

Kotlin Multiplatform has officially reached stability. Discover the implications of this milestone for cross-platform development, its advantages for developers and businesses, and the exciting new opportunities it unlocks in the Kotlin ecosystem.

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.

Education

A look into my academic path, mentoring experiences, and the roles I took beyond just being a student.

Projects

Explore a journey of innovation and learning through personal projects, from early ventures in no-code social networking to ambitious multiplatform applications. Discover the stories, challenges, and lessons learned behind each creation.

Unlinked Mentions9

How this Garden works

A guide to the advanced features of this knowledge base, including the 3-pane layout, tab system, and command palette.

Compiler, Transpiler, Interpreter and JIT

Ever wondered what actually happens to your code after you hit 'run'? We break down the fundamental differences between compilers, transpilers, and interpreters, and how modern JIT technology blurs the lines.

Finding the Right Balance in Gradle Dependency Strategy

Mastering Gradle dependency management is crucial for software engineering. This article explores various strategies for declaring dependencies, plugins, and versions, discussing their merits and pitfalls. It covers topics like updating dependencies, security vulnerabilities, and centralization, and introduces solutions such as properties, constants, version catalogs, and BOMs to achieve simple, secure, and maintainable build configurations.

Gradle — From Newbie to Strong Fundamentals

New to Gradle in Kotlin? This guide breaks down core concepts from project setup to advanced configurations. Discover how to leverage Gradle for multi-module projects, manage dependencies, and avoid common pitfalls for robust and maintainable builds.

Android

Random stuff that is applicable in Android context

Experience

Explore my professional contributions at Jochen Schweizer mydays Group and Ajax Systems, where I tackled web development, Android engineering, and system optimization.

Programming

Everything about programming

Summary

Quickly get to know me better.

Tech Stack

Uncover the evolution of a developer's linguistic landscape, from the first lines of code to mastering modern paradigms. Delve into a versatile tech stack, explore diverse architectural choices, and see how different languages shape innovation across mobile, web, and multiplatform realms.