Eileen's Dev Blog

moon indicating dark mode
sun indicating light mode

Volunteering at DroidCon NYC

September 02, 2019

I was a DroidCon NYC volunteer on Aug 26th-27th 2019! I was a bit nervous before the event since it was my first time volunteering at this conference. I wasn’t volunteering with a friend nor did I know much about Android development. I was doing this alone. Eep. Despite the circumstances, I wanted to learn more about Android and development in general - I knew that volunteering at DroidCon would help broaden my knowledge.

What’s DroidCon?

DroidCon is where the Android dev community gathers to learn from industry leaders about current trends, challenges, and best practices in the Android world. This year, DroidCon went with a different format: in addition to the usual conference setup of panels taking place in individual rooms, they also had an open stage layout. Three of the tracks followed an open stage layout, meaning that attendees can freely navigate from one stage to another without bumping into partitions. To listen to speakers in those 3 specific tracks, DroidCon provided a pair of headphones and audio receiver that acted as a radio device. Attendees could change the channel on the receiver to tune in to different panels. Interesting concept!

Working as a stage manager

My role at DroidCon was stage manager. As a stage manager, I assisted the audio technicians and speakers with setting up presentations, ensured that the talks ran smoothly, and provided additional aid around the conference. I also had to locate the speakers before their respective panels. Fortunately, they arrived with enough time to set up their presentations ahead of scheduled program. There was one particular panel that involved five speakers - they were conducting a joint industry discussion. Thankfully a fellow volunteer, Khaing, tag-teamed with me and found all 5 in time. Phew.

Lessons from DroidCon

True to its name, DroidCon was targeted for Android developers. As such, many of the talks were filled with Android-specific terms that completely flew over my head. Kotlin? Gradle - what? (After some research I realized these were tools/frameworks used in Android dev.)

Interestingly, I did notice that within Android development there were similarities to the web development process. A few key concepts that resonated with me were:

Managing repos is difficult

  • Airbnb used to have multiple repos for different platforms (i.e. Android, iOS, react-native, etc), but then they moved to a mono-repository system
  • Certain companies like Facebook and Uber were fans of a mono-repo where all developers work from the same repo
  • Not only is it easier to manage a single source of code, but it also encourages collaboration across teams - an engineer in product team A can see what product team B and provide helpful insight on the code
  • This decreases silos within a company, increasing speed and encourages knowledge-share

Big companies struggle with selecting which tools to use, too

  • Managing devDependencies is tricky, because a single codebase utilizes multiple devDependencies already and there are numerous alternate options to choose from
  • Be careful when adopting new tools - always do research before diving into the newest tools/frameworks to determine if said tool would be a right business fit
    • You might just spend all that time learning a new tool only to realize it doesn’t work with your codebase needs
  • On another note, many companies were very hesitant to adopt Kotlin, but it was a popular topic that was mentioned at most panels at DroidCon - seems like it’s a growing trend

Code ownership is a double-edged sword

  • Often times when there are company-wide reorgs, devs are thrown into an unfamiliar codebase with no one to refer/relay questions to
    • Current devs then need time to understand unfamiliar codebase
    • Devs have to be willing to change someone else’s code
    • Be the subject matter expert of a certain code block - the point of contact, however this can…
  • Encourage gatekeeping and decrease productivity

Create healthy code reviews

  • Code reviews can encourage a positive culture and make it an overall positive experience
  • Many devs dread code reviews
  • Manage expectations: help devs be proud of their code!
  • When commenting on their code work, don’t just block a dev’s code from shipment without any context, provide constructive feedback

Scaling an app? Keep code MODULAR

  • Modularize by feature - be able to reuse blocks of code for easier management
  • Set up app for CI (continuous integration) in preparation for the future
  • Stick with mainline tools that are tried and true

Volunteering at DroidCon helped me gain insight into the development world and I am grateful to be a part of it! No matter what discipline you’re in, all developers face similar challenges. Sure, the event was fast-paced and filled with content I didn’t fully comprehend, but I managed and learned about Android development. I also met other aspiring developers within the volunteer group - it was fun working with them! I hope that the next time I meet them, they’ll be successful in their development careers.

Thank you to the DroidCon and volunteer teams for a great experience!