Heads up... You're reading this book for free, with parts of this chapter shown beyond this point astext.
You can unlock the rest of this book, and our entire catalogue of books and videos, with a raywenderlich.com Professional subscription.
Gabriel is an Android engineer at Tonal where he works on bringing strength training into the 21st century. He also maintains Lottie for Android, an animation library used by tens of thousands of companies as well as MvRx, an Android architecture library built on top of Android Jetpack. Prior to Tonal, Gabriel was an Android engineer at Airbnb where he worked on a variety of Android product and infrastructure projects. Gabriel was also one of the first engineers on Android Auto. On Android Auto, he owned a variety of projects including assistant, system UI, music and phone calls.
Connect with Gabriel
You are a very senior developer, having worked for some of the big companies in the Bay Area in California. What kind of leadership have you had to show in your role?
Making decisive decisions can be challenging up front but pays dividends in the long run. One example was the decision to sunset React Native at Airbnb. Even though many teams were successfully using React Native and we had some groundbreaking projects in the pipeline, it was clear that React Native was never going to gain significant traction beyond what it had already captured. Fortunately, we made the hard but unambiguous decision to sunset it. This required working with many teams using React Native to reduce the impact on their roadmap while communicating broadly and without ambiguity that React Native is being fully deprecated at Airbnb. It would have been easier up front to reduce our investment and allow it to continue organically. However, the result could have been hugely detrimental to the developer experience internally and the quality of the product externally.
What is your leadership philosophy?
A high-functioning team is greater than the sum of its parts. However, a toxic culture can grind an entire organization to a halt. Also, many people in tech are truly passionate about their work and make it a part of their identity. In doing so, a positive or toxic team culture can bleed into every aspect of their life. As a leader, you have to recognize the unique personality of every single member of the team to maximize their potential and enable them to do their best work. As soon as personality clashes and conflict start to arise, it is important to be direct and approach the problem head-on before it grows and affects more people on the team.
What is something you had to learn on your own that you wish someone had told you back when you started in this industry?
The code you write doesn’t have to be perfect the first time you write it. When writing something new, I often like to write it a few times, making a huge mess in the process. In doing that, I’ll try several different approaches, freely throwing away code and refactoring things until something feels right. Only once I have a full picture of what I want to build will I clean everything up and make it presentable. From my experience, useful insights emerge during the building phase of any project that would have made a meaningful impact on the original design phase. Constraining the building phase to the limited set of information you had during the design phase inevitably leads to a local maximum solution and prevents explorations into new approaches that may become clear while building.