Nikhil Bansal

Nikhil Bansal

Senior Android Engineer @NymCard

Bengaluru, India

Actions

Nikhil Bansal is a Senior Android Engineer with 7+ years of experience shaping fintech products that power payments, credit, and digital banking ecosystems. Having worked with industry leaders such as Zeta, Slice, and currently NymCard, he has built and scaled apps used by millions across emerging markets. His technical focus lies in Kotlin, Jetpack Compose, and Kotlin Multiplatform (KMM) — creating clean, modular architectures that bridge Android, iOS, and the web.

Recently, Nikhil has been experimenting with AI-driven systems in Kotlin, particularly frameworks like Koog, to build intelligent, autonomous agents that rethink how mobile and backend systems collaborate. A strong advocate for developer experience and modern Kotlin patterns, he enjoys sharing practical insights and inspiring teams to push the boundaries of what Kotlin can do.

Area of Expertise

  • Information & Communications Technology

Topics

  • Android
  • Android Architecture
  • Developing Android Apps
  • Android Software Development
  • Jetpack Compose
  • GitHub Actions
  • performance
  • flutter
  • Kotlin
  • Kotlin Coroutines
  • Kotlin Multiplatform
  • Firebase
  • AI Agents
  • AI Agentic Workflows

Inside the SlotTable Rewrite: How Compose Remembers, and Why That Is Changing

Every remember call you have ever written resolves against a data structure called the SlotTable. Since Compose 1.0 that structure has been a gap buffer — the same design a text editor uses to make edits near the cursor cheap. It is the reason remember finds your value by position rather than by name, the reason moving an if branch silently resets state, and the reason key() exists.

In Compose 1.11, Google shipped a rewrite of it.

The new implementation trades the gap buffer for a link-based structure that performs substantially fewer memory copies. Google's own numbers: reordering a long list can recompose more than twice as fast, with most other operations roughly ten percent faster. It requires no recompilation, it applies app-wide including to your dependencies, and it is one flag away — ComposeRuntimeFlags.isLinkBufferComposerEnabled.

This talk uses that rewrite as a way into the part of Compose most developers never see. We start from a decompiled composable and follow one remember call all the way down: what a group is, how the composer walks slots, why positional memoization is the addressing scheme Compose chose, and what the gap buffer's cost model actually is — where it is fast, and where a list reorder turns into repeated array shuffling.

Then we turn the flag on. I will show results from A/B benchmarking the flag on a production banking app's transaction list, including the release-build trap that is easy to miss: the default ProGuard rules shipped with the runtime assume the flag is false, so enabling it in production requires editing your own proguard-rules.pro. We will also look honestly at where the new implementation is still settling, using the bug fixes visible across the 1.11 and 1.12 release notes as the evidence.

You will leave able to reason about your own composables the way the runtime does — and with a measurement you can run on your app on Monday.

Taking a look at Kotlin Internals

Kotlin Language has some amazing features such as Extension Functions, sealed classes, inline functions etc. In this talk, let's see how these features work internally. We'll take a look at how are they implemented in Java.

BlrKotlin User group Sessionize Event Upcoming

Not scheduled yet. Bengaluru, India

Blrdroid Meetup User group Sessionize Event

June 2024 Bengaluru, India

GDG DevFest Hyderabad 2019 Sessionize Event

October 2019 Hyderābād, India

Nikhil Bansal

Senior Android Engineer @NymCard

Bengaluru, India

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top