1. Can you spot the issue in this Koin code?

    In the code below we have initialization of a Koin module along with the declaration of dependencies it injects. 💉 🔍 Your task is to find the issue and share it in the comments! I'll share a post with an explanation in two days. 💡 Hint: this problem applies to all DI frameworks.

  2. Memory leaks cost you money. Literally.

    As mobile devs, we often don’t care how much memory our app uses — as long as we don’t hit the dreaded OutOfMemory exception. Let’s be honest: we do care as professionals, but if the app consumes 100 MB more than it should, it doesn’t hurt us. The app runs on our users’ phones — we’re not the ones paying for the extra RAM. Well… I recently learned to care the hard way with my Telegram Finance Bot. Yesterday, Railway messaged me that my bill doubled over the last two weeks. I got curious - wh

  3. I just published a new video on Kotlinx Serialization + Ktor 🚀

    I just published a new video on Kotlinx Serialization + Ktor 🚀 In this video, I'll be covering: ✔️ What Kotlinx Serialization is ✔️ How does serialization work in general ✔️ The advantages over other libraries like Moshi, Jackson, and Gson. ✔️ Some basic features of Kotlinx Serialization ✔️ 💻 Additionally, we'll build a KMP note-taking app that makes actual network requests and serializes data.

  4. What if I told you that you don’t need to use expect/actual in Kotlin Multiplatform?

    Platform-specific Koin modules can do the job better. Expect/actual is great when your project is small. However, as your codebase grows, managing platform-specific dependencies quickly becomes a headache. That’s where Koin modules shine. 💪 They let you replace expect/actual with a more flexible and scalable approach — keeping your architecture nice and clean. Here's my KMP project where I implemented this approach. See the slides with explanation below.

  5. How I traumatized myself by storing all the data for my app locally.

    Back when I started programming 10 years ago, I traumatized myself by storing all the data for my financial app locally. Yes, you read that right — I had an app in production, and all of its data lived on the device.It was my first app, called "Daily Budget", and I uploaded it to Google Play just in case someone else was facing the same money-tracking struggles I was. To my amazement, it got around 10,000 downloads. But what those poor souls didn’t know is that all of their data was stored onl

  6. Code coverage is a bad metric

    0:00 /0:58 1× 100% test coverage… sounds safe, right? Wrong. Here’s why your coverage report might be lying to you: Unfortunately, test coverage does not accurately reflect the extent to which the code is tested. All it does is show the amount of lines of code executed. It does not indicate that the functionality under test is actually correct. In fact, you can achieve 100% of test coverage without actually testing anything. How? By simply not doing a

  7. Things I have never shared in public, part 1.

    If I were to judge my technical level - I would say I’m an average engineer. I’m a senior engineer, but this seniority comes from experience, grueling + slow studying and a billion mistakes I made along the way - not because I learned quickly or can comprehend complex ideas easily. I’ve always been amazed and jealous of people who could understand hard things swiftly. Very often, I would get roles where I felt I wasn’t ready and had to learn new things on the job. I would also get stressed beca

  8. Understanding engine differences, limitations and configurations + KMP integration.

  9. Comparing Flutter, KMP, and React Native in 2025. How They Work. Advantages and Disadvantages.

  10. Instead of looking for that latest AI tool, learn things that genuinely make you productive.

    1. Learn how to blind type. If you’re still looking down at your keyboard when typing - you are much slower than you can be. There's a bunch of websites for this. Here is one, for example. 2. Learn Vim (or emacs). Ever since I learned VIM, I rarely touch the mouse. Editing, navigation, commenting, copying, deleting - Vim is the answer There’s a website where you can practice that too - vimgolf.com . There's also a wonderful IdeaVIM plugin that you can use in AS and IntelliJ. 3. Learn IDE shor

  11. We've all heard of extension functions in Kotlin, but have you used an infix function?

    An infix function provides better readability for operations that require two arguments/objects. It also operates the same way as an extension function. This means you can reference the fields of the receiver (in this example it's the Session class) implicitly without calling "this". In the example below, I use the belongTo() function both with and without infix notation. As you can see, the infix function removes the extra parentheses. Infix makes expressions a bit more readable, and it can m

  12. 𝗦𝗵𝗼𝗿𝘁𝗲𝗻 𝘆𝗼𝘂𝗿 𝗳𝗲𝗲𝗱𝗯𝗮𝗰𝗸 𝗹𝗼𝗼𝗽 𝗳𝗼𝗿 𝗳𝗮𝘀𝘁𝗲𝗿 𝗿𝗲𝘀𝘂𝗹𝘁𝘀!

    This actually applies everywhere in life - not just in programming. But in programming - it’s crucial to shorten your feedback loop. Recently, I’ve been working with some obscure Google services - Google Play Asset Delivery and Google Play Feature Delivery. Both are not very popular services and the documentation is kind of terrible (didn’t expect that from Google tbh). Here’s the problem, though - you can’t debug the code with these services. Because you have to bundle the assets and the modu