The end of Google Code-in 2019
21st January, 12:32 AM. This day has finally come.
I’m lying in bed, looking at my laptop next to me and feeling a bit confused and sad. I just got this email
I had this ambitious plan for tonight — add paging of users in the app we’ve been working on thought the contest, but I can’t concentrate on it. The docs for the Android Jetpack Paging library are mediocre and the whole library itself doesn’t seem to be as good as it’s advertised. This + my overall exhaustment made me abandon my initial plan and write this post instead.
Today’s the last day when you can claim a task for this year’s Google Code-in contest. It’s really scary how time flies by. I can’t believe 50 days have passed so fast and it’s all coming to the end. I can genuinely remember December 2nd when the contest started. I remember getting back home, doing all schoolwork as fast as possible to claim the first task as soon they were revealed at 7 PM.
All those events seem so close yet so far.
Second try
My whole journey with Google Code-in started with the 2018 edition. I went with JBoss Outreach because they had Android projects. I really liked the mentors, the community and the overall atmosphere there, at JBoss, and I was sure that I would go with JBoss again this year — it was an awesome experience, where I learned so… but hey, it seems to me that I’ve already written about this. Let’s focus on the 2019 edition.
When the organizations were announced on October 29th, I thoroughly inspected each one of them and one particularly caught my eye — and surprisingly it wasn’t JBoss.
It was Systers — an organization that advertises itself as “helping women find their potential in code”. The detailed description was interesting too — 1 project comprising 2 repositories, the Flask-powered backend, and the Android app written in Kotlin. The project is aptly named Mentorship System and its purpose is to help people get into 1:1 mentorship relations. It was designed for women, but it’s freely available for everyone.
I thought — that’s it. I signed up on their Zulip chat and said hello to everybody. A few people responded, one of them wished me a “great winter of code”. Now, after seven weeks, I can say — it was more than great.
But what made it that great? I can think of two things.
The tasks
The name Google Code-in suggests that the tasks are related to programming. However, in Systers, programming tasks were only about half of all tasks. They were focused on Android development with Kotlin or backend development with Python and Flask. And as much as I know Android dev quite well–after all, it’s been my main area of focus for the past 3 years–I was a complete newbie to Flask. When I first opened the backend project in VSCode, I felt overwhelmed–tens of files residing in a dozen of folders. But I didn’t surrender and after two weeks of being in almost constant contact with that codebase, I felt right at home.
The second half of the tasks were focused on writing documentation and implementation proposals of features, creating designs or even presentations. In the beginning, I wasn’t pleased with that fact–my thinking was“I came here to code”–but as I did more and more such tasks, I liked them.
The variety of tasks was what I liked too: some required you to simply implement a feature in code, but others asked for the full architectural solution for a particular problem. I have to say, those were much harder tasks than the coding ones. For example, writing a coherent, 8-page technical document that explains in detail how to implement the comments feature required a lot of analysis, thinking and planning. At some point, I was even a bit annoyed by such tasks. I thought that simply implementing a particular feature in code would take me less time than writing a document on how this feature could be implemented. But after my first task of this type was approved, I changed my attitude towards them to a more optimistic one.
At some point, we were informed by the mentors that all contributions count — what meant that even if you do work outside of the GCI, it will still count. I really took that to my heart.
Throughout the contest, I made a lot of such “outside GCI” contributions. The ones I’m proud of the most is the CLI for the backend project and a complete rewrite of the Android app to Flutter. When I first got this idea, I thought to myself “Man, you’re crazy. You can’t create an app in under 2 weeks”. 2 weeks is that’s how long the Christmas break lasted.
2 hours after thinking about this, I successfully signed in to the pre-alpha version of the Mentorship System app running on the iOS Simulator.
2 weeks later, the Mentorship Client (which is how I named that Flutter project) had the same functionality as the Mentorship Android. I was amazed by 2 things:
- How incredibly fast development Flutter enables
- How little sleep is required to be conscious enough to produce code of acceptable quality
I hope that this app will be “adopted” by Systers as one of their project. It’d be my first open source project that actually took off.
The people
A year ago, I wrote that it’s a bit funny that Google Code-in is more about people than about code. One year later, I still think so.
I don’t know if you experience the same feeling as I do sometimes. It’s the feeling that if I experience something great, and then something great finishes, and next year there’s something great 2 — I’m worried that this new edition won’t be as great as the first one. I think I acquired this rather negative attitude towards new things because when I was younger, I used to be very excited about them, but eventually, I was often disappointed.
I was worried that this year’s Google Code-in be as awesome as the ’18 edition, too. I knew it’d be nice and that I’d learn a lot–learning is an integral part of the Code-in DNA — but will it be as awesome?
After 50 days, thanks to a community gathered around the Systers organization, I can say this with full confidence: it was. The community of mentors and mentees, girls and boys, epic programmers and great writers. Each of them working hard and giving their best. Their swiftness of work, their openness, and readiness to help everyone were one of my main sources of motivation. It was hard to keep up with them, but I did my best.
The end
If you haven’t participated in Google Code-in, but are eligible for it — don’t think whether to take part in it anymore. Instead, learn, code and become even better in the technology you like the most. When the contest starts next year, look for the organization which uses this technology and just give your best.
I also have a bunch of tips, based on my own experience. I’d like to share them with you–maybe they will motivate you in the moments of doubts and weakness.
- Work hard. Systers certainly wasn’t the most popular organization in this year’s GCI, yet the competition was very hard. In bigger orgs, it must be incredibly hard. In order to win something more than a cool T-shirt, be prepared to sacrifice all of your free time to GCI. And remember–quality of the work counts more than its quantity. Of course, it’s best to have both, but when you have to choose (and you will have to choose), definitely go for the quality.
- Be engaged. It kind of corresponds with the previous point but is focused on people instead of tasks. In my opinion, chatting with others and helping them is as important as doing tasks. Important, and fun! You’ll make some new friends for sure and you’ll support each other even though you’re competing at the same time.
- Explore. Even if you found your niche and doing tasks related to it is a piece of cake for you, don’t focus only on it! Try something new every few tasks, even if you have no idea how it works. It shows the mentors that you’re not afraid of going outside your comfort zone and the skills and knowledge you learn will stay with you. In my case it was Docker–I had a very vague concept of what it is but decided to give it a try. After a few hours, my task was accepted — but what I remember more is that very cool feeling of learning something new.
The real end
So that’s it. I’m 17, so it was my last chance to take part in GCI. I did my best and I’m sad it came to the end.
As of now, I have 48 tasks approved, but this number will be bigger for sure — because the post you’ve just been reading is a task itself.
My journey as a participant is over, but I’m already sure that I want to be a mentor next year. My little dream is to see students in next year’s GCI do tasks related to the Mentorship app made in Flutter.
I hope that you enjoyed reading this. If you have any questions or would simply like to talk, comments are yours.
Bartek