<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kotlin Multiplatform on Dhruv Patel - Lead Android Engineer</title><link>https://deardhruv.com/tags/kotlin-multiplatform/</link><description>Recent content in Kotlin Multiplatform on Dhruv Patel - Lead Android Engineer</description><generator>Hugo</generator><language>en</language><managingEditor>dhruv.time@gmail.com (Dhruv Patel)</managingEditor><webMaster>dhruv.time@gmail.com (Dhruv Patel)</webMaster><copyright>&lt;a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener"&gt;CC BY-NC 4.0&lt;/a&gt;</copyright><lastBuildDate>Mon, 05 Oct 2026 16:26:02 +0530</lastBuildDate><atom:link href="https://deardhruv.com/tags/kotlin-multiplatform/index.xml" rel="self" type="application/rss+xml"/><item><title>Part 5 - At Some Point I Stopped Building a Chat App</title><link>https://deardhruv.com/posts/ai_playground_series/05-at-some-point-i-stopped-building-a-chat-app/</link><pubDate>Mon, 05 Oct 2026 14:00:00 +0530</pubDate><author>dhruv.time@gmail.com (Dhruv Patel)</author><guid>https://deardhruv.com/posts/ai_playground_series/05-at-some-point-i-stopped-building-a-chat-app/</guid><description>&lt;h1 id="at-some-point-i-stopped-building-a-chat-app"&gt;At Some Point I Stopped Building a Chat App&lt;/h1&gt;
&lt;h2 id="part-5---the-project-became-a-platform-because-every-feature-needed-a-place-to-live"&gt;Part 5 - The project became a platform because every feature needed a place to live.&lt;/h2&gt;
&lt;p&gt;There was a point where I stopped looking at AI Playground as:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chat + models
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and started seeing:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;runtime orchestration
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;document ingestion
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;retrieval
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vision
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;memory policy
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;image generation
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;diagnostics
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;model delivery
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;platform integration
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;At that point, adding another feature without architecture would have been reckless.&lt;/p&gt;</description></item><item><title>Part 2 - The Day a Chat Box Became a Document Engine</title><link>https://deardhruv.com/posts/ai_playground_series/02-the-day-a-chat-box-became-a-document-engine/</link><pubDate>Mon, 05 Oct 2026 11:00:00 +0530</pubDate><author>dhruv.time@gmail.com (Dhruv Patel)</author><guid>https://deardhruv.com/posts/ai_playground_series/02-the-day-a-chat-box-became-a-document-engine/</guid><description>&lt;h1 id="the-day-a-chat-box-became-a-document-engine"&gt;The Day a Chat Box Became a Document Engine&lt;/h1&gt;
&lt;h2 id="part-2---i-thought-attach-a-pdf-would-be-a-ui-feature-it-became-an-ingestion-pipeline"&gt;Part 2 - I thought “attach a PDF” would be a UI feature. It became an ingestion pipeline.&lt;/h2&gt;
&lt;p&gt;Once local chat was reliable enough, I wanted the next capability that makes a local assistant genuinely useful:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Let me ask questions about my own files without uploading them.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That sounds like:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;paperclip icon
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;file picker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It is not.&lt;/p&gt;
&lt;p&gt;A PDF is a container. A Word document is structured data. An Excel workbook is a workbook model. A scanned document may have no text layer at all. An image may contain words, diagrams, tables and visual context simultaneously.&lt;/p&gt;</description></item><item><title>Part 1 - I Wanted the Model to Stay on the Phone</title><link>https://deardhruv.com/posts/ai_playground_series/01-i-wanted-the-model-to-stay-on-the-phone/</link><pubDate>Mon, 05 Oct 2026 10:00:00 +0530</pubDate><author>dhruv.time@gmail.com (Dhruv Patel)</author><guid>https://deardhruv.com/posts/ai_playground_series/01-i-wanted-the-model-to-stay-on-the-phone/</guid><description>&lt;h1 id="beyond-the-model-building-a-private-ai-playground-for-android--ios"&gt;Beyond the Model: Building a Private AI Playground for Android &amp;amp; iOS&lt;/h1&gt;
&lt;h2 id="part-1---i-wanted-the-model-to-stay-on-the-phone"&gt;Part 1 - I Wanted the Model to Stay on the Phone&lt;/h2&gt;
&lt;h3 id="the-engineering-journey-of-integrating-established-on-device-ai-runtimes-into-one-multimodal-mobile-product---and-everything-it-takes-to-make-the-pieces-behave-like-a-coherent-system"&gt;The engineering journey of integrating established on-device AI runtimes into one multimodal mobile product - and everything it takes to make the pieces behave like a coherent system&lt;/h3&gt;
&lt;p&gt;There was one constraint behind AI Playground that shaped almost every architectural decision that came after it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I did not want the core AI workflow to depend on a server.&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>