Zarah is an Android developer based in Sydney, Australia. She started doing mobile development work in 2007, and has been on a constant rollercoaster of emotions with the Android platform since the days of Donut. Recognized as a Google Developer Expert for Android, she helps organise GDG Sydney and the Android User Group Sydney. She loves board games, books, and dessert, and has a knack for eating breakfast food for dinner.
Connect with Zarah
What is the most significant mistake you see junior developers making over and over again in their work?
They sometimes make things a lot more complex than they usually need to be. There seems to be an assumption that they need to know everything all the time right now—that’s one mistake that I tended to make when I was starting, and I see it a lot now when I work with more junior developers. It’s a hard skill to learn; it takes years of experience and writing to actually recognize that something you’re doing can be done in a much simpler way. But I think the mistake is mainly rooted in trying to do everything all at once.
What suggestions can you give for overcoming this problem?
A lot of it is practice. Also coming back to something you’ve written in the past, because sometimes—especially when we’re on a project—we ship something and then it’s done, right? But I find that if I go back to something that I did even a few months ago, usually there are new ideas that come to me like, “Oh, I could have done it this way rather than that way.” Or the project is actually more simple than I thought. It’s kind of like reviewing past work for a future exam. If you go back and review your code, I think that really helps a lot.
For your learning or growth, do you draw from podcasts or books?
For technical information, usually podcasts. There are a couple that I would recommend to any fellow software developer. The first is the Android Developers Backstage podcast, which is hosted by members of the Android development team. They talk to a lot of Android engineers and people who drive changes and developments in the Android community, so it’s a really good reference as some of the episodes are very highly specific to a topic.
I’d also recommend another Android-focused podcast called Fragmented, hosted by Donn Felker and Kaushik Gopal. They talk to a lot of Android developers in the community about relevant topics that those people are working on. It’s a good first-hand account if you want to start navigating anything Android, but they also cover nontechnical topics like how to be a better developer, so it’s a really good resource.
Finally, I’d suggest Android Dialogs, which is a conversation-based video series on YouTube. It’s really good because the episodes are short so you don’t have to invest in a full 30-minute chunk of time to watch. It’s a really good overview to get on topics that are interesting, and then you can do more research on what interests you.
In addition to these community resources, what about social media? Who are people or groups that you follow on Twitter who are role models for you?
I follow one called Feminati @AndroidFeminati. It’s a collection of female developers in the Android community. I really like this group because, personally, for the longest time, well even now, I’ve been the only female developer on my team. It can be pretty lonely. But having this group of women supporting you, seeing how they interact with each other and how they bring everyone up, it’s really inspiring. They’re from all over the world, so it’s a really interesting collection of really awesome women.
The other Twitter resource to follow are the publications like Android Weekly or Kotlin Weekly. They are a good collection of community-driven content. If you were looking for technical content or what’s hot and new in the community, it might give you an idea for something you’re doing.
I also like to follow members of the DevRel team in Android. One area of development that truly interests me is the UI, so I follow them for tips, especially when I was doing a lot of vectors and animations.
But my most consistent resources are the newsletters. If there is a big conference happening and the organizers release their playlists, I go through them and see what people are talking about—especially in conferences that announce new things, like I/O or KotlinConf. That’s when new tools and new libraries and all those announcements go up. You don’t have to watch everything, so I usually just pick and choose which ones I want to watch and spend time with.
What are three other resources—tools or apps—that you are using?
I use Trello a lot. One of my teams uses it, but I also use it for personal stuff. I actually have a Trello board for TV shows I watch! So, like to see which season I’m on or if they’re on hiatus or something. So I use Trello very heavily. I’m an Android developer, so I use Android Studio. But one tool I use a lot within Studio is the ADB Idea plugin. It’s a small plugin, but I feel like all the mundane tasks of reinstalling your app or resetting your app, all those things like, it’s very useful for. It’s a useful shortcut basically. Finally, I use Hierarchy Viewer a lot. It’s just because I work with UI a lot. I’m not sure, I think it’s really an under-appreciated tool. And it was gone for a little while, but now it’s back and more powerful; I think it’s really useful, and it could be beefed up more. But yeah, just debugging UI stuff makes it so much easier, using the Hierarchy Viewer. I think it’s called Layout Inspector now.
Is there something that you learned the hard way in your career that you wish you had known when you started?
Coding is not a thing that you do by yourself. You can be the best technical developer ever in the whole wide world, but you still need people. You still need to get along with people on your team. It’s something that I try to help my team with—if you think you know something better than another person on your team, you don’t have to be braggy or snarky about it. It’s important to be kind and to help others. You need social skills, is my main point, here. So, it helps if you are a good developer, but skills can be taught. You can learn new things, you can read books or listen to podcasts, and do all kinds of things to learn the technical side of things. But it always helps to be kind.
And training people in these “soft skills” of team management is, I think, one of the biggest challenges of our industry. Having been in the software industry for more than 10 years now, I do think we’re taking steps as a community to get there. Conferences I attend, for example, are not purely technical now. I think a lot of people are more aware of the social aspect of software development.
How do we learn that? Don’t discard those talks that don’t seem technical. It’s important to go to those talks in conferences because, in the long run, those talks actually help you be a better person and not just a better developer.
Meeting new people is important, too. Following people on Twitter is mainly how I expand my network. On Twitter, you find people from different countries and different cultures, and they may present you with different points of view as well; just talking to these people would help these skills.
What’s the biggest obstacle, it could be either technical or personal, that you have had to overcome to get where you are today?
I don’t think I’ve really overcome my biggest obstacle. For me, it’s a constant work in progress, learning to trust myself. We usually set, well I personally set, the highest bar for myself sometimes, and if I don’t meet that bar I get extremely disappointed. Sometimes I don’t trust myself that I will be able to do something, or that I don’t deserve to actually be where I am now. So I’m still working on it.
What would you suggest for a person that needs to acquire this trust in oneself? Is there any way to offer training for these skills?
If you feel like you can’t do it, just give it a go. Take that jump. It’s scary and it’s risky, but sometimes it’s super worth it, especially with trying new things. One example I gave was I used to hate working with the Android build system. But it came to a point in which no one else will do it; it’s just me. So even if it’s scary, just give it a go. I’m pretty sure you’ll learn something.
In this industry, do you think what you describe above is a trend that is easily resolved?
Yes. I think one of the main things that is very misleading in the industry is that you always have to know everything. Especially now, Android specifically, there are so many new things that are new all of the time. And, now, I/O is happening, so there’s probably a hundred more new things that are coming out. When I started, I felt that the Android community dictated that I had to go and try everything that was new. Knowing everything about everything is not scalable. There’s only one of you, and there are a thousand different things. And it’s not possible to know everything all at once. So it’s fine if you haven’t tried the latest, newest thing that is out there.
How do we fix it? Helping each other as a community. There are a lot of people who share their knowledge about all these new things. And I see many times when someone writes something about learning a new thing, some people just want their opinions heard and leave negative comments and criticisms. So maybe instead of spending our energy criticizing people, we should spend more of our energy building others up.
Gaining new and positive experiences seems like a priority for you. You’re a person who has lived in different countries; what is most difficult for you about initally working in a new country?
The biggest challenge is adjusting to the culture—especially the work culture. Australia, in general, is very laid back. And I came from the Philippines where in general our work ethic is closer to the stereotypical Western way of thinking–long hours, sacrifice your time with your family, and kill yourself doing the work. But here it’s more relaxed. One of the things that my first manager here taught me was that not everything needs to be fixed now. Not everything is priority one. And that’s something that I really struggled with my first few months, here.
What would you recommend to an aspiring, fellow developer who is thinking of switching countries? Would you have a recommendation for this first experience?
The first priority would be to really find someone whom you can relate to. In that sense, I was lucky when I joined the first company I was with in Australia because there were a couple of us who were new to the country and new to the company. We need to find that support system, because, usually when you move to different countries, chances are that you don’t have any family there; that’s one of the hardest things to adjust to. You’re basically alone, like moving out of your parents’ house, but a thousand miles away. Find that support system first as a good first step. How to do that? Go to a local meetup. My second week here, I went to an Android meetup and that’s how I got to know the people who are in the local Android community. Then they became my friends. So that’s certainly a good first step.