I was awarded Google Open Source Peer Bonus
Tuesday, 25 June 2024
A bit late, but I’m happy to share that I was awarded Open Source Peer Bonus – a Google initiative that recognizes people who contributed to open-source projects.
Some backstory
My journey with contributing to Flutter started with me working at LeanCode on the Patrol project. Because we had to do things that no one had done before in Flutter ecosystem1, we naturally discovered a lot of problems (both in Flutter itself and the tools surrounding it) – and I always strived to report every single one of them2. After a few months, I realized I had created a few dozen issues.
Somewhere around that time (that is, end of 2022), I also got pretty interested in build systems, and specifically, in Gradle (don’t ask me why, it just happened). I think I read its docs a few times during the winter break, and really liked it.
I then noticed some Gradle warnings whenever I was running
flutter build apk
. It was a minor warning, something
related to using deprecated Gradle features that would be removed
in the subsequent major release. I had seen them countless times
before and they never made sense to me – but now, armed with
knowledge of Gradle, I understood what was happening and went on to
fix it.
I then started reading Gradle source code inside Flutter’s gigantic
flutter.gradle
file, understanding how it works,
and fixing more and more small problems, deprecations, etc. In the
beginning it sure wasn’t much, but it was honest work.
What I did
During the last year, I made various contributions across 3 repositories in the Flutter org (click on the links to see them):
Many of them are small-ish. The ones worth highlighting are related to improving Flutter’s Android support to use modern Gradle practices:
- Refactor Flutter Gradle Plugin so it can be applied using the declarative plugins {} block #123511
- Refactor “app plugin loader” Gradle Plugin so it can be applied using the declarative plugins {} block #127897
- Add support for Gradle Kotlin DSL #140744
My most impactful (and most technically complex) contribution was fixing this issue:
It was the most-upvoted-ever testing-related issue in the Flutter repo, opened since 2018, with ~130 likes.
Truth be told, it’s the only contribution I was paid for – and I’m thankful to mobile.dev, the company that did that. To learn more about what the problem was, and how I approached solving it, read the blogpost.
How it feels
It feels great!
I hadn’t been aware of existence of OSPB until I received it (which, coincidentally, happened the day after my birthday), so it was certainly a very pleasant surprise.
There’s also some monetary award associated with it, and even if it’s not that much (a few hundred dollars), it means a lot to me. It’s still by far the largest amount of money I’ve made off of contributing to open-source.
Thanks a lot, Google, for supporting open-source contributors - and of course, Google consists of people, therefore I want to thank Reid Baker for the nomination, and the whole Flutter team for making the project so incredibly welcoming to external contributors and putting so much trust in their hands.
2024-11-12 – Liminal
spaces
2024-08-18 – frp (Fast
Reverse Proxy) instead of ngrok
2024-08-16 – Cirrus CI is the best CI system
out there
2024-08-14 – Going to Berlin for
Droidcon/Fluttercon
2024-06-25 – I was awarded Google Open Source Peer
Bonus
2024-06-04 – My journey to Google I/O
’24
2024-05-11 – GitHub Actions
beg for a supply chain attack
2024-03-19 – Writing a custom Dart
VM service extension (part 1)
2024-02-08 – On using smartphone for things
that make sense
2023-11-30 – Semantics in Flutter - under
the hood
2023-11-25 – Flutter Engine notes
2023-09-17 – Creating
and managing Android Virtual Devices using the terminal
2023-05-27 – Suckless
Android SDK setup
2023-05-26 – Let’s start over
2023-05-21 –
Short thought on “The Zen of
Unix”
2023-05-15 – Notes about “flutter
assemble”
2019-01-07 – Google Code-in
2018
The aim was to built much better testing capabilities than what was available at the time. Hard problems included interacting with native UI (even of other apps) from withing Dart test code, and ensuring isolation between tests. If you’d like to learn more, check out the talk I gave with my tech lead at the time.↩︎
I think that before anyone complains about any open-source project on some so-called social media website, they should first make sure the issue is reported, and if it’s not, they should report it. In my book, only then you get a license to complain. And if you complain, link to the issue, so people can at least give thumbs-up.↩︎