Chicago Roboto is an Android-focused tech conference in Chicago. It’s been held remotely for the past two years.
This year I finally got to attend in person.
Rewind to that first remote Chicago Roboto back in 2020--I was new to Android programming, and as a result, didn’t get much out of the conference. There weren’t many mental conceptual footholds for me.
What a difference two years make!
Validation and inspiration
I had expertise and knowledge of mine validated. I had my curiosities and ambitions sparked. I got to meet Android devs from big companies and Google Developer Experts.
There’s a lot of talk about the Android Community and how wonderful it is. My experience has backed that up. Whether it’s the volume of useful blog posts out there, robust Twitter communities, Slack workspaces, or tons of YouTubers--learning Android has been a fantastic experience.
Below are summaries of a few talks I enjoyed.
Zachary Powell, Vonage
From Developer to DevRel, how the Android community helped me grow
Zach talked about his longtime Android experience, and his discovery of and career switch to Developer Relations and Developer Advocacy. Even within Android, the career opportunities are diverse.
Ash Davies, Snapp Mobile GmbH
Everything is an API
Ash reminded us all that every bit of code we write is an API and how to keep quality high.
Jacob Lillioja, Premise Data
Jacob went deep into how Premise Data improved its localization processes (crazy interesting).
Since I had worked on a web app + Android app that required localization, I was able to compare/contrast approaches.
Premise Data has incredibly complex and significant localization needs--I love automation, process, and efficiency, and that was on full display.
Adetunji Dahunsi, Google
Idemnity in the Data Layer
TJ showed how considering offline-first as a core feature of your app improves the user experience. This was my first time learning about this pattern of data handling.
Bill Phillips, Cash App
Few Tools: How To Write (And Understand!) Coroutines Tests
Bill dove deep into testing coroutines--how you don’t need exotic tooling to get the job done, and how fully grasping how something works gives you superpowers. (probably my favorite talk).
“If I can write good coroutines code that I can predict what it does, then I can write good coroutines test code"
Can’t wait to dive deeper into coroutines!
Rachel Hyman, Superhuman
15 Things I Learned Switching from iOS to Android Development
Rachel detailed her journey from iOS to Android dev and gave me so many memorable takeaways:
“only compare yourself to yourself”
“find your corner [to fight burnout with this one weird trick]”
“the importance of intuition [what do you feel a pull to understand?]”
Her talk was wide-ranging. Not only did she detail her iOS experience, her move to Android, the differences between iOS and Android development, and what Superhuman is doing now with Android development, but she also touched on the very human side of programming.
Ryan Harter, Dropbox
Custom Design Systems in Compose
Ryan talked about implementing a theming system at Dropbox, always keeping the dev experience in mind, while keeping flexibility for the future, and not over-engineering a solution.
This was a validating talk for me, having recently implemented a theming system for a Headway client. The approach we settled on overlapped extensively with the approach Dropbox has taken.
Building Multi-Platform Projects with MVI
Etienne detailed how he uses Kotlin Multiplatform to write shared code, while writing fully native UI code, ending up with an iOS app, Android app, and web app. Between fully native, cross-platform like Flutter or React Native, and now this, it’s yet another tool in the toolbox of companies looking to build their product. Each tool is fit for a different use case.
Nate Ebel, Premise Data
Scaling Firebase Remote Config Using Kotlin, Cloud Functions, and the Firebase Admin SDK
Nate showed how you can use Firebase Remote Config + a cloud service, to flip feature flags.
This talk highlighted a key principle of software development, paraphrased as
“breaking problems down is a superpower.”
When viewed as a whole, the solution Nate engineered looks complex and overwhelming to implement. When viewed piece-by-piece, it’s reasonable and doable. That ability to break overwhelming and ill-defined problems into smaller, well-defined, solvable problems is a trademark of a great dev.
Summary, sharing, and resonance
It’s wonderful how the talks that appealed the most to me are the ones that spoke to experiences I’ve had (thinking specifically about localization, coroutines, and theming).
But it’s different for everyone, and I can’t wait to catch up async on all the talks I missed!
It’s a great reminder
For your shared knowledge to be useful, it doesn’t have to be useful to everyone who comes across it.
We’re all at different points in our career journeys, using slightly different tech stacks, and solving different problems for different clients/products.
Share your learnings out into the world!