Sign in

Rahul Ravikumar

@rahulrav.com
421 followers 148 following 121 posts

Software Engineer at Google working on the Android Toolkit team.

PostsRepliesMedia
Reposted by Rahul Ravikumar
Vinny DaSilva @vinnydasilva.bsky.social · 18/09/2026
👋 Hey Friends! There's so much happening in the XR industry right now! #AndroidDevSummit is SOOO back! And we're gonna have a TON of XR content! 😎OH! Did I mention it's 2 events? 🇺🇸 -> rsvp.withgoogle.com/events/android-dev-summit-bayview 🇬🇧 -> rsvp.withgoogle.com/events/android-dev-summit-london
032
Rahul Ravikumar @rahulrav.com · 18/09/2026
Awesome, me too ! Excited to talk about how you can build great animations with Compose, with a little help from clever algorithms.
061
Rahul Ravikumar @rahulrav.com · 09/09/2026
Which article?
100
Rahul Ravikumar @rahulrav.com · 08/09/2026
I did not realize you are on the program committee 🙂. Thank you for your service.
020
Rahul Ravikumar @rahulrav.com · 07/09/2026
Keynote’s Magic Move is great - until you try animating code. I wrote about building smooth "Magic Move" code animations from first principles using TextMate grammars & Heckel's diff algorithm: rahulrav.com/blog/magic_m...
rahulrav.com
Magic Move for Code Snippets from first principles
060
Rahul Ravikumar @rahulrav.com · 15/08/2026
With 2FA it was okay because you did not have to resort to a second device all the time. You could remember your device permanently or for N days. When that contract changes it makes little sense.
000
Rahul Ravikumar @rahulrav.com · 15/08/2026
For 2, some web apps have decided that if you are using passwords you are wrong (especially if you switched to a Passkey). 3 is a problem. Try explaining the UX for someone who does not understand what's happening under the hood. Also what if I don't have my phone handy?
100
Rahul Ravikumar @rahulrav.com · 14/08/2026
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 ?
000
Rahul Ravikumar @rahulrav.com · 14/08/2026
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. 😭
210
Reposted by Rahul Ravikumar
Aurimas Liutikas @liutikas.net · 13/08/2026
``` 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 brettcodes.com/im-done-using-ai
brettcodes.com
I'm done using AI
Why 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.
5447
Rahul Ravikumar @rahulrav.com · 02/08/2026
Note to self: Write more Compose code. Skills are a bit lacking.
030
Rahul Ravikumar @rahulrav.com · 02/08/2026
I built Warp — an open-source implementation of morph transitions (magic move in Keynote) for code blocks from the ground up! github.com/tikurahul/warp Lots of interesting algorithms along the way.
150
Rahul Ravikumar @rahulrav.com · 29/07/2026
What a great podcast episode !
040
Reposted by Rahul Ravikumar
Romain Guy @romainguy.dev · 21/07/2026
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...
24110
Rahul Ravikumar @rahulrav.com · 20/07/2026
Yes absolutely! While I have a far better understanding of how autograd works under the hood, I am also grateful that PyTorch exists and is fast. My implementation, like the video, kept it simple for readability. The layering of these building blocks is beautiful and that's what I wanted to show.
020
Rahul Ravikumar @rahulrav.com · 20/07/2026
This implementation is meant to be educational, and is based on Andrej Karpathy's incredible video. I added a bit of Compose for rendering graphs, and next stop is to animate training loops. www.youtube.com/watch?v=VMj-...
youtube.com
The spelled-out intro to neural networks and backpropagation: building micrograd
YouTube video by Andrej Karpathy
120
Rahul Ravikumar @rahulrav.com · 20/07/2026
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.com
GitHub - tikurahul/bytegrad: An implementation of the scalar valued type in Kotlin, that can support gradient descent based on micrograd
An implementation of the scalar valued type in Kotlin, that can support gradient descent based on micrograd - tikurahul/bytegrad
170
Rahul Ravikumar @rahulrav.com · 15/07/2026
androidx.tracing 2.0.0 is now beta01. Updated documentation is at: developer.android.com/topic/perfor... Release notes is: developer.android.com/jetpack/andr... Happy tracing !
developer.android.com
In-process tracing  |  App quality  |  Android Developers
Capture in-process trace events and manage context propagation for Kotlin coroutines using the low-overhead androidx.tracing library.
062
Rahul Ravikumar @rahulrav.com · 14/07/2026
I love tailrec for this kind of stuff. So readable, and yet as performant as writing a loop!
030
Rahul Ravikumar @rahulrav.com · 11/07/2026
From 18 WPM to 100 WPM 💥 It took 51+ hours of practice, transitioning to a split layout, and a lot of patience, but I finally found my mechanical keyboard "end game" with the @keyboard.io Model 100. Read about the journey, and the stats at rahulrav.com/blog/keyboar...
keyboard.io
Keyboardio: keyboards for people who love typing
Keyboardio makes the best looking, most comfortable ergonomic keyboards. We also sell switches and keycaps.
050
Rahul Ravikumar @rahulrav.com · 06/07/2026
Thank you ! That will be super useful.
010
Rahul Ravikumar @rahulrav.com · 06/07/2026
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. 😭
010
Rahul Ravikumar @rahulrav.com · 04/07/2026
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.com
120
Rahul Ravikumar @rahulrav.com · 04/07/2026
Thanks for all the amazing work on OkHttp. This was one of my favorite talks at KotlinConf this year. So many fun sub problems. One of the interesting problems was re-encoding the text file that tells you if a domain is allowed to share cookies with subdomains.
040
Reposted by Rahul Ravikumar
Lalit Maganti @lalitm.com · 03/07/2026
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.com
Perfetto v57: fixing PyTorch traces, plus journald logs and an AI skill
We 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...
031
Rahul Ravikumar @rahulrav.com · 03/07/2026
State tracks seem super nifty 🙏 Will add support for that in the in process SDK asap.
010
Rahul Ravikumar @rahulrav.com · 02/07/2026
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!
130
Reposted by Rahul Ravikumar
Zac Sweers @zacsweers.dev · 24/06/2026
Coming in Metro 1.3.0! Was awesome working with Rahul on this
0163
Rahul Ravikumar @rahulrav.com · 24/06/2026
No. Both those artifacts are effectively being replaced by tracing and tracing:wire. Compose will also officially move to the new Tracing APIs once we go beta.
020
Rahul Ravikumar @rahulrav.com · 24/06/2026
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.
110
Rahul Ravikumar @rahulrav.com · 24/06/2026
It was a really fun collaboration for me. @zacsweers.dev might feel differently perhaps 😅 I have never worked on Kotlin compiler plugins but Metro's codebase was pretty nice to work with. github.com/ZacSweers/me...
github.com
Add runtime tracing (#2354) · ZacSweers/metro@292c7a8
Co-authored-by: Zac Sweers <pandanomic@gmail.com>
130
Rahul Ravikumar @rahulrav.com · 24/06/2026
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.
zacsweers.github.io
Performance - Metro
A multiplatform dependency injection framework for Kotlin
1130
Rahul Ravikumar @rahulrav.com · 02/06/2026
This is my favorite as well growing up in South India. It ruined all other mangoes for me.
110
Rahul Ravikumar @rahulrav.com · 27/05/2026
You should be able to just use JobScheduler.
100
Rahul Ravikumar @rahulrav.com · 27/05/2026
You should be able to cancel all your jobs with JobScheduler. There is a cancelAll().
100
Rahul Ravikumar @rahulrav.com · 21/05/2026
My talk from Android Makers on the new Jetpack Multiplatform Tracing 2.0 library is now on YouTube! 🚀 🇩🇪 PS: I’m at KotlinConf this week! If you’re using the library (or curious about tracing / app performance), please say hi. I’d love to meet you and hear your feedback. youtu.be/d9Ya_YgDLOg
youtu.be
Zero* Cost Observability: A Deep Dive into the Jetpack Multiplatform Tracing Library
YouTube video by Android Makers
092
Rahul Ravikumar @rahulrav.com · 11/05/2026
In my excitement I posted the internal link. Here is the public link: r.android.com/4069040
r.android.com
Gerrit Code Review
030
Rahul Ravikumar @rahulrav.com · 11/05/2026
Tracing 2.0 should go beta01 soon ! android-review.git.corp.google.com/c/platform/f... Keep on tracing!
android-review.git.corp.google.com
Gerrit Code Review
220
Reposted by Rahul Ravikumar
Aurimas Liutikas @liutikas.net · 07/05/2026
Target's journey to a slimmer and a faster Android app tech.target.com/blog/rethink... #android #performance
tech.target.com
252
Rahul Ravikumar @rahulrav.com · 09/04/2026
I too find myself procrastinating less thanks to Agents doing some of the grunt work to get things going to the point where I can step in and do the fun stuff! Your article describes what I have been experiencing as well. Thanks for the deep dive!
020
Reposted by Rahul Ravikumar
Simon Willison @simonwillison.net · 05/04/2026
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
920626
Rahul Ravikumar @rahulrav.com · 04/04/2026
👋
110
Reposted by Rahul Ravikumar
Andrei Shikov @shikasd.bsky.social · 27/03/2026
In the next version of AGP - R8 makes coroutines 2x faster
15614
Rahul Ravikumar @rahulrav.com · 25/03/2026
androidx.tracing 2.0.0-alpha04 is now available. Here is the release notes. Happy tracing ! developer.android.com/jetpack/andr...
developer.android.com
Tracing  |  Jetpack  |  Android Developers
062
Rahul Ravikumar @rahulrav.com · 21/03/2026
If you are a parent always worried about waking someone up while watching TV, this headphone is just incredible 🙂 electronics.sony.com/audio/speake...
electronics.sony.com
020
Rahul Ravikumar @rahulrav.com · 20/03/2026
What is time really, but an illusion 😶‍🌫️🙂
010
Rahul Ravikumar @rahulrav.com · 17/03/2026
I will be speaking at Android Makers about the internals of the androidx.tracing library and how benchmark driven development ensures low overhead tracing. If you like tracing, profilers and benchmarks - this talk is for you! androidmakers.droidcon.com/2026/rahul-r...
0123
Reposted by Rahul Ravikumar
Code with the Italians @codewiththeitalians.it · 04/03/2026
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
032
Rahul Ravikumar @rahulrav.com · 11/02/2026
What about magic move though?
130
Rahul Ravikumar @rahulrav.com · 02/02/2026
In general, anything downloaded from the Snap store does not seem to use Wayland. 😭
000