<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Chetan Gupta on Medium]]></title>
        <description><![CDATA[Stories by Chetan Gupta on Medium]]></description>
        <link>https://medium.com/@chetan-garg36?source=rss-54fbf878c2f4------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*V8n77m9874rpDH6NXO1FSg.jpeg</url>
            <title>Stories by Chetan Gupta on Medium</title>
            <link>https://medium.com/@chetan-garg36?source=rss-54fbf878c2f4------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 10:15:18 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@chetan-garg36/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[IntelliJ and Android Studio Are Dropping Swift. Where Do KMP Devs Write Their iOS Code Now? ]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://chetan-garg36.medium.com/intellij-and-android-studio-are-dropping-swift-where-do-kmp-devs-write-their-ios-code-now-3f5a54cf8288?source=rss-54fbf878c2f4------2"><img src="https://cdn-images-1.medium.com/max/1400/1*GhpIP016YA02EReLtPde3w.jpeg" width="1400"></a></p><p class="medium-feed-snippet">The Kotlin Multiplatform plugin is retiring Swift syntax and navigation. I traced the lineage back to AppCode, weighed the editor&#x2026;</p><p class="medium-feed-link"><a href="https://chetan-garg36.medium.com/intellij-and-android-studio-are-dropping-swift-where-do-kmp-devs-write-their-ios-code-now-3f5a54cf8288?source=rss-54fbf878c2f4------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://chetan-garg36.medium.com/intellij-and-android-studio-are-dropping-swift-where-do-kmp-devs-write-their-ios-code-now-3f5a54cf8288?source=rss-54fbf878c2f4------2</link>
            <guid isPermaLink="false">https://medium.com/p/3f5a54cf8288</guid>
            <category><![CDATA[kotlin-multiplatform]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[android]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[kotlin]]></category>
            <dc:creator><![CDATA[Chetan Gupta]]></dc:creator>
            <pubDate>Sat, 14 Nov 2026 03:43:21 GMT</pubDate>
            <atom:updated>2026-11-14T03:43:42.362Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Three Agents, One Android Repo, Zero Collisions ]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://chetan-garg36.medium.com/three-agents-one-android-repo-zero-collisions-98321be18771?source=rss-54fbf878c2f4------2"><img src="https://cdn-images-1.medium.com/max/1280/1*zTjx_oxaRtMJT2LBCv791w.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Running multiple AI coding agents on a single Android codebase sounds fast until they stomp on the same emulator and corrupt each other&#x2019;s&#x2026;</p><p class="medium-feed-link"><a href="https://chetan-garg36.medium.com/three-agents-one-android-repo-zero-collisions-98321be18771?source=rss-54fbf878c2f4------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://chetan-garg36.medium.com/three-agents-one-android-repo-zero-collisions-98321be18771?source=rss-54fbf878c2f4------2</link>
            <guid isPermaLink="false">https://medium.com/p/98321be18771</guid>
            <category><![CDATA[android-app-development]]></category>
            <category><![CDATA[git-worktree]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[mobile-testing]]></category>
            <category><![CDATA[ai-coding-agent]]></category>
            <dc:creator><![CDATA[Chetan Gupta]]></dc:creator>
            <pubDate>Wed, 11 Nov 2026 04:31:02 GMT</pubDate>
            <atom:updated>2026-11-11T04:31:02.814Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Why Instagram’s AI Agent 33% cheaper, and Yours burning AI token ]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://chetan-garg36.medium.com/your-mixed-view-and-compose-screens-are-burning-ai-tokens-ccb6f75bdb2b?source=rss-54fbf878c2f4------2"><img src="https://cdn-images-1.medium.com/max/1280/1*OXOD9VVPmQqP2TF_DxbbBA.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Instagram Direct measured 33% lower token cost per agent session on Compose. Mixed View code keeps paying the old rate.</p><p class="medium-feed-link"><a href="https://chetan-garg36.medium.com/your-mixed-view-and-compose-screens-are-burning-ai-tokens-ccb6f75bdb2b?source=rss-54fbf878c2f4------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://chetan-garg36.medium.com/your-mixed-view-and-compose-screens-are-burning-ai-tokens-ccb6f75bdb2b?source=rss-54fbf878c2f4------2</link>
            <guid isPermaLink="false">https://medium.com/p/ccb6f75bdb2b</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[androiddev]]></category>
            <category><![CDATA[jetpack-compose]]></category>
            <category><![CDATA[kotlin]]></category>
            <category><![CDATA[android-app-development]]></category>
            <dc:creator><![CDATA[Chetan Gupta]]></dc:creator>
            <pubDate>Mon, 09 Nov 2026 17:21:22 GMT</pubDate>
            <atom:updated>2026-11-11T06:25:22.526Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Google Play Will Reject Your Next Update on January 27 — Unless You Check These 4 Permissions ]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://chetan-garg36.medium.com/google-plays-january-27-2027-deadline-contacts-call-log-geofencing-and-the-location-button-6802de863ee1?source=rss-54fbf878c2f4------2"><img src="https://cdn-images-1.medium.com/max/1280/1*TrhvPzBE1wxt44v2ohm3bQ.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Four permission policy changes take effect on the same day. Here is how I would decide what to declare and what to migrate, with Compose&#x2026;</p><p class="medium-feed-link"><a href="https://chetan-garg36.medium.com/google-plays-january-27-2027-deadline-contacts-call-log-geofencing-and-the-location-button-6802de863ee1?source=rss-54fbf878c2f4------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://chetan-garg36.medium.com/google-plays-january-27-2027-deadline-contacts-call-log-geofencing-and-the-location-button-6802de863ee1?source=rss-54fbf878c2f4------2</link>
            <guid isPermaLink="false">https://medium.com/p/6802de863ee1</guid>
            <category><![CDATA[android-app-development]]></category>
            <category><![CDATA[kotlin]]></category>
            <category><![CDATA[androiddev]]></category>
            <category><![CDATA[android-development]]></category>
            <category><![CDATA[google-policy]]></category>
            <dc:creator><![CDATA[Chetan Gupta]]></dc:creator>
            <pubDate>Thu, 05 Nov 2026 17:59:35 GMT</pubDate>
            <atom:updated>2026-11-09T14:51:50.509Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Is ViewModel Dead? AppState Is Coming]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://chetan-garg36.medium.com/is-viewmodel-dead-appstate-is-coming-8cd057d0abaf?source=rss-54fbf878c2f4------2"><img src="https://cdn-images-1.medium.com/max/1280/1*-M04wcGFE7cWEYLiP6kzrg.png" width="1280"></a></p><p class="medium-feed-snippet">Google shipped two alpha libraries under the name AppState, and the guide shows Compose State running in repositories, services and&#x2026;</p><p class="medium-feed-link"><a href="https://chetan-garg36.medium.com/is-viewmodel-dead-appstate-is-coming-8cd057d0abaf?source=rss-54fbf878c2f4------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://chetan-garg36.medium.com/is-viewmodel-dead-appstate-is-coming-8cd057d0abaf?source=rss-54fbf878c2f4------2</link>
            <guid isPermaLink="false">https://medium.com/p/8cd057d0abaf</guid>
            <category><![CDATA[jetpack-compose]]></category>
            <category><![CDATA[kotlin]]></category>
            <category><![CDATA[android-architecture]]></category>
            <category><![CDATA[kotlin-multiplatform]]></category>
            <category><![CDATA[android-development]]></category>
            <dc:creator><![CDATA[Chetan Gupta]]></dc:creator>
            <pubDate>Sun, 01 Nov 2026 03:10:28 GMT</pubDate>
            <atom:updated>2026-11-10T15:56:45.143Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[AI Took Over the Easy Part of Android Interviews. I Checked 11 Courses for the Hard Part ]]></title>
            <link>https://blog.stackademic.com/ai-took-over-the-easy-part-of-android-interviews-i-checked-11-courses-for-the-hard-part-f5c195962db9?source=rss-54fbf878c2f4------2</link>
            <guid isPermaLink="false">https://medium.com/p/f5c195962db9</guid>
            <category><![CDATA[kotlin]]></category>
            <category><![CDATA[kotlin-multiplatform]]></category>
            <category><![CDATA[interview]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[android]]></category>
            <dc:creator><![CDATA[Chetan Gupta]]></dc:creator>
            <pubDate>Tue, 27 Oct 2026 14:46:49 GMT</pubDate>
            <atom:updated>2026-10-27T14:46:49.535Z</atom:updated>
            <content:encoded><![CDATA[<h3>A coding assistant can write your RecyclerView adapter in seconds. It can’t sit in the interview room for you. I read the lesson lists of eleven Educative courses as a Principal Android engineer and judged each one against the questions you still have to answer yourself.</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zrL7vccbg8yTTyGbF2Lnzw.jpeg" /></figure><p><em>If you enjoyed it, clap and share!.</em></p><p>The prompt on the whiteboard says “Design a chat app.” The candidate grabs the marker and draws a load balancer, three app servers, a sharded database and a message queue. Twenty minutes later the board looks like a backend architecture poster, and the phone shows up as one small rectangle in the corner labelled “client.”</p><p>The interview is for a senior Android role.</p><p>I interview and mentor Android engineers as part of my job, and that drawing is the most common way I see a strong mobile engineer lose a mobile system design round. The interviewer wanted to hear about the client: what lives in the local database, what happens when the train enters a tunnel mid-send, how the message list survives process death, how the app syncs when it wakes up after six hours in Doze. The candidate prepared with backend material and answered a backend question.</p><p>I started reading that story differently once coding assistants moved into my daily work. I let an assistant write a lot of the code I used to type by hand: the adapter, the Retrofit interface, the Room DAO, the boilerplate around a ViewModel. I still read every line, but I type far less of it. If an assistant can produce that layer for me at work, an interviewer learns little by watching me produce it on a whiteboard.</p><p>The decisions stay with me. An assistant will generate a sync layer if I ask for one. I still decide which side wins when the phone and the server disagree about a message, and what the app should do after the OS kills it halfway through an upload. In a design round, you have to make those calls out loud, in front of someone who has made them in production.</p><p>I have sat on both sides of that table. I have been the candidate in senior mobile loops, and I have been the interviewer holding the feedback form. From either chair, the rounds that go wrong rarely come down to missing knowledge. The candidate knows Room, WorkManager and coroutines well. They just never bring them up, because nothing in their prep told them the interviewer was waiting for the phone to become the main character of the design.</p><p>I opened my Educative access and went through the catalog the way a mobile engineer preparing for a senior, staff or principal loop would. Eleven courses made the first cut. I read their roadmaps lesson by lesson and asked of each one: does this train the part of the loop an assistant can’t do for you?</p><p>Before you scroll, make a guess. Which kind of course would a principal Android engineer buy first: system design, Kotlin, Android, or the coding round?</p><p>Hold on to it. 🕵</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9F3KNYs7la-dkgS79v35og.png" /><figcaption>Educative’s plan pricing as a buyer sees it at checkout. Check the final price yourself before you buy.</figcaption></figure><h3>🧭 My judging criteria</h3><p>A mobile interview loop at a senior level has four rounds in some mix: coding, mobile system design, a language or platform deep dive, and behavioral. I scored each course against the round it claims to serve, with four questions:</p><ol><li>Can an AI assistant already do this for you? If yes, the interviewer cares about your reasoning around the code, and the course has to train that reasoning.</li><li>Does it cover the client side, or does it treat the app as a thin client?</li><li>Can you practice out loud, or only read?</li><li>Does it fit in the four to six weeks most people have before a loop?</li></ol><p>I left out ratings, learner counts and prices. Ratings and prices change, and you can check them on the page in ten seconds. Every lesson count and module name below comes from the course page as it read on October 24, 2026.</p><h3>🥊 Round 1: the Kotlin courses</h3><p>Syntax sits at the top of the list of things an assistant handles well. Ask it for a when over a sealed class and you get one. A Kotlin deep-dive round goes past syntax and asks you to explain why the code behaves the way it does.</p><h3>Kotlin Crash Course for Programmers</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zJGRb62q3XgcIvJIyx0VLw.png" /><figcaption>Course cover: Kotlin Crash Course for Programmers</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/kotlin-crash-course-for-programmers?aff=Bnd0">Kotlin Crash Course for Programmers on Educative</a></p><p>Peter Sommerhoff’s course has 29 lessons, 22 quizzes and an estimated 6 hours. It covers variables, nullable types, conditions, collections, loops and functions.</p><p>That is the layer your assistant already writes for you, and the layer interviewers spend the least time on. If you write Kotlin every day, skip it. I would hand it to a backend or iOS engineer who joins a KMP team and needs to read the shared module by Friday, so they can review what the assistant produces.</p><h3>Mastering Kotlin Essentials</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZZjRByAXKcdujj_pSGll8A.png" /><figcaption>Course cover: Mastering Kotlin Essentials</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/mastering-kotlin-essentials?aff=Bnd0">Mastering Kotlin Essentials on Educative</a></p><p>Marcin Moskała wrote this one: 121 lessons, 28 quizzes, 2 assessments and 1 project across 20 modules, about 12 hours. The later modules carry the interview value: sealed classes and interfaces, extensions, operator overloading, Kotlin’s type system and generics.</p><p>A Kotlin deep-dive round loves those last two. “Why can’t you pass a List&lt;Any&gt; where a MutableList&lt;Any&gt; is expected?&quot; and &quot;What does Nothing do in the type system?&quot; show up in senior interviews more often than candidates expect. An assistant can fix the compile error for you. In the room, you have to explain the variance rule behind it, and most of us answer from memory of a blog post we read three years ago.</p><p><strong>Takeaway:</strong> worth it if generics and variance make you nervous. Skippable if you already explain in and out without looking anything up.</p><h3>The Ultimate Guide to Kotlin Programming</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0GyjZhddMWKSfQoH_1Gmxg.png" /><figcaption>Course cover: The Ultimate Guide to Kotlin Programming</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/ultimate-guide-programming-in-kotlin?aff=Bnd0">The Ultimate Guide to Kotlin Programming on Educative</a></p><p>The Pragmatic Programmers’ course has 156 lessons across 22 modules, 34 quizzes and one project, about 20 hours. It spans a wide range: coroutines and async programming, Java interop, a Spring module, an Android module and a Ktor backend appendix.</p><p>That range helps a generalist. For a mobile loop, you spend most of those hours on Spring and backend material nobody will ask you about.</p><h3>Mastering Kotlin Coroutines</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*U6cofNqByTX-NFtrTGLF-A.png" /><figcaption>Course cover: Mastering Kotlin Coroutines</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/mastering-kotlin-coroutines?aff=Bnd0">Mastering Kotlin Coroutines on Educative</a></p><p>Also by Marcin Moskała: 124 lessons in 18 modules, 16 quizzes and a challenge, about 26 hours. The roadmap reads like a list of things I have watched candidates get wrong:</p><ul><li>Coroutines under the hood, including how suspension works and resumes</li><li>Job and awaiting children</li><li>Cancellation and exception handling, in one module with 10 lessons</li><li>Dispatchers and constructing a coroutine scope</li><li>Shared state</li><li>Testing Kotlin coroutines, including virtual time</li><li>Hot and cold data sources, Flow building, Flow lifecycle functions, SharedFlow and StateFlow</li></ul><p>This one stood out among the Kotlin courses, and it fits the AI angle well. An assistant will write you a launch block in a second. Senior Android interviews ask about the behavior around it: &quot;What happens to the children when one of them throws?&quot;, &quot;Why didn&#39;t this catch block run?&quot;, &quot;Where should this StateFlow live?&quot; Those answers depend on a mental model of the Job tree, and you can&#39;t paste a mental model into the interview. A candidate who can draw that tree and explain structured concurrency without notes moves up a level in the interviewer&#39;s head.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*44djnojMddv2DOVVFBX2zA.png" /><figcaption>The “Cancellation and Exception Handling” module in Mastering Kotlin Coroutines, with its lesson titles expanded.</figcaption></figure><p><strong>Takeaway:</strong> the strongest Kotlin course on the list for interviews, and it pays off at work the same week, every time you review a coroutine your assistant wrote.</p><h3>🥊 Round 2: the Android courses</h3><p>I expected to spend most of my time here. I spent the least.</p><h3>Android Development Masterclass</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JLV0aFvA3QXC_G9iT781-g.png" /><figcaption>Course cover: Android Development Masterclass</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/android-development-masterclass?aff=Bnd0">Android Development Masterclass on Educative</a></p><p>Vivek Maskara’s course has 66 lessons, 12 quizzes and 3 assessments across 15 modules, about 15 hours. It covers layouts and fragments, intents and services, permissions, Firebase, lifecycle-aware components, Jetpack components, Room, Retrofit with coroutines, Hilt, performance and testing.</p><h3>Modern Android App Development with Kotlin</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1QIp1_CHBIgtElfNOcTeHg.png" /><figcaption>Course cover: Modern Android App Development with Kotlin</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/modern-android-app-development-kotlin?aff=Bnd0">Modern Android App Development with Kotlin on Educative</a></p><p>Dmytro Danylyk’s course has 40 lessons and 5 quizzes, about 15 hours. You build a Travel Blog app with XML ConstraintLayout, OkHttp, Gson and RecyclerView.</p><p>Both courses teach you to build an Android app, and both use the View system. I found no Jetpack Compose module on either roadmap, and my search did not turn up a dedicated Compose or Kotlin Multiplatform course on Educative. If a mid-level engineer asked me how to learn Android from scratch, these two would make sense.</p><p>Run them through the first question, though. Wiring a screen to Retrofit and Room is the work I hand to an assistant first. For a senior interview in 2026, the interviewer assumes you can build the app and wants to hear how you would design it.</p><p><strong>Takeaway:</strong> good onboarding material, weak interview prep for anyone with a few years of Android behind them.</p><h3>🥊 Round 3: the coding and behavioral rounds</h3><h3>Grokking the Coding Interview Patterns</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JopnWCH9zDOtSI-3SuOkGA.png" /><figcaption>Course cover: Grokking the Coding Interview Patterns</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/grokking-coding-interview?aff=Bnd0">Grokking the Coding Interview Patterns on Educative</a></p><p>Fahim ul Haq’s course is the giant of the list: 1,125 lessons, 579 quizzes, 17 AI mock interviews and an estimated 85 hours. It groups problems into 28 patterns, from two pointers and sliding window to topological sort, union find and tries.</p><p>The coding round looks like the round AI hit hardest, since an assistant can produce a sliding-window solution faster than you can read the prompt. You don’t get the assistant in the room, and the interviewer is listening for how you recognise the pattern and talk through the trade-offs. The pattern approach trains that skill. You don’t have the time a new grad has to grind problem sets, and spotting “this is a sliding window” in the first two minutes is the skill that saves you.</p><p>One catch for us: the page lists Python, Java, JavaScript, Go, C++ and C#. Kotlin is not on that list. Java works, and most Android engineers read it without effort, but you will translate the solutions to Kotlin in your head before an interview where you will write Kotlin. I treat that translation as practice. You may treat it as friction.</p><h3>Grokking the Behavioral Interview</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*G8ygSTZNbGkXFiB0RWAedA.png" /><figcaption>Course cover: Grokking the Behavioral Interview</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/grokking-the-behavioral-interview?aff=Bnd0">Grokking the Behavioral Interview on Educative</a></p><p>This one shows as free on its page: 36 lessons, 5 quizzes, about 5 hours. It covers research on the company’s values, the STAR technique, patterns for experience and hypothetical questions, and interview etiquette.</p><p>Take it whatever you buy. Your own stories are the one part of the loop no tool can write for you. At principal level, the behavioral round carries as much weight as the design round, and STAR keeps you from rambling through a story about a migration you led.</p><h3>🥊 Round 4: system design</h3><h3>Grokking Modern System Design Interview</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*soypi8ihQ3gIsGH_wB0HyQ.png" /><figcaption>Course cover: Grokking Modern System Design Interview</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/grokking-the-system-design-interview?aff=Bnd0">Grokking Modern System Design Interview on Educative</a></p><p>The classic: 209 lessons, 147 quizzes, 10 AI mock interviews, about 26 hours across 50 modules. It covers DNS, load balancers, databases, caches, queues, rate limiters, blob stores, then case studies from YouTube and Uber to WhatsApp, Google Docs and a ChatGPT-style system.</p><p>It is a strong course, and it is the one the candidate in my opening story prepared with. A mobile interviewer will let you spend 40 minutes on sharded counters, then write “didn’t discuss the client” in the feedback form.</p><p>I still recommend the building-blocks modules to staff and principal candidates. At that level, someone will ask how your app’s sync talks to the backend, and you need to speak the backend team’s language. As the main course for a mobile round, it points you at the wrong half of the system.</p><h3>Grokking the Low Level Design Interview Using OOD Principles</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dHfel7twqFpvI5ix-hJWoQ.png" /><figcaption>Course cover: Grokking the Low Level Design Interview Using OOD Principles</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/grokking-the-low-level-design-interview-using-ood-principles?aff=Bnd0">Grokking the Low Level Design Interview Using OOD Principles on Educative</a></p><p>215 lessons, 28 quizzes, 19 AI mock interviews, about 70 hours. It starts with OOP, UML, SOLID and design patterns, then moves to object-oriented design problems. Some Android loops include a “design the classes for an image loader” round, and this course fits that format. An assistant can generate the classes once you describe them; the round tests whether you can choose the boundaries and defend them. Seventy hours is a lot to spend on one round, so check that your target company runs it before you start.</p><h3>🔓 The reveal</h3><p>Ten courses in, the pattern was clear to me. The more of a round an assistant can do for you, the less that round tells an interviewer about your level. The round where you have to reason about the phone itself, with its flaky network, its life cycle and its two platforms, still decides the level. One course on the list prepares you for that round.</p><h3>Grokking the Mobile System Design Interview</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*V60LHcttYJ7JzBHYV9KVLA.png" /><figcaption>Course cover: Grokking the Mobile System Design Interview</figcaption></figure><p>👉 <a href="https://www.educative.io/courses/mobile-system-design?aff=Bnd0">Grokking the Mobile System Design Interview on Educative</a></p><p>My first pick is Fahim ul Haq’s <strong>Grokking the Mobile System Design Interview</strong>: 83 lessons, 101 quizzes and 3 AI mock interviews across 18 modules, about 14 hours.</p><p>I picked it after reading the roadmap. It spends its first nine modules on the client side that the backend courses skip:</p><ul><li><strong>Architecture patterns:</strong> layered design, UI architecture patterns, Clean Architecture, unidirectional data flow, dependency injection and modular design, Backend for Frontend, navigation and screen flow</li><li><strong>Data and state:</strong> local storage and caching, offline-first design and data sync, state management, and data conflict detection and resolution</li><li><strong>Device life cycle and resources:</strong> app life cycle, background processing and scheduling, battery-aware design, memory and app footprint, threading and concurrency</li><li><strong>Platform variations:</strong> platform-specific vs. cross-platform trade-offs, code sharing and multi-platform modules, versioning and backward compatibility</li><li><strong>Networking, performance and security,</strong> each with its own module</li></ul><p>Look at that data module again. Offline-first sync and conflict resolution make up the hardest 15 minutes of a mobile design round, and most prep material gives them a paragraph at best. These are trade-off questions. An assistant can write the sync code once you pick a strategy, but you have to pick the strategy and defend it.</p><p>KMP engineers get a lesson of their own. “Code Sharing and Multi-Platform Modules” names Kotlin Multiplatform as one of the tools for sharing core logic between Android and iOS, and frames the goal as sharing what is safe to share while each platform keeps its own UI. That is the answer I want to hear from a KMP candidate when I ask “what would you put in commonMain?&quot;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*U20pZV4MCsalS1fdoIRfrg.png" /><figcaption>The “Code Sharing and Multi-Platform Modules” lesson in Grokking the Mobile System Design Interview, which names Kotlin Multiplatform as one way to share core logic.</figcaption></figure><p>After the fundamentals, the course teaches a framework called SCADET for structuring your answer, then applies it to six case studies: newsfeed, chat, Google Maps, YouTube, a stock trading app and a ride-hailing app. Each case study has four lessons: requirements, design considerations, the design and API, and an evaluation of non-functional requirements. The newsfeed, chat and Google Maps modules also list a mock interview, marked Premium on the roadmap.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QLmLnND20j1eCbcSkIKeng.png" /><figcaption>The SCADET lesson from the “Mobile System Design Framework” module, showing what each letter stands for.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZAiHzsVAsw20Ixpb2ckyOQ.png" /><figcaption>The start of the newsfeed AI mock interview in Grokking the Mobile System Design Interview.</figcaption></figure><p>The last module, “Free Mobile System Design Lessons,” covers topics I ask about at staff level: deep linking, feature flags and remote config, A/B testing infrastructure, app update and release strategy, experimentation platforms and telemetry.</p><p>Two caveats, because I promised an honest comparison:</p><ol><li>The course landing page doesn’t name Android, Kotlin or iOS once. The material is platform-neutral, and you translate “background processing and scheduling” into WorkManager and “state management” into ViewModel and StateFlow yourself. For a senior candidate, doing that translation out loud is half the interview.</li><li>Three mock interviews isn’t many. Use them as checkpoints after you finish the fundamentals, and do the rest of your practice with a friend and a timer.</li></ol><p>Reading the chat case study’s lesson list, I noticed it does not stop at “use WebSockets.” The design and API lesson walks through real-time messaging, file uploads, synchronization and offline support, along with dependency injection and how the client talks to the backend. That is close to the order I would want a candidate to reach on their own: get a message on screen, keep it there when the network drops, then explain how the client and server agree on what was sent. If I had to borrow one question from it for my own interviews, it would be the sync one, because that is where candidates show whether they have owned a production app.</p><p><strong>Takeaway:</strong> if your next loop has a mobile system design round, this is the course to start with. It prepares you for the client-side questions a mobile interviewer will ask, the ones you can’t hand to an assistant.</p><h3>🧩 The stack I would buy</h3><p>If I had five weeks before a senior or staff Android loop:</p><p>RoundCourseWhyMobile system designGrokking the Mobile System Design InterviewClient-side architecture, offline sync, KMP code sharing, 6 case studiesKotlin deep diveMastering Kotlin CoroutinesCancellation, exceptions, testing, FlowCodingGrokking the Coding Interview Patterns28 patterns, solve in Java and port to KotlinBehavioralGrokking the Behavioral InterviewFree, STAR structureStaff and aboveBuilding-blocks modules of Grokking Modern System Design InterviewSpeak the backend team’s language</p><p>Weeks one and two go to the mobile design course. Week three goes to coroutines. Spread the coding patterns over all five weeks, an hour a day, and save the behavioral course for the last weekend.</p><p>If you can only buy one, buy the mobile system design course. You can find coroutine talks, LeetCode lists and STAR guides elsewhere. Structured prep for the mobile design round is hard to find, and that round decides your level.</p><h3>🧠 The bigger lesson</h3><p>Coding assistants took over a lot of the typing in Android work. They left the judgment with you. Interviewers level mobile engineers on how they think about the device: a flaky network, a process the OS can kill at any time, a battery, two platforms, an app version you can’t force-update. Backend prep teaches you to scale the server. The mobile round asks you to keep the app alive while the server misbehaves.</p><p>Whatever course you pick, practice saying the client-side trade-offs out loud. Most candidates have read about offline-first sync, and an assistant will write the code for it in a minute. Fewer candidates can explain their conflict resolution strategy in two minutes with a marker in their hand.</p><h3>🎯 TL;DR</h3><p>AI assistants now write much of the code an interview used to test, so I went through eleven Educative courses as a Principal Android engineer looking for prep on the parts they can’t do for you. The Android courses (Android Development Masterclass, Modern Android App Development with Kotlin) teach View-based app building and suit beginners more than senior interview prep. For Kotlin, Mastering Kotlin Coroutines is the one to take. Grokking the Coding Interview Patterns covers the coding round with 28 patterns, but has no Kotlin option. Grokking the Behavioral Interview is free. Grokking Modern System Design Interview is strong but backend-focused. My first pick is <strong>Grokking the Mobile System Design Interview</strong>: 83 lessons on client-side architecture, offline sync, life cycle, KMP-style code sharing and six case studies with the SCADET framework. Pair it with the coroutines course.</p><blockquote><strong><em>break-time:</em></strong><em> If you are enjoying this, you will like this one as well. Do explore it after reading the current one. Thank you!</em></blockquote><blockquote><em>I write about Android, Kotlin and Kotlin Multiplatform regularly. You will find the rest of my articles on my Medium profile, </em><a href="https://medium.com/@chetan-garg36"><em>@chetan-garg36</em></a><em>.</em></blockquote><p>Hi Guys 👋! I have over 9 years of solid experience in Kotlin and Android development, Feel free to explore my portfolio and <a href="https://github.com/ch8n">GitHub</a> contributions. If your company needs a Android developer, drop me a mail at <a href="/service/mailto:chetan.garg36@gmail.com">chetan.garg36@gmail.com</a>. You can also connect with me on <a href="https://www.linkedin.com/in/chetan-gupta-84528aaa/">LinkedIn</a>. Let’s chat about how I can bring my expertise to your team!</p><p>Thank you for reading until the end. Before you go:</p><ul><li>Please consider clapping 👏 and</li><li>Follow me on <a href="https://www.linkedin.com/in/chetan-gupta-84528aaa/">LinkedIn</a> &amp; <a href="https://github.com/ch8n">Github</a></li></ul><p>For Social Stalking 👀: <a href="https://bit.ly/ch8n-linkdIn">LinkedIn</a> | <a href="https://bit.ly/ch8n-twitter">Twitter</a> | <a href="https://bit.ly/ch8n-stackOflow">StackOverflow</a> | <a href="https://bit.ly/ch8n-git">Github</a> | <a href="https://bit.ly/ch8n-youtube">Youtube</a> | <a href="https://ch8n.github.io/me">About Me</a></p><p>Enjoying the Post? a clap is much appreciated if you enjoyed. No sign up or cost associated :) If you want to support my content do consider dropping a tip/coffee/donation reach me out of my email.</p><p><strong>Suggested tags:</strong> Android Development, Kotlin, System Design Interview, Kotlin Multiplatform, Software Engineering</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f5c195962db9" width="1" height="1" alt=""><hr><p><a href="https://blog.stackademic.com/ai-took-over-the-easy-part-of-android-interviews-i-checked-11-courses-for-the-hard-part-f5c195962db9">AI Took Over the Easy Part of Android Interviews. I Checked 11 Courses for the Hard Part 🚨</a> was originally published in <a href="https://blog.stackademic.com/">Stackademic</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Your Crashlytics Dashboard Is Lying About Cancelled Coroutines]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://chetan-garg36.medium.com/crashlytics-keeps-screaming-about-cancelled-coroutines-your-app-isnt-crashing-1977658a2fd9?source=rss-54fbf878c2f4------2"><img src="https://cdn-images-1.medium.com/max/1280/1*m7EDj19NIt5NHQYutXvGPQ.jpeg" width="1280"></a></p><p class="medium-feed-snippet">A JobCancellationException lands in your crash dashboard, an AI points at NonCancellable, and the stacktrace names delay. None of those is&#x2026;</p><p class="medium-feed-link"><a href="https://chetan-garg36.medium.com/crashlytics-keeps-screaming-about-cancelled-coroutines-your-app-isnt-crashing-1977658a2fd9?source=rss-54fbf878c2f4------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://chetan-garg36.medium.com/crashlytics-keeps-screaming-about-cancelled-coroutines-your-app-isnt-crashing-1977658a2fd9?source=rss-54fbf878c2f4------2</link>
            <guid isPermaLink="false">https://medium.com/p/1977658a2fd9</guid>
            <category><![CDATA[kotlin-coroutines]]></category>
            <category><![CDATA[android-development]]></category>
            <category><![CDATA[android-app-development]]></category>
            <category><![CDATA[androiddev]]></category>
            <category><![CDATA[kotlin]]></category>
            <dc:creator><![CDATA[Chetan Gupta]]></dc:creator>
            <pubDate>Mon, 26 Oct 2026 17:18:52 GMT</pubDate>
            <atom:updated>2026-10-28T14:50:04.360Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Goodbye _uiState  — Explicit Backing Fields and Context Parameters in Your ViewModels (Kotlin 2.4+]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://chetan-garg36.medium.com/goodbye-uistate-explicit-backing-fields-and-context-parameters-in-your-viewmodels-kotlin-2-4-7a9da005104b?source=rss-54fbf878c2f4------2"><img src="https://cdn-images-1.medium.com/max/1280/1*pWWDZ0_7TOmmeB6YpXeDSA.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Two Kotlin 2.4 features went stable and both land in the file you open most: the ViewModel. I compiled every snippet here against Kotlin&#x2026;</p><p class="medium-feed-link"><a href="https://chetan-garg36.medium.com/goodbye-uistate-explicit-backing-fields-and-context-parameters-in-your-viewmodels-kotlin-2-4-7a9da005104b?source=rss-54fbf878c2f4------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://chetan-garg36.medium.com/goodbye-uistate-explicit-backing-fields-and-context-parameters-in-your-viewmodels-kotlin-2-4-7a9da005104b?source=rss-54fbf878c2f4------2</link>
            <guid isPermaLink="false">https://medium.com/p/7a9da005104b</guid>
            <category><![CDATA[kotlin]]></category>
            <category><![CDATA[androiddev]]></category>
            <category><![CDATA[android-development]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[kotlin-coroutines]]></category>
            <dc:creator><![CDATA[Chetan Gupta]]></dc:creator>
            <pubDate>Wed, 21 Oct 2026 16:58:18 GMT</pubDate>
            <atom:updated>2026-10-21T16:59:00.420Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[One Line of Shared Kotlin, Thousands of Broken Updates ]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://chetan-garg36.medium.com/one-line-of-shared-kotlin-thousands-of-broken-updates-3183e16c3109?source=rss-54fbf878c2f4------2"><img src="https://cdn-images-1.medium.com/max/1280/1*a0eC-vQBD3SMYRtVG34hgA.jpeg" width="1280"></a></p><p class="medium-feed-snippet">The hotfix was two lines. The thing blocking it was a cleaner name in commonMain, and only users who already had the app could feel it.</p><p class="medium-feed-link"><a href="https://chetan-garg36.medium.com/one-line-of-shared-kotlin-thousands-of-broken-updates-3183e16c3109?source=rss-54fbf878c2f4------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://chetan-garg36.medium.com/one-line-of-shared-kotlin-thousands-of-broken-updates-3183e16c3109?source=rss-54fbf878c2f4------2</link>
            <guid isPermaLink="false">https://medium.com/p/3183e16c3109</guid>
            <category><![CDATA[androiddev]]></category>
            <category><![CDATA[kotlin]]></category>
            <category><![CDATA[kotlin-multiplatform]]></category>
            <category><![CDATA[android-app-development]]></category>
            <category><![CDATA[android-development]]></category>
            <dc:creator><![CDATA[Chetan Gupta]]></dc:creator>
            <pubDate>Mon, 19 Oct 2026 17:07:42 GMT</pubDate>
            <atom:updated>2026-10-19T17:08:03.065Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Anyone Can Build an App Now. That’s Why Engineers Still Matter ]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://blog.stackademic.com/anyone-can-build-an-app-now-thats-why-engineers-still-matter-bf7210ef157b?source=rss-54fbf878c2f4------2"><img src="https://cdn-images-1.medium.com/max/1280/1*oq0n5-kk3eWz40pPFxoVzQ.jpeg" width="1280"></a></p><p class="medium-feed-snippet">A viral take says AI ended the era of developer gatekeeping.</p><p class="medium-feed-link"><a href="https://blog.stackademic.com/anyone-can-build-an-app-now-thats-why-engineers-still-matter-bf7210ef157b?source=rss-54fbf878c2f4------2">Continue reading on Stackademic »</a></p></div>]]></description>
            <link>https://blog.stackademic.com/anyone-can-build-an-app-now-thats-why-engineers-still-matter-bf7210ef157b?source=rss-54fbf878c2f4------2</link>
            <guid isPermaLink="false">https://medium.com/p/bf7210ef157b</guid>
            <category><![CDATA[kotlin]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[android-development]]></category>
            <category><![CDATA[androiddev]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[Chetan Gupta]]></dc:creator>
            <pubDate>Fri, 16 Oct 2026 17:48:20 GMT</pubDate>
            <atom:updated>2026-10-16T17:48:44.081Z</atom:updated>
        </item>
    </channel>
</rss>