Reinaldy Rafli

How to jump to Open Source scene

Jul 28, 2024 • 1153 words

A friend of mine (and he also read this blog sometimes) asks me to create a post regarding how to jump into the open source scene a while back. At first, I thought it’s not something interesting that people would read, but let’s give it a go.

Why I jumped to Open Source scene

Let’s start with my own story. You might see me active on GitHub, producing codes that can be viewed publicly. I don’t remember the exact reason of me doing that in the early days, but as I remembering it, it’s just for two simple reasons: (1) It’s good for my portfolio, since I don’t have to host anything and people can just see my code, and (2) I like the concept of open source that mimics academics papers, it’s available publicly and it’s for public’s use, you can treat it similar to how science innovation works (I believe this was by the end of my university, where I was writing my final thesis paper). It’s kind of plain and shallow reason to have, right?

Truth be told, most people are already knew that I don’t have a Computer Science degree, but rather I have a Bachelor of Arts degree. Since I decided a few years ago that I’m going to move forward and work as a software engineer, I need to make my stand somewhere. I know GitHub since I was a highschool student, where I put some of my stuff there. Seeing GitHub has grown to be a place where people actually pubilshed their code online, and seeing it as one of the platform (other than GitLab, obviously) that companies has been using to store their code privately, I guess I’m going to flow with the mainstream at start. They say, you need to have a portfolio of your previous work, if you want to work in the industry, and that’s one of the motivation I put my code on GitHub.

For me, it’s also an interesting place to grow as a programmer (other than community groups like what’s on Telegram or Discord). You can submit pull requests to the repositories you wish to do something about, you can receive feedback, you can get turned down, it’s really testing your skill and mentality as a programmer. Maybe that’s one of the reason I contributed to the tinyhttp organization back then, aside from just wanting to find an alternative to Express.

Few years forward, why am I still here?

The story on the previous section is around the year 2020 or 2021. At the time I was writing this, it’s 2024 already. Why am I still active on getting my code available publicly on GitHub, and why do I contribute to some of the repositories on GitHub? Well, right now I can think of some actual honest answers:

  1. I work as a software engineer now. Sometimes, I teach people about the things I know, and sometimes they need to see a demo of what I’m explaining to them. So.. I made some demo repositories for them to learn from.
  2. I still believe in the idea of treating open source like science, where you should make public of every advancement you made. Good or bad, if it’s going to be a (most of the time, helpful) piece of information to others, you should make it public. This way, other people can actually fork and make yet another advancement of your work. You can see this actually happening. Try to see antfu’s track record.
  3. I wish to use a certain project (or repository) that have prettty much the features I need, but I can’t use it since there’s no Typescript typings for it, therefore I made a PR about it to make it available faster (see this PR as an example).
  4. I was using a program, yet I’m frustated and spent hours and hours debugging things, just to find out that the documentation is wrong. See this PR for example.
  5. There is this one big project that’s available to be self-host freely, and my company was using it pretty much all the time as it helps us debug things out. Since they’re a big help to my company and we definitely can’t pay back anything with money, I’ll just going to pay with contributions.

If you don’t read the points above, I can summarize it into 2 things: (1) Sometimes I need it for my work at my company, and (2) I want new stuff faster.

The downsides of open source

I think it’s better for other people to talk about the good parts of open source. I won’t be talking about that. Let’s address the downsides that I’ve experienced so far.

  1. If you wish to be famous and make money from doing open source work, you need to be popular (meaning you need to active on multiple social platforms and probably make a talk at some technology conferences), and you need to work in a big project. Working in a small library won’t do you any good. You need to either work in a very big project, or a very dependent project (something like OpenSSL).
  2. Although you are famous and you have big project, don’t expect people to pay you for it. Although GitHub Sponsors, Liberapay, and OpenCollective are making it easier for people to get paid, just don’t expect it. You’ll need to be as famous as Evan You in order to make that happen.
  3. There will be lots and lots of abandoned projects… by you. And there are a few reasons for it: (1) people are too afraid to see your code, since they think they’re not good enough to tinker around the codebase, (2) people don’t find your project fit their usecase, (3) there are better and modern options, and (4) they don’t understand what your project does.
  4. Here’s for the ones that needs constant validation from other people: You won’t get it here. There will be little to no users that will even say “thank you” to your project.

Not to mention there are lots of debates (both healthy and unhealthy ones) on some projects, but since I don’t really have that experience, I’ll just say it’s common people issues.

Afterwords

Although I don’t think this post seems very encouraging for people to jump into open source, I think it pretty much gives you the idea of the reality of open source. Whatever path you choose, I’ll just want you to know this: Never be afraid of jumping into open source because you’re afraid of ruining other people’s code, or thinking that you are not a better programmer than the other person. Try to involve in things you are actually interested in and those who have value to you.