System Design #3: Load Balancers — How They Work

In the previous article, you learned about horizontal scaling — adding more servers to handle more traffic. But when you have multiple servers, how do you distribute traffic across them? That is what a load balancer does. It is one of the most important components in any scalable system. What is a Load Balancer? A load balancer is a device or software that distributes incoming network traffic across multiple servers. Think of it as a traffic director at a busy intersection. ...

May 24, 2026 · 11 min

System Design #2: Scalability — Horizontal vs Vertical Scaling

In the previous article, you learned what system design is and how to approach any design problem. Now let us talk about the most fundamental concept: scalability. Scalability is the ability of a system to handle more work by adding resources. Every system starts small. The question is: what happens when it needs to grow? What is Scalability? Imagine you own a coffee shop. On Monday, you serve 50 customers. Your single barista handles it fine. But on Saturday, 500 people show up. What do you do? ...

May 23, 2026 · 10 min

System Design #1: What is System Design? Why Every Developer Needs It

You know how to write code. You can build features, fix bugs, and ship apps. But when someone asks you to design a system that handles millions of users, you freeze. This is what system design is about. It is the skill of building software systems that work at scale. And it is not just for senior engineers or job interviews. Every developer needs it. This is the first article in the System Design from Zero to Senior series. We will start from the basics and build up to designing real systems like URL shorteners, chat apps, and video streaming platforms. ...

May 23, 2026 · 9 min

AI-Native Apps: How to Build Applications with AI as Core Logic (2026)

Most “AI apps” in 2023-2024 were wrappers. Take a text box, send it to ChatGPT API, display the response. That was it. In 2026, a new category is emerging: AI-native apps. These are applications designed from the ground up with AI as the core logic — not an add-on feature. The difference matters. And understanding it will change how you build software. What is an AI-Native App? An AI-native app is an application where AI is the primary logic engine, not a helper feature. ...

April 8, 2026 · 8 min

KMP Tutorial #20: Migrating an Existing Android App to KMP — Step-by-Step Guide

You have an existing Android app. It works. Users like it. Now the team wants an iOS version. Rewriting from scratch in Swift takes months. Kotlin Multiplatform lets you share the business logic and add iOS on top, without rewriting everything. In this final tutorial, we cover how to migrate an existing Android app to KMP. This is not a “rewrite from scratch” approach. It is a gradual migration — move one layer at a time, keep the Android app working at every step, and add iOS when the shared module is ready. ...

April 7, 2026 · 11 min

KMP Tutorial #11: Clean Architecture in Kotlin Multiplatform

You have learned Ktor for networking, SQLDelight for databases, Koin for dependency injection, and shared ViewModels. You have all the building blocks. But how do you organize them? Without structure, your project becomes a mess. Networking code mixed with UI logic. Database queries inside ViewModels. Platform code scattered everywhere. Clean Architecture solves this. It gives you clear layers with clear rules about what goes where and what can depend on what. ...

April 4, 2026 · 9 min

KMP Tutorial #10: Shared ViewModel in Kotlin Multiplatform

On Android, ViewModels hold UI state and survive configuration changes. On iOS, ObservableObjects do the same job. Two platforms, two patterns, two codebases. But the logic is often identical. Loading a user list, handling errors, managing form state — the business logic does not change between platforms. Only the UI does. With KMP, you can write your ViewModel once in commonMain and use it on both Android and iOS. Since androidx.lifecycle:lifecycle-viewmodel version 2.8, ViewModel officially supports Kotlin Multiplatform. ...

April 4, 2026 · 7 min

Jetpack Compose Tutorial #9: ViewModel — Managing Screen Logic

In Tutorial #5, we learned about remember and mutableStateOf. They work great for simple state. But they have a big problem — when your app needs to load data from a database or API, where does that logic go? Not in the Composable. Composables are for UI, not business logic. That is what ViewModel is for. What is ViewModel? ViewModel is a class that holds your screen’s data and logic. It survives things that destroy and recreate your Composable — like screen rotation or system theme changes. ...

March 22, 2026 · 8 min

Jetpack Compose Tutorial #10: MVI — Keep Your App Simple and Clean

Your app is growing. Your code is getting messy. Let’s fix that. Jetpack Compose makes building Android UI easy. But here is the problem — when your app gets bigger, things get complicated fast. Buttons, loading spinners, error messages… suddenly your code is everywhere. MVI can help you organize all of this. In this guide, you will learn: What MVI means (in plain words) Why it works so well with Jetpack Compose How to build a real example, step by step Mistakes you should avoid Let’s start. ...

March 14, 2026 · 6 min