My Journey at Google Code-in 2019 — Part 1

paraxor
9 min readJan 22, 2020

--

Go hard or go home.

Edit I: I’ve won the Google Code-in! Looking forward in meeting my winner counterparts!

Edit II: The Grand Prize Winner trip has been cancelled due to COVID-19 outbreak.

Google Code-in.

Google Code-in is a contest to introduce pre-university students (ages 13–17) to open source software development. Since 2010, over 8100 students from 107 countries have completed work in the contest. Google Code-in is often the first experience many students have with open source, the contest is designed to make it easy for students to jump right in. Open source organizations chosen by Google provide a list of tasks for students to work on during the seven week contest period. The organization I’ve taken part is The Fedora Project, which has 2610 tasks accepted by the mentors (The highest ever till date).

Myself.

Before moving to the journey part and just like everyone else, I gotta introduce myself. I’m paraxor, a student at GEMS United Indian School (GUIS) participating from the United Arab Emirates. The year 2019 was awesome considering my participation in the Google Code-In. Learning to code and participating in the Google Code-In are my best decisions taken till date.

I’ve started coding at the age of 16, which translates to 2019.

Yeah you read it right.

December 7th, 2019.

Totally forgot that Google Code-In has begun until my elder brother reminded me. I knew basic C, C++ and python, so was confident on settling with 3 tasks for a T-shirt. My first organization was CCExtractor Development. Started off with a popular task of theirs which was to find whether if the given number was an Armstrong number or not. Failed miserably twice as the following code was to be written in Ruby. Gave up on the task and started searching for the ones which might be right up my alley.

The Fedora Project.

I don’t know what happened exactly but I ended up clicking on the task `Reverse Engineering to extract password from binary files`. This is for me! My first task! (At-least that’s what I thought). Ended up completing the task with radare2 in 2 hours.

Chotto Matte.

I’m done with the task. What next? I started surfing the tasks of the Fedora Project Organization. Most were Cyber Security related ones! *happy padoru noises*. Slept peacefully the following day and found more tasks on Cyber Security. Worked my ass off and done with 4 more tasks. Remember the first one I’ve submitted? Didn’t get accepted yet. Found Nishant Parhi on telegram and asked my doubts regarding the same and my upcoming tasks. Set. Found another task related to Information extraction from Image stuff. This time the mentor was Zubin Choudary. There was no mode of fast communication except the email address given in the task container. Mailed it. Took ages. Got a reply. Task went missing. Wow.

All the struggle for nothing. NVM. Got working on more tasks from Fedora Project. Done with 8 tasks and the first one is yet to get accepted. Pretty impatient of me but kinda handled it.

3 days done. Got a message from Nishant that I’ll have to ask my further doubts on the Telegram Channel as a new rule has been implemented. What? It’s been 3 days and I haven’t been in the official chat channel? Heck gotta do a join immediate.

Never expected such a warm welcome :) And my Journey has officially started on December 10th.

Loved the community. I still remember the feeling from the acceptance mail of the first task. Somehow I didn’t want to stop so soon. Started to look at the bigger picture and realized how big I can grow with Google Code-In. I could become the first UAE resident to win the competition. News reporters might barge into my home XD. Damn chills dude!

Anyway, I’m not very competitive and kinda concentrated to win the Google Code-In from the Fedora Project. I had this resolve, but didn’t last long until I discovered the “leader-board”. People on the leader-board are the ones who have a chance to be winners/finalists. Didn’t take long to digest I wasn’t there. How do I get into the leader-board? What conditions should be met? How many tasks could the top guy have? What does quality mean? So many questions at the same time. Kept moving forward to see what happens. After all, this is my first “coding” competition and being patient is kinda tough.

Hit the leader-board after my 7th task got accepted. Learnt that the leader-board is the list of Top 20 candidates with the most number of tasks. Which would mean I’m at 20th with 7 tasks. Felt like I’ve ran fast enough to catch-up with the Top 20. Now what? You’ve got two ways now. Run faster than everyone and finish the game, or trail behind the Top guys ensuring you store up enough energy to pack a punch later on. That’s when I got struck about the fine line between Quality and Quantity.

THIS QUOTE APPLIES TO ME AHAHA

I could feel the thin line balancing between Quality and Quantity. Was so thin I fell into the Quantity pit multiple times. For once, I wanted to feel what Quality felt like. Found the perfect task to do the following (Actually, over-killed it without knowing what).

Animate Math with Manim.

Looked around the web for lot of examples, made a plan on what to do and broke down my output into several parts to test each of them. My brother was solely responsible for teaching me how each part works and guided me in doing the same. The mentor responsible for the task was Purusharth Saxena.

I received an irrefutable offer from Mentor Purusharth and that’s the proudest feeling of my life. An offer that could change my career. An offer beyond winning the Google Code-In. An offer which millions of students in India wish for. An offer I cried for.

Fast Forward, This just catapulted both my confidence and views on task quality.

My views on task count have changed significantly. I now find the thin line a pavement to my success. I’ve started to learn much more than the task intended. Much much more. Get down to its bare bones and analyze its structure. Why do the task simpler where you can do it better? This isn’t a short code, easy to understand challenge. There’s always room for improvement, just takes some experience to see it (nvm just another noob with his self proclaimed quotes).

Meanwhile, An awesome friendship has begun somewhere just because we were weebs. You sir deserve a separate story 👼 .

Just a question :p

Back to my Journey, I’ve met Mentor Alireza Baloochi who happens to live in the UAE (As far as I know, only we both happen to be from the UAE to be a part of the Fedora Project :p). Enjoyed his task “Setup Wasabi A/B testing on podman” the most of the Google Code-In.

Well, I had a “plan” to maximize my winning chances but failed horribly. Someone who plans to participate in the Google Code-In (I may too) again, this might be helpful.

  • Take up tasks which have direct contribution to the Organization. These involve writing PRs (Pull Requests), Documentation etc.
  • Take up tasks for a certain mentor successively. Ask your doubts on how you could improve the same for the current tasks and the upcoming ones.
  • Always be attentive and helpful to the queries posted by other students on your respective channels. You’d never know if some student’s query could improve your task submission quality.
  • Hit the mentors with the kind of Quality they’d never expect from. Maintaining good relations periodically always helps.

I’ve tried the methods listed above, but not all at a time. I was left with very less time when I devised this, and there’s no guarantee that the above conditions will make a good impression upon you.

Mentors I’ve worked for.

  • I’ve had some really good fedora-messaging and Django tasks from Shraddha Agarwal. You’ve done awesome work on the task “Setup Fedora Happiness Packets in Minishift” and enjoyed a lot while working it up.
  • A mix of tasks having Automation, making Social Media Bots, GUI applications, Openshift Django apps, Web scraping by Alisha Mohanty. Loved the Automation tasks in specific (which include the Bots too). Never worked on Web scraping before, found a lot of cool stuff on working the same.
  • Awesome Cyber Security and Ansible tasks by Nishant Parhi. Thank you to you and Vipul for setting me a strong foundation on using Ansible. I’ll surely make use of this knowledge on CI/CD pipeline automation in the future (Although I’ve just scratched the surface).
  • Lots of tasks on setting up and making use of most used open-source applications and GUI tasks by Alireza Baloochi. Mind sharing your knowledge on these applications later? XD Found beauty in working with the integration of multiple applications for the common good.
  • Many Geographic Information System tasks and many more tasks utilizing NumPy and SymPy by Purusharth Saxena. Thank you for providing me an opportunity of a lifetime and building me a strong foundation on Numerical and Symbolic Computation.
  • A small touch of tasks related with competitive programming and GUI game applications by Rahul Otwani. I’m really grateful for your task reviews although most of them required more work, they were the ones that pushed me a lot in digging deeper into stuff.
  • Some fun optimization tasks by Bt0dotninja. Thank you for brushing up my algorithmic thinking.
  • Out of blue Internet of Things tasks by Anuj Jain. Attempted your tasks but no avail. I’m really looking forward to solve them in the future!
  • Official contribution tasks to Fedora Project by Niharika Shrivastava.
  • Many more tasks by Amitosh and Manaswini das which I didn’t have time to attempt. Sorry for that.
  • Lastly, Siddharth Vipul. The disguised mentor. Literally an elder version of Umaru-chan XD.

This has been very memorable, made a lot of friends across the globe and got an opportunity to be a part of the Fedora Project with these amazing mentors!

And by the way, this guy requires some special attention. There must be one in every organization who spies on his competitors XD.

Task count.

Y’all were waiting for this, aren’t you?

Leave a clap and I’ll be updating more about my Journey. Thank you mentors for the support. I’ll cherish these memories for a lifetime :)

I’ll make my GitHub repository public once the Google Code-In officially ends, which will be done on my brother’s account p4r4xor.

Fingers crossed for February 1st. I know some students who have done really well and have a task count above 70. After all, It reduces to a gamble where some has to take risks for ensuring success. This shall be a long weekend and I hope to be a finalist. Looking forward to participate with the Fedora Project next year!

Be persistent, do what you love & never give up. Chao!

Subete katsu ni boku wa, Subete tadashi.

And one last thing, A lie that is half-truth is the darkest of all lies.

Checkout the Part-2 of my Journey over here!

--

--