Sign in

Ralf

@ralf-wondratschek.com
1.1K followers 126 following 108 posts

ralf-wondratschek.com | Member of Technical Staff at OpenAI, formerly Block / Square, Amazon and Evernote | GoogleDevExpert for Android

PostsRepliesMedia
Ralf @ralf-wondratschek.com · 14/09/2026
I measured how much faster an agent can navigate an app and read its state by skipping the UI. Spoiler alert: the difference is significant. Another reason to decouple your business logic and navigation entirely from the UI layer. ralf-wondratschek.com/blog/headles...
Benchmark result preview from the article.
281
Ralf @ralf-wondratschek.com · 31/08/2026
This is a reminder to write a hype doc to document your wins and achievements. AI can help you a lot and this can be fully automated.
100
Ralf @ralf-wondratschek.com · 06/08/2026
I'm still maintaining App Platform and just pushed a list-detail sample for different screen sizes and how to handle this with the unidirectional dataflow. The sample runs as a web app too: vrallev.github.io/app-platform...
vrallev.github.io
App Platform
A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects.
130
Ralf @ralf-wondratschek.com · 02/07/2026
Is anyone using App Platform? github.com/amzn/app-pla... I wanted to give a heads up that ownership of the repo was transferred to me and I'm considering to change the coordinates and packages to detach the project from Amazon. How much pain would this cause for consumers?
github.com
GitHub - vRallev/app-platform: A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects.
A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects. - vRallev/app-platform
431
Ralf @ralf-wondratschek.com · 28/05/2026
I'm excited to share that I joined OpenAI this week, where I'll be working on Android infrastructure. My second stint at Block was shorter than expected, but I'm grateful for the time together with my team. I'm proud of what we accomplished and excited for what's next.
1310
Reposted by Ralf
Mark Allison @markallison.social · 27/04/2026
I've used Metro, and it's better than anything else, imo. It not only speeds up your builds, but makes DI easier, and also provides simpler upgrade paths if you're transitioning from other common DI frameworks. Huge thanks to @zacsweers.dev
0213
Ralf @ralf-wondratschek.com · 27/04/2026
Thank you, Zac!
060
Reposted by Ralf
Zac Sweers @zacsweers.dev · 23/04/2026
Metro 1.0.0-RC3 is out now and promotes function providers to the default! github.com/ZacSweers/metro/re...
github.com
Release 1.0.0-RC3 · ZacSweers/metro
This is the third release candidate for Metro 1.0! This means that its runtime APIs (runtime, metrox artifacts, Gradle plugin, etc) will be API stable unless annotated with an experimental annotati...
1102
Ralf @ralf-wondratschek.com · 20/04/2026
I picked up some work on App Platform again, which I created during my time at Amazon. Metro now works perfectly well in KMP projects and therefore it's the recommended default! The latest version also comes with a compiler plugin to avoid KSP. github.com/amzn/app-pla...
github.com
Releases · amzn/app-platform
A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects. - amzn/app-platform
050
Reposted by Ralf
Ray Ryan @rjrjr.com · 15/04/2026
Joel and Jacob are two of the most talented (and most pleasant!) people I have ever worked with.
0143
Ralf @ralf-wondratschek.com · 14/04/2026
We're wrapping up our migration to Metro internally for Square Android. I summarized some of our challenges and steps we took in a blog post. If you use Dagger 2 for a Kotlin project, then you should migrate to Metro sooner rather than later. engineering.block.xyz/blog/metro-m...
engineering.block.xyz
Metro Migration at Square Android
How Square Android migrated its monorepo from Dagger 2 and Anvil to Metro over nine months and saved thousands of hours of build time.
0318
Reposted by Ralf
Zac Sweers @zacsweers.dev · 13/04/2026
Metro 1.0.0-RC1 is out now! Last call for feedback on the public, non-experimental runtime/metrox/gradle APIs! github.com/ZacSweers/metro/re...
github.com
Release 1.0.0-RC1 · ZacSweers/metro
This is the first release candidate for Metro 1.0! This means that its runtime APIs (runtime, metrox artifacts, Gradle plugin, etc) will be API stable unless annotated with an experimental annotati...
2429
Ralf @ralf-wondratschek.com · 10/04/2026
This is one of the best podcast episodes I have listened to in a while. Highly recommend podcastaddict.com/the-peterman...
podcastaddict.com
130
Ralf @ralf-wondratschek.com · 08/04/2026
I'm more excited about this than I should be.
010
Reposted by Ralf
Egor Andreevich @egorand.dev · 27/03/2026
KotlinPoet 2.3.0 supports typealias declarations inside types, has new convenience API for adding annotations and ships with a healthy dose of bug fixes. Time for a version bump! 🤜🤛 github.com/square/kotli...
github.com
Release 2.3.0 · square/kotlinpoet
Thanks to @haruue, @hfhbd, @yz4230, @mina-jaff, @BoD, @RaoPrashanth for contributing to this release. New: Kotlin 2.3.20. New: KSP 2.3.6. New: Support for defining type aliases inside other types....
0133
Ralf @ralf-wondratschek.com · 05/02/2026
One underrated improvement Metro brings is its easy setup. No more configuring KAPT, runtime modules, keeping versions in sync, etc. You apply the Gradle plugin, setup a tiny graph and the rest is driven through constructor injection, @ContributesBinding and its other features. This was all I needed
1214
Reposted by Ralf
Jesse Wilson @swank.ca · 03/02/2026
🥞
publicobject.com
Flattening my Dependency Graph
Rounds has a Kotlin server that integrates a few things: PostgreSQL persistence via SQLDelight (hosted on PlanetScale!)WebAuthn4J for Passkeyskotlinx.html for dynamic web pagesKtor for HTTP bindingThe...
5185
Reposted by Ralf
Johannes Bechberger @mostlynerdless.de · 09/01/2026
Actually, OpenJDK 25 is 18% faster than OpenJDK 17 and 21 and a whopping 84% faster than OpenJDK 11. Upgrade now!
185
Ralf @ralf-wondratschek.com · 05/01/2026
I recently migrated our codebase away from Ktlint to Ktfmt and Detekt. I summarized the reasons and migration steps in a blog post: engineering.block.xyz/blog/adoptin...
engineering.block.xyz
Adopting Ktfmt and Detekt
How Square Android replaced Ktlint with Ktfmt and Detekt and improved Kotlin formatting speed by 40% in a 60,000+ file codebase.
1208
Reposted by Ralf
Jesse Wilson @swank.ca · 28/12/2025
Kotlin compiler plugins are amazing! ✅ Expressive syntax ✅ Compile-time checked ✅ Fast at runtime
2396
Reposted by Ralf
Egor Andreevich @egorand.dev · 18/11/2025
Cash Android has recently switched to Metro, a new, fast dependency injection framework built for K2. That was a fun project and we're really happy with the results! Sharing details on how we approached the migration to help teams adopt Metro: code.cash.app/cash-android...
code.cash.app
Cash Android Moves to Metro
The Cash Android team have completed the migration to Metro.
03016
Reposted by Ralf
Bridget Phillips @jingibus.bsky.social · 08/11/2025
This is fantastic and @zacsweers.dev deserves all the praise but it also is gonna give you a false idea of what Z is like as a maintainer and author, what the project is like, and how you might achieve something like this yourself
1215
Ralf @ralf-wondratschek.com · 12/09/2025
After three wonderful years at Amazon I'm happy to share that I started this week at ... Square / Block again on my old team 🪃 I'm excited to think about developer productivity more deeply again.
3301
Ralf @ralf-wondratschek.com · 05/09/2025
Our KMP framework App Platform now supports Metro out of the box: github.com/amzn/app-pla... @zacsweers.dev is pushing the boundaries with Metro and there are still some Kotlin compiler bugs that need to be resolved, but on the JVM / Android it works.
github.com
Release 0.0.6 · amzn/app-platform
Added Added support for Metro as dependency injection framework. User can choose between kotlin-inject-anvil and Metro. For more details see the documentation for how to setup and use both depende...
160
Ralf @ralf-wondratschek.com · 22/08/2025
I've been using ktfmt over KtLint for a few months for some projects. It's a blessing and so much easier to deal with. I forgot how much I missed 2 space indent in Kotlin. facebook.github.io/ktfmt/
facebook.github.io
ktfmt - the Kotlin code formatter
050
Ralf @ralf-wondratschek.com · 25/07/2025
We published a new version of App Platform with back button support. We also added recipes for saving presenter state, app bar integration and backstack navigation. Working with Compose in the business logic (Molecule) and UI (Compose Multiplatform) is so much fun. amzn.github.io/app-platform...
amzn.github.io
Changelog - App Platform
A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects.
080
Ralf @ralf-wondratschek.com · 18/07/2025
Anvil was quite successful inside and outside of Square, but now it's time for the next big improvement. Metro is 95% of what I pitched as Dagger 3 within Square. I'm excited.
1194
Reposted by Ralf
Gabriel Ittner @gabrielittner.bsky.social · 14/07/2025
Version 0.34.0 of the gradle-maven-publish-plugin finally comes with configuration cache support. Dropping support for Sonatype OSSRH unblocked us from waiting for Gradle to resolve the underlying issue on their side. github.com/vanniktech/g...
github.com
Release 0.34.0 · vanniktech/gradle-maven-publish-plugin
Added configuration cache support for publishing. Removed support for publishing through Sonatype OSSRH since it has been shut down. See the 0.33.0 release notes for upgrade instructions if you hav...
0155
Ralf @ralf-wondratschek.com · 15/07/2025
I had problems upgrading to the latest version of IntelliJ IDEA and Android Studio with the new Kotlin Multiplatform plugin. But now that it's working and Compose Hot Reload is running the integration is pretty nice. (This was my issue: youtrack.jetbrains.com/issue/KMT-11... )
youtrack.jetbrains.com
020
Ralf @ralf-wondratschek.com · 02/07/2025
This is great. Unlimited PTO is a trap. Amazon works very similar to Bolt and learnt to like this a lot. www.kron4.com/news/technol...
kron4.com
231
Ralf @ralf-wondratschek.com · 28/05/2025
The new version of App Platform is out with support for Wasm! The wiki has integrated the Wasm sample application from the repository to see the code in action. amzn.github.io/app-platform/
amzn.github.io
App Platform
A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects.
080
Ralf @ralf-wondratschek.com · 24/05/2025
I uploaded the slides of my presentation. Thank you all for coming 🙏 ralf-wondratschek.com/presentation...
ralf-wondratschek.com
Ralf Wondratschek
Personal website from Ralf Wondratschek to collect and share presentations, blog-posts and other interesting bits.
1181
Reposted by Ralf
Gurpreet Singh @imgurpreetsk.bsky.social · 23/05/2025
The problem was very well summarised and the solution well explained. Great talk!
011
Ralf @ralf-wondratschek.com · 23/05/2025
Kotlin Conf is great and a lot of fun. I'm closing today with my session "Scale your Kotlin Multiplatform projects using dependency injection". I hope some folks are still around and don't travel home yet 😊 kotlinconf.com/schedule/?da...
kotlinconf.com
Schedule | KotlinConf 2025, May 21–23, Copenhagen
KotlinConf is the official Kotlin conference by JetBrains. It is a place for the community to gather and discuss all things Kotlin.
1100
Reposted by Ralf
Fabien Sanglard @fabinou.bsky.social · 22/05/2025
Indeed, we improved every parts of ADB Wifi pipeline. Besides support in Studio, you need ADB 36.0.1 (to be released soon) and Android 16.
1132
Ralf @ralf-wondratschek.com · 20/05/2025
I'm waiting for the AI agents from German companies named Günther, Jürgen or Klaus.
000
Ralf @ralf-wondratschek.com · 07/05/2025
Where does one start with improving Android app performance? Should I start with writing benchmarks to establish a baseline? Should I enable StrictMode and LeakCanary first? How can I implement metrics in production? Are there any good guides for beginners you'd recommend?
131
Ralf @ralf-wondratschek.com · 25/04/2025
That's me! I'm really excited about this topic and look forward to giving this talk at KotlinConf. I'll summarize how we got here and how painless dependency injection can be.
081
Ralf @ralf-wondratschek.com · 17/04/2025
App Platform Launched App Platform is a lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects. I'm happy to announce that we open-sourced the project today! amzn.github.io/app-platform/
amzn.github.io
App Platform
A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects.
3224
Ralf @ralf-wondratschek.com · 03/04/2025
This is fantastic. This is so close to what I wanted Dagger 3 to be when I proposed this 5 years ago at Square. Well done @zacsweers.dev 🙏
0163
Reposted by Ralf
Michael Druker 🇨🇦 @mdruker.app · 21/03/2025
The hardest problem in software engineering is finishing migrations and it’s not even close
2323
Ralf @ralf-wondratschek.com · 07/02/2025
I was at @evernote.bsky.social when they started migrating to React Native in 2018. Against all advice from tech leads the SVP of engineering (coming from Amazon) pushed through. The quality of the Android app went downhill over the years not only performance wise.
2192
Ralf @ralf-wondratschek.com · 11/01/2025
Oh no, the bots are here.
150
Reposted by Ralf
Jesse Wilson @swank.ca · 05/01/2025
publicobject.com
Try Something Simpler
The late Joe Armstrong had a great rule for error handling that stuck with me. ‘If you can’t do what you want to do try to do something simpler’I was thinking about this recently. I was writing code t...
5336
Reposted by Ralf
John O'Reilly @johnoreilly.dev · 22/12/2024
Just migrated the BikeShare #KMP/#CMP sample (github.com/joreilly/Bik...) to use kotlin-inject-anvil (had been using just kotlin-inject)....think maybe can be simplified further but still got rid of quite a bit of boilerplate code (particularly related to setup of Circuit factories)
github.com
GitHub - joreilly/BikeShare: SwiftUI, Jetpack Compose, and Compose for Desktop based Kotlin Multiplatform project (using CityBikes API http://api.citybik.es/v2/). Uses Realm for local persistence
SwiftUI, Jetpack Compose, and Compose for Desktop based Kotlin Multiplatform project (using CityBikes API http://api.citybik.es/v2/). Uses Realm for local persistence - joreilly/BikeShare
2161
Reposted by Ralf
Duck Droid @fragmentedpodcast.com · 10/12/2024
🎧 new episode #253 is out! logcat - a new look at logging with @p-y.wtf from Square. Listen here: fragmentedpodcast.com/episodes/253/ #AndroidDev #Podcast
fragmentedpodcast.com
253 - logcat - a new look at logging with Piwai from Square · Fragmented | #androiddev Podcast
Download directly Kaushik looks at a new logging library from Square called logcat. He starts by seeing how the popular Timber library does it along with the benefits. He then interviews Pierre-Yves ...
1217
Ralf @ralf-wondratschek.com · 06/12/2024
This is a great summary, thanks for writing it down!
040
Ralf @ralf-wondratschek.com · 02/12/2024
I'm in awe.
150
Reposted by Ralf
Kaushik Gopal @kau.sh · 26/11/2024
🎧 Episode #252 of Fragmented is out. Everyone needs a starter template! We also talk to @zsmb.co from @jetbrains.com about #Amper (their new build & config tool). Listen here: fragmentedpodcast.com/episodes/252 #AndroidDev #Podcast
3299