Rahul Ravikumar

Rahul Ravikumar

@rahulrav.com

Software Engineer at Google working on the Android Toolkit team.

424 followers150 following121 posts

Passkeys have big problems: 1. Made the mistake of coupling passkey storage with the platform. I should be able to use 1Password but it rarely works. Even Walmart gets this wrong. 2. Lack of a reset flow. Can't log into my HSA account anymore. Always greeted with an NPE server side. 😭

3. Can't predict what the UX flow will be during login. Will it open an iframe ? Or delegate to a phone or fallback to something else. Who knows ?

Rahul Ravikumar reposted

``` Upon reflection, I've come to believe that quality software is not about how many features something has or how quickly it is built but rather how cared for it is by the designers, developers, and product people who work on it. ``` This rings very true https://brettcodes.com/im-done-using-ai/

brettcodes.comI'm done using AIWhy I'm stopping using AI for coding (and anything else) after using it earnestly for a year and coming to understand the harms it causes on personal, societal, and environmental levels.

Rahul Ravikumar reposted

I published vibrance-0.1.0 on Maven, now with support for Compose for Desktop (JVM). The APIs let you mix colors yourself, or draw gradients as modifiers or Compose brushes. Next steps: refine the model training to improve some color transitions, better alpha support. github.com/romainguy/vi...

I have always wanted to better understand how frameworks like PyTorch do back propagation for gradient descent. I finally wrote my own implementation for a scalar valued type that can compute gradients from the ground up. Its ~130 lines of Kotlin. Remarkably capable now ! github.com/tikurahul/by...

github.comGitHub - tikurahul/bytegrad: An implementation of the scalar valued type in Kotlin, that can support gradient descent based on microgradAn implementation of the scalar valued type in Kotlin, that can support gradient descent based on micrograd - tikurahul/bytegrad

Signed up for Deep Learning coursework; and as I am reading some recommended papers - I swear adjacent to a mathematical construct I think i know, is a rabbit hole that until now never existed. Oh, you want an integral on this marginal distribution; surely you must have heard of error functions. 😭

Sometimes what you need is a hybrid of an ArrayList and a LinkedList. (When your API allows adding things into a list like structure - think contextual data). BlockLinkedList that does exactly. Uses ART instrinsics for a fast reset and object pooling to minimize GC overhead.

github.comgithub.com

Rahul Ravikumar reposted

Wrote up a blog post going over the "why" in each of the features in Perfetto v57. This is something I plan on doing for each release going forward (including dedicated posts when a feature is big enough to deserve it!) Find it at lalitm.com/post/perfett...

lalitm.comPerfetto v57: fixing PyTorch traces, plus journald logs and an AI skillWe just released Perfetto v57 and I wanted to share the new things I’m most excited about. This is something I wanted to do for past releases but I just never quite got round to it. It’s also somethin...

Installed Cauchy OS a few months ago on my Framework 16 and I must say, arch has been extremely delightful to use. Extremely grateful that I don't have to use Windows or macOS. It's really the year of Linux on the desktop!

Rahul Ravikumar reposted

Coming in Metro 1.3.0! Was awesome working with Rahul on this

Rahul Ravikumar@rahulrav.com

I collaborated with @zacsweers.dev (who did most of the heavy lifting) to add automatic tracing for Graph bindings generated by Metro. If you are using DI, then you should be cognizant of it's costs. Metro automatically adds traces for all generated bindings when you enable Runtime tracing.

This feature builds on androidx.tracing 2.0, and therefore you can bring your own tracing backend if you like and even go as far as getting sampled traces from production.

Rahul Ravikumar reposted

This is excellent, one of my favorite long-form pieces on agentic engineering - includes several non-obvious ways in which leaning on coding agents can catch you out

Lalit Maganti@lalitm.com

I just published a deep-dive into the 250-hour build behind syntaqlite, a SQLite formatter and LSP I built using AI agents. AI agents were the only reason built this after 8 years of wanting but there's a psychological toll to AI-assisted engineering. The post-mortem: lalitm.com/post/buildin...

Rahul Ravikumar reposted

Want to actually understand what your app is doing at runtime? In the next episode we explore: ⚡ Android Profiler 🔎 Perfetto 🧵 Tracing 2.0 📱 Performance in Compose With Rahul Ravikumar. Join us live → cwti.link/twitch #AndroidDev #Performance #JetpackCompose

While you are doing that, also ensure that the version of Visual Studio Code installed, is not a snap. That version hard codes the display server to X11 as well! Use the official distribution from Microsoft, and again your eyes will thank you.

What’s new: ✅ Multi-platform: Android + JVM targets! ✅ Automatic Coroutine context propagation. ✅ Pluggable backends and Sinks.

A huge thank you to all the colleagues I’ve had the privilege of working with over the last 10 years. I’m incredibly grateful for everything you’ve taught me. Who I am, is a direct result of the brilliant people I was lucky enough to call teammates. 🙏

PSA: Starting Android Gradle Plugin 9.0 (or the latest stable version of R8): R8 will automatically optimize all Intrinsics.check* APIs in Kotlin automatically ! This should greatly help improve app performance (especially Compose given the large Kotlin library API surface).

Given the state of Windows 11 + Copilot 🤮; 2026 might actually be the year of Linux on the Desktop. Framework 16+ Ubuntu has been a breath of fresh air.

I presented an updated version of "A Busy (Android) Developers guide to Perfetto" at Droidcon India this past week. The session was packed and was standing room only ! There were so many other wonderful Performance talks !

Excited to see all the enthusiasm for Performance related content, given how relevant it is for India. Met so many developers and exchanged ideas on what we can do better. Thanks for being an amazing community and happy tracing !!

Rahul Ravikumar reposted

This release also adds support for Compose stack traces that work with minified apps! (requires R8 and Kotlin 2.3.0+)

Rebecca Franks@riggaroo.dev

Compose 1.10 was released yesterday! 🔟 It includes some nice new features: 🧞‍♀️ Support for dynamic shared elements 👰🏻‍♀️ New Enter/Exit Transitions: unveilIn / veilOut ⏭️ Modifier.skipToLookaheadPosition() 📦 New retain APIs influenced by Circuit android-developers.googleblog.com/2025/12/what...