< More Posts

Google Code-in '19 Experience

Published 14 February 2020 at Yours, Kewbish. 1328 words. Subscribe via RSS.

Introduction

Wonderful, I thought, as I woke up. More homework.

But to my surprise, when I checked my email, I found out that:
Google Code-in Winner!

Thank you to all the Google Code-in team for making this opportunity possible, to the mentors for volunteering their time to help us grow as developers, and to the awesome Liquid Galaxy community for being super welcoming and supportive!

What is Google Code-in?

Google Code-in is a great first stop for pre-university students interested in technology to begin contributing to something called open source. Open source operates under the idea that work should be available for anyone to collaborate on and download to use freely. Some examples of open source that you might be familiar with include GIMP, a popular image editor, and Blender, a 3D modelling tool.

Several open source organizations sign up to mentor for Google Summer of Code, another great program for university developers, and based on their success there, are invited to work with Google Code-in. My organization was Liquid Galaxy, a super cool panoramic display software based off Google Earth that uses networking tools to orient several displays around one.

Liquid Galaxy Display
Taken from Liquid Galaxy’s site.

For seven weeks, students work to complete a variety of tasks, involving everything from coding, design, testing, and documentation. At the end, mentors from each organization choose 6 finalists: two of which become Grand Prize Winners. I’m honoured to say I became one of them!

My Journey

On December 2nd, I luckily had a day off school, so I began registration right at 1000 PST. From there, I spent the next seven weeks fully immersed in development and learning.

I began with easier Markdown, documentation, design, and testing tasks. One tip: balance easier tasks with more advanced tasks. This will allow you to continue working and making progress on tasks while also allowing opportunities to explore new tools that you’re unfamiliar with.

Throughout the later half of the competition, I began familiarizing myself with the Liquid Galaxy system and virtual machines, which are mini-computers running on your PC. I was completely new to this, so I had a few issues along the way, but managed to figure it out with the guidance of mentors and fellow students. From there, I built a variety of controllers and scripts to work with the Liquid Galaxy, as well as testing extension apps and even building one of my own. See Favourite Tasks for more! I found the more difficult tasks challenging (as I didn’t have much experience with the technologies used) but good chances to learn a new technology (such as VMs and networking protocols). Another tip: if your organization has marked some tasks as advanced / top / important, take the challenge on! Mentors will be more than happy to support you through your learning process, and the multiple ‘aha’ moments will be remembered forever.

Unfortunately, Google Code-in overlapped with holidays, so I did have to sacrifice some time there. As well, school remained an important priority, and I’m in a pretty intensive program. Overall, I’m still really proud of the effort I managed to put in.

Favourite Tasks

Some of my favourite tasks included:
- Building an Ansible installation script. I had no idea how to use Ansible initially. My first submission was a half-hearted attempt at a solution, but I managed to develop a full-fledged Ansible installation script for Liquid Galaxy. Thank you orestes, my mentor for the task, for guiding me through the process of learning and indicating areas where I could substitute commands! I ended up really liking the task and plan to use Ansible in the future somewhere and somehow.
- Creating an Arduino controller (or two, or five). This really allowed me to further examine the command structure of how the Liquid Galaxy could be controlled, and let me explore the world of electronics and serial communication, as well as networking. Lucky I had a WiFi-compatible Arduino from my birthday :) Definitely plan on creating similar controllers in the future.
See my design here!
- Revisiting Unity to make a presentation. I’d taken Unity classes in the past but basically forgotten about it. I enjoyed developing the RPG-like text system, and creating a relatively-reusable controller script for the game system. In general, it was a super cool re-introduction to Unity, and maybe I’ll make games for projects in the future.
- Installing Liquid Galaxy 3 times. First time, I was using WSL, which obviously wouldn’t work, but I didn’t want to get into VirtualBox, which seemed super scary at the time. (Spoiler alert: it wasn’t.) Second time, I was using install.sh and an improperly configured NAT network. Because I was a newb, it was a little frustrating, but I eventually switched to a promiscuous Bridged network and a drivers.ini setup. Finally, third time’s the charm, and I managed to get it to work. The ‘aha’ moment was an amazing feeling, and I’ve managed to get it to work 100% of the time ever since.

Community

The Liquid Galaxy community was honestly an amazing part of the whole experience. Whenever I had a question, I knew they were there to answer, and if not, they’d give advice on how they tried to fix it, and together, we’d somehow finagle a solution. Everyone was super welcoming and happy to help, which was a godsend when I was trying to figure out where the settings button was… (oops!)

Sadly, the active community’s getting a little smaller, but we’re still talking and sharing thoughts!

Women in Tech

As a female POC in tech, I’ve heard countless stories of the discrimination in workplaces. However, open source, especially the community around GCI, seems to be really welcoming and accepting of everyone. I even got this in the Slack:

Open Source is for everyone, regardless of race, religion, etc.

Which just goes to show how kind everyone is.

To all the women / POCs out there: if you’re thinking of jumping into development, don’t be afraid. My personal experiences have been eh at times, but open source is an amazing first place to contribute. The whole point of open source is that it’s for everyone, regardless of price, and regardless of race / gender / orientation / religion / etc.

I’m really happy that I’m able to represent a visible minority at Google Code-in, and to represent at the Winner’s trip! Haven’t managed to get other statistics about gender diversity at GCI, but check in at the Google Open Source blog for more.

Mentality

Going through Google Code-in, it’s important to consider it a learning opportunity. The winner’s trip may be amazing motivation, but first and foremost, try to learn. It’s important to try tasks above your task level and explore as many technologies as you’d like, and the organization will evaluate your willingness to learn as such. Google itself points out

It is possible that someone who completed 15 challenging tasks could be chosen as a Grand Prize Winner over someone who completed 35 trivial tasks.

Keeping in mind that you’ll have to be Top 20 to be considered, you’ll need to do quality work if you’d like to be selected as a finalist. Regardless, doing good work is more important than winning!

Conclusion

Overall, I’m extremely happy to be one of the winners, and congratulations to all the other students, especially those in Liquid Galaxy and Dylan, my fellow winner. (See you in June! :) ) As well, congrats to Alvii_07, mobiusdonut, Janiru Semitha, and Merul Dhiman, our finalists! (Kudos to kiminonawa, my fellow GCI commiserator! You did great and now you’re going to win CCC… ) Special thanks to the mentors for your time and support, and for everyone who participated for making Google Code-in amazing!

Thank you to my parents and friends for putting up with my mental instability during these seven weeks - you know who you are.

I’ll be back with another post in June, highlighting my trip to the Google headquarters.

Cite me

MLA: Ma, Emilie. "Google Code-in '19 Experience." Yours, Kewbish. n.p., 14 Feb. 2020. Web.

APA: Ma, E. (2020, February 14). Google Code-in '19 Experience [Web log post]. Retrieved from https://kewbi.sh/blog/posts/200214/

UBC citation style.

- Yours, Kewbish


< More Posts