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.
Rahul Ravikumar
@rahulrav.com
Software Engineer at Google working on the Android Toolkit team.
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 - 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
github.com
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 !
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.
developer.android.com
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...
Keyboardio: keyboards for people who love typing
Keyboardio makes the best looking, most comfortable ergonomic keyboards. We also sell switches and keycaps.
keyboard.io
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.com
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...
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...
lalitm.com
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!
Coming in Metro 1.3.0! Was awesome working with Rahul on this
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.
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.
Performance - Metro
A multiplatform dependency injection framework for Kotlin
zacsweers.github.io
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
Zero* Cost Observability: A Deep Dive into the Jetpack Multiplatform Tracing Library
YouTube video by Android Makers
youtu.be
Tracing 2.0 should go beta01 soon ! android-review.git.corp.google.com/c/platform/f... Keep on tracing!
Gerrit Code Review
android-review.git.corp.google.com
Target's journey to a slimmer and a faster Android app tech.target.com/blog/rethink... #android #performance
tech.target.com
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
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...
In the next version of AGP - R8 makes coroutines 2x faster
androidx.tracing 2.0.0-alpha04 is now available. Here is the release notes. Happy tracing ! developer.android.com/jetpack/andr...
Tracing | Jetpack | Android Developers
developer.android.com
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
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...
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
PSA: Switch the display server for IntelliJ from X11 to Wayland. Your eyes will thank you. What an incredible difference! It's glorious now ! blog.jetbrains.com/platform/202...
Wayland Support Preview In 2024.2 | The JetBrains Platform Blog
We are delighted to announce that, starting with the 2024.2 Early Access Program (EAP), IntelliJ-based IDEs will offer preliminary support for the Wayland display server protocol on Linux, including W
blog.jetbrains.com
The new major version of androidx.tracing is now available on Google Maven. We’ve spent the last year optimizing it, so it's extremely low overhead. The documentation is available at: developer.android.com/topic/perfor... Happy Tracing!
Two blog posts back to back! ✍️ I just published a summary of my decade-long journey at Google. It covers the projects and the growth, but more importantly, a reflection on some of the things I’ve learned along the way. You can read the full post here: rahulrav.com/blog/10_year...
10 Years at Google
rahulrav.com
I broke down how R8 strips away Intrinsics overhead and leverages ART intrinsics to make your apps faster—without you changing a single line of code (starting with AGP 9.0). rahulrav.com/blog/kotlin_...
Kotlin Intrinsics on Android
rahulrav.com
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.
Happy UniFi Travel Router day to those who celebrate it 🎉 store.ui.com/us/en/catego...
UniFi Travel Router - Ubiquiti Store
An ultra-slim travel router that instantly extends your UniFi Network wherever you are, bringing secure, familiar connectivity to remote locations.
store.ui.com
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 !
This release also adds support for Compose stack traces that work with minified apps! (requires R8 and Kotlin 2.3.0+)
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...