The spooky holiday marks the end of October. Of course, Hacktoberfest has come to an end as well. Looking back, there's a lot to reflect on...
🛠️ Work I've Done
-
distrochooser/distrochooser#316
I spotted a faulty link while reading through the setup doc. It was supposed to point to a different repo by the same author. I found the correct link and fixed it.
-
distrochooser/distrochooser#318
(Not a pull request) I encountered a database migration setup issue during my setup following the doc. I filed this issue and it was fixed later by the maintainer.
-
distrochooser/distrochooser#320
There was a layout issue on a certain page. I used the browser developer tools to inspect the css setup. I had to re-familiarize myself with some bootstrap concepts. Eventually, I was able to fix it.
-
This was a new feature implementation where I added the abilities to import/export/reset the settings for this GNOME Extension. During the development I discovered several bugs and reported them to the maintainer. The maintainer was applying bug fixes and working on new features in parallel to my work, so several rebases/merges had to happen in the process.
We discussed extensively on ways to implement this feature and exchanged ideas to tackle challenges. It was a very positive and certainly my favorite experience so far. -
mattermost/mattermost-mobile#8260
There was some unwanted behavior in Mattermost's mobile app: Ephemeral posts stay after a refresh, while they are expected to be removed. I wrote some code to query these posts by their type, and remove them on refresh as well as during app relaunch.
I worked closely with three Mattermost maintainers on GitHub and on their community server. We discussed the approach to handle asynchronicity. I helped testing the performance of this new behavior. It was merged shortly after the next PR. -
mattermost/mattermost-mobile#8278
Since I added a function to query posts by type for the last PR, a maintainer requested another PR from me to add an index to this column.
Here we ran into an upstream issue with WatermelonDB where creating indices is not supported during migrations. This issue was discussed on the community server, where we eventually settled on a workaround.
Later, one of the maintainers suggested a SQL query change which turned out to induce errors. We had more discussions on this topic and the PR was merged after we applied the solution.
🖥️ Technologies
Throughout this month I've explored some technologies which I was not familiar with. Here's a brief list:
- Python + Django
- GJS and the GTK library
- TypeScript
- Asynchronous Programming
- React Native
- React JSX
- WatermelonDB
- SQLite
- Android SDK/Emulator
🌳 The Liveliness of Open Source Community
From a user's standpoint, I've always been an open source enthusiast: I run Linux and mostly open source software on all my computers. I self host everything if there's an open source solution. I visit random GitHub repos and try out different software as a pastime. I stand by the ethics and philosophy behind free software movement. I truly believe this is the way software should be.
However, like many other people, I have had concerns of the efficacy of this volunteer-based system. You always hear stories about projects going unmaintained or abandoned - After all, coding is not an easy task and people have busy lives. Would there be enough people who are willing to sacrifice their precious time for these projects to be sustainable?
Throughout this month I've looked across the internet to find projects to contribute to. It was shocking to see how many activities are out there - You can find active discussions and pull requests everywhere, even on a random niche project with only 20 stars. Yes, there are a lot of abandoned projects, but if there's a need for it, you're almost guaranteed to find a fork.
Of course, this doesn't completely eliminate my doubts. However, it closed the gap enough that I'm now more confident about the practicality of open source as a concept.
🏬 Corporate Projects vs Community Projects
I always had this idea that open source projects created by corporations are somehow less "open" than community-driven ones. I assumed they would have stricter rules and more gate-keeping of what goes in.
My perspective definitely changed after this month. I've seen community projects being picky (some even hostile) with contributors. I've also seen corporate projects being very open and welcoming.
I also feel the need to point out that most people, whether from communities or corporations, are nice and open-minded. Nowadays we are quick to associate internet with toxicity (not without good reasons). But please don't forget that nice people are everywhere as well.
❤️🩹 Anxiety, Perfectionism and Burnouts
This one is a bit more personal. I've been dealing with crippling social anxiety for as long as I can remember. I got into all this with the intention that, it could be an exposure practice for me as well.
This month has hit me with a fair amount of anxiety. I had worries of myself not explaining things well, not responding quickly enough, not understanding the project well enough, not writing good enough code... But I managed to pull myself together with my passion as fuel, and a little help from therapy.
Some driven by anxiety, some by hyper-fixation, I have the habit of putting extra care into everything I do. Maybe too much sometimes. At first, I did the same thing with my code, my comments, my questions, and this has led to frequent burnouts.
As I interact with more people, I realized almost no one expects you to understand things straight away. Sometimes it's simply easier to present the mistakes. All the maintainers I've worked with have been very kind and patient. They have given me great guidance along the way, without which I would have been completely lost. The amount of joy I had from our interactions was worth far more than the non-existent humiliation I thought I would get.
And hey, they make mistakes too!
With burnouts, I supposed I need to learn when to stop. There's a diminishing return after which the quality won't get much better, even if I put in more effort. I still need to figure out the balance.
🏆 Conclusion
Overall, this has been an incredible journey! I've developed more technical and communication skills. I've had great fun with some wonderful people on the internet. I feel accomplished from the work I did as well as the personal growth from this experience. 10/10 would do it again!