(This is part of a (mandatory) blog series documenting my experience in GSoC 2020 with Wikimedia Foundation. This series should serve for record-keeping purposes and as a reference for future GSoC students.)
The Application Process
It’s 1:59 am Hong Kong Time on 5th May, my alarm woke me up and I scrambled to grab my phone. With my heart beating faster and faster, I went to the GSoC website and checked my email inbox. Well, I got selected, yay, lol. I stayed excited about a few minutes before I decided that I should go back to sleep, xd.
Given that quite a lot of students seems to not have a very clear idea on how to prepare for the program, here’s my background (briefly) and what I did.
Like most self-taught programmers (at least as to my knowledge), I started with simple static web development (HTML, CSS, then later, JS) roughly 10 years ago. Slowly figuring out that “programming” is a lot more than just websites, I moved onto PHP and later with my friend’s (zhuyifei1999) help, I started developing bots for Wikimedia projects using Python.
Till this day, I’d say that I’m comfortable with HTML, CSS, JS and kind of proficient in PHP and Python.
In GSoC 2019, I applied for a WordPress-plugin-related task in Creative Commons, which I somehow didn’t get selected. Not knowing the exact reason for not getting the position, I thought that maybe it would help if I started preparations earlier next time.
Prior to the application period, I had to pick one (or more) projects to apply to or at least explore in. With Wikimedia and Python in my mind, I found the perfect task that matches my skills, while allowing me to learn new stuff: Design and Develop a tool to correct false depicts claims manually on Wikimedia Commons. That’s when I decided that I’d get this task.
According to the task description, there are a few micro-tasks that we can work on. I started with the simplest one and worked my way through them. Only 4 micro-tasks were attached with the main task, but I noticed that all of them are related to ISA, a project that assists users in adding structured data to images on Commons. Through contributing to the micro-tasks, I’ve gained a basic understanding of the code behind ISA, which I then decided to help out with other outstanding tasks for ISA. I did that for 2 reasons: First, quite obviously, to “prove myself”. Secondly, I do genuinely find it fun in the process.
The application is basically split into 2 major parts, prior contributions and the proposal. For the proposal, I simply gave some thoughts to what I vision the proposed tool to be, how it would work and made a very simple prototype for it.
The First 2 Weeks
Well, with all those excitements aside, it’s time to get to work. According to my proposal, there were a few outstanding tasks to be completed, mainly to setup development environment (Toolforge tool, Gerrit repository and Phabricator project) and discuss implementation details with my mentors.
As we’re developing a new tool, I thought that the community’s needs should be considered during the design phase. A questionnaire was created to capture the community’s opinion and suggestions on various topics and issues on the tool.
On the last Saturday (16 May), we (me and the 2 mentors, Navino and Eugene) had our first meeting, YAY 😀 . We basically learnt more about each other and talked about what’s to be done soon.
I find this meeting extremely meaningful, at least to me. As to be honest, prior to the meeting, I wasn’t sure what’s the best way to contact my mentors. I was worried that if I’m too pro-active, it might “scare” them off or at least be very “strange”, which is also why I didn’t give them a lot of updates on what I’m doing prior to the meeting.
During the meeting, 2 things were made clear regarding our communications: 1. I’m expected to really keep them in the loop, that I didn’t have to worry that I’m “annoying” them. 2. My mentors hope that this could be less like a mentor-mentee relationship, but more like a community-developer-partner one.
Besides of communications stuff, we also talked about our next step, which we decided would be to collect more responses on the questionnaire by the last week of the community bonding period, before we start to decide on details of the tool, based on our knowledge and the community’s suggestions.
Finally, we decided that such meeting shall be held once per week.
What I’m Thinking
Well, I think that the meeting was great. No more worries of bothering them, which turns out was just one of my excessive worries 😛 . Everything feels extremely smooth as if everything is already laid out in front of us. We are like a team and I do very much look forward to working with my mentors.