<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kotlin on Suraj Shah</title><link>https://suraj.ing/tags/kotlin/</link><description>Recent content in Kotlin on Suraj Shah</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 23 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://suraj.ing/tags/kotlin/index.xml" rel="self" type="application/rss+xml"/><item><title>A Thousand Splendid Refactorings</title><link>https://suraj.ing/writing/a-thousand-splendid-refactorings/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate><guid>https://suraj.ing/writing/a-thousand-splendid-refactorings/</guid><description/></item><item><title>We were wasting 75% of our EC2 memory</title><link>https://suraj.ing/writing/wasting-75-percent-ec2-memory/</link><pubDate>Thu, 19 Oct 2023 00:00:00 +0000</pubDate><guid>https://suraj.ing/writing/wasting-75-percent-ec2-memory/</guid><description/></item><item><title>Understanding mocks and spies</title><link>https://suraj.ing/writing/understanding-mocks-and-spies/</link><pubDate>Fri, 02 Sep 2022 00:00:00 +0000</pubDate><guid>https://suraj.ing/writing/understanding-mocks-and-spies/</guid><description/></item><item><title>Publishing AARs to Maven Central</title><link>https://suraj.ing/writing/publishing-aars-to-maven-central/</link><pubDate>Thu, 19 May 2022 00:00:00 +0000</pubDate><guid>https://suraj.ing/writing/publishing-aars-to-maven-central/</guid><description/></item><item><title>The Evolutionary System Design in Action — Part 1</title><link>https://suraj.ing/writing/evolutionary-system-design-part-1/</link><pubDate>Sun, 10 Apr 2022 00:00:00 +0000</pubDate><guid>https://suraj.ing/writing/evolutionary-system-design-part-1/</guid><description/></item><item><title>Collections vs Sequences in Kotlin — DroidCon India</title><link>https://suraj.ing/talks/droidcon-2020-collections-sequences/</link><pubDate>Fri, 01 May 2020 00:00:00 +0000</pubDate><guid>https://suraj.ing/talks/droidcon-2020-collections-sequences/</guid><description>&lt;p&gt;Talk on Collections vs Sequences in Kotlin at DroidCon India (online). Originally submitted for the in-person DroidCon India event, later converted to an online event.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
 href="https://www.droidcon.com/videos"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;Watch on DroidCon →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
 href="https://proandroiddev.com/collections-vs-sequences-war-of-use-cases-1f2ca06a8ac4"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;Read the companion article →&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Collections vs Sequences: War of use-cases!</title><link>https://suraj.ing/writing/collections-vs-sequences/</link><pubDate>Sun, 12 Apr 2020 00:00:00 +0000</pubDate><guid>https://suraj.ing/writing/collections-vs-sequences/</guid><description/></item><item><title>Dissecting the inline keyword in Kotlin: Chapter 2</title><link>https://suraj.ing/writing/inline-keyword-kotlin-chapter-2/</link><pubDate>Mon, 23 Mar 2020 00:00:00 +0000</pubDate><guid>https://suraj.ing/writing/inline-keyword-kotlin-chapter-2/</guid><description/></item><item><title>Dissecting the inline keyword in Kotlin: Chapter 1</title><link>https://suraj.ing/writing/inline-keyword-kotlin-chapter-1/</link><pubDate>Sat, 22 Feb 2020 00:00:00 +0000</pubDate><guid>https://suraj.ing/writing/inline-keyword-kotlin-chapter-1/</guid><description/></item><item><title>Collections vs Sequences</title><link>https://suraj.ing/talks/blrkotlin-2020-collections-sequences/</link><pubDate>Sat, 01 Feb 2020 00:00:00 +0000</pubDate><guid>https://suraj.ing/talks/blrkotlin-2020-collections-sequences/</guid><description>&lt;p&gt;Talk on Collections vs Sequences given at the BlrKotlin meetup in Bengaluru. Served as the local preview of what later became the DroidCon India talk.&lt;/p&gt;</description></item><item><title>Dissecting the inline keyword in Kotlin</title><link>https://suraj.ing/talks/fosdem-2020-kotlin-inline/</link><pubDate>Sat, 01 Feb 2020 00:00:00 +0000</pubDate><guid>https://suraj.ing/talks/fosdem-2020-kotlin-inline/</guid><description>&lt;p&gt;Invited to speak at &lt;a
 href="https://fosdem.org/2020/"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;FOSDEM 2020&lt;/a&gt; in Brussels, Belgium. One of the world&amp;rsquo;s largest open source conferences, held annually at ULB.&lt;/p&gt;
&lt;p&gt;The talk covers how Kotlin&amp;rsquo;s &lt;code&gt;inline&lt;/code&gt; keyword works under the hood: what the compiler actually does, when to use it, when not to, and the subtle performance implications most Kotlin developers miss.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
 href="https://video.fosdem.org/2020/UA2.118/kotlin_dissecting_the_inline_keyword.webm"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;Watch the talk (WebM) →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
 href="https://video.fosdem.org/2020/UA2.118/kotlin_dissecting_the_inline_keyword.mp4"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;Watch the talk (MP4) →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
 href="https://archive.fosdem.org/2020/schedule/event/kotlin_dissecting_the_inline_keyword/"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;Event page →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
 href="https://fosdem.org/2020/schedule/speaker/suraj_shah/"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;Speaker profile →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
 href="https://proandroiddev.com/dissecting-the-inline-keyword-in-kotlin-chapter-1-51735600d7"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;Chapter 1 — blog post →&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
 href="https://proandroiddev.com/dissecting-the-inline-keyword-in-kotlin-chapter-2-32f4bc0fcbf9"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;Chapter 2 — blog post →&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Power of Inline in Kotlin</title><link>https://suraj.ing/talks/blrkotlin-2019-power-of-inline/</link><pubDate>Fri, 01 Mar 2019 00:00:00 +0000</pubDate><guid>https://suraj.ing/talks/blrkotlin-2019-power-of-inline/</guid><description>&lt;p&gt;A talk on the internals of the &lt;code&gt;inline&lt;/code&gt; keyword in Kotlin at the March 2019 BlrKotlin meetup. This was the origin of what became the &lt;a
 href="https://suraj.ing/talks/fosdem-2020-kotlin-inline/"
 
 
&gt;FOSDEM 2020 talk&lt;/a&gt;, refined over the following year.&lt;/p&gt;</description></item><item><title>Firefox (Fenix)</title><link>https://suraj.ing/oss/firefox-fenix/</link><pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate><guid>https://suraj.ing/oss/firefox-fenix/</guid><description>&lt;p&gt;Pre-release contributor to &lt;a
 href="https://github.com/mozilla-mobile/fenix"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;Fenix&lt;/a&gt;, Mozilla&amp;rsquo;s ground-up rewrite of Firefox for Android in Kotlin. Contributed during the pre-release phase before the browser shipped as the default Firefox on Android.&lt;/p&gt;
&lt;p&gt;&lt;a
 href="https://github.com/mozilla-mobile/fenix"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;View on GitHub →&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Operators in Kotlin</title><link>https://suraj.ing/talks/blrkotlin-2018-operators-kotlin/</link><pubDate>Fri, 01 Jun 2018 00:00:00 +0000</pubDate><guid>https://suraj.ing/talks/blrkotlin-2018-operators-kotlin/</guid><description>&lt;p&gt;Talk on Kotlin operators presented at the June 2018 BlrKotlin meetup (#6 BlrKotlin + BlrDroid).&lt;/p&gt;</description></item><item><title>RecyclerView-FastScroller</title><link>https://suraj.ing/oss/recyclerview-fastscroller/</link><pubDate>Mon, 01 Jan 2018 00:00:00 +0000</pubDate><guid>https://suraj.ing/oss/recyclerview-fastscroller/</guid><description>&lt;p&gt;A fast-scroll library for Android&amp;rsquo;s &lt;code&gt;RecyclerView&lt;/code&gt;, built to fill a gap in the official support library. Designed to be easy to drop in, highly customisable, and handles edge cases the standard solution doesn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;Built at SuperShare, open-sourced under the &lt;a
 href="https://github.com/quiph"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;Quiph&lt;/a&gt; org.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;900+ GitHub stars, 50+ forks&lt;/li&gt;
&lt;li&gt;Written in Kotlin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a
 href="https://github.com/quiph/RecyclerView-FastScroller"
 
 
 class="link--external" target="_blank" rel="noreferrer"
 
&gt;View on GitHub →&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>