Open-source contributions as Junior Developer — part 1

Victoria Kruczek
5 min readMar 26, 2022

--

From several months now, I am trying to make a meaningful contribution to the open source community. Unfortunately I’m looking like a dog playing with a hedgehog.

Source: unsplash, author: Marlowe Weingart

My abilities are limited. I know some stuff from the backend side. My language abilities are narrowed to Typecript, and at this point, I do not think they are very impressive. I am a Quality Assurance Engineer turning backend. I am betraying testing in favor of creating more bugs in the world.

Maybe I am painting a too dramatic picture here. If I am so inexperienced how do I keep my job?

I know one repository in my company and I feel cosy and warm in it. I can write a feature within it’s realm. But that’s that.

When I got outside of this zone, I encountered strong wind with a storm and the only thing on my mind was to come back home. I did so several times by now and that is why I am writing this post — in case someone feels the same, you’re not alone. I also thought that by writing my journey down, I may spare someone time figuring this out by himself, as I am sure at some point I will have some answers on the lovely question: “How to properly contribute to open-source”?.

Contributing is such a wonderful concept, and I still want to do it. I’ll keep this article as a series, logging my progress and learning’s. Maybe, at the end of the road, some unexpected common patterns will come up?

Where to start then? If you dive into Github docs, you will realize there is a Contributing to projects section. What it explains is the technical side, how to fork and push out changes. There is also a section on Searching for repositories but the issue I see there is that if we look for anything that has a label “Javascript” and “good first issue”, we’ll see on top jest, Typescript and node libraries. That makes me want to run, I can not, at least at this stage, compete with thriving developers for issue assignments. Fortunately I found three pages that aggregates GitHub issues and repositories which are looking for some help, and they are not favoring any high profile repository.

So let’s begin, I’ll try to find something that I can contribute to. Something that is beginner friendly, that is why I will try to search via “beginner”-like tags when possible and I’ll add “backend” as well to avoid any frontend tasks.

First, I’ll a look at “Up for grabs”, simply because it is listed first on the firsttimersonly page. Unfortunately, I can see for starters that I will have to modify my assumptions, at least on this page, because I get 0 results when applying my desired tags and labels. Ok, life. I’m most probably trying to make the search too narrow. Or the labels are not commonly used?

I do not know that to be honest, but I can figure that later on, because I have two others site I can use to search for a repository. I’ll move now to the Good First Issues page. After applying the labels and tags, I have 6 issues which matched my requirements, so by this point I’m quite sure narrowing down is not the best idea. When I made the search more flexible, 19 pages of repositories have been displayed.

I’ve searched through 3 pages, starting from the end and got tired after an ~hour. I really was throughout. In that time:

  • I have considered learning how to write performance tests (not for API)
  • I have considered how difficult would it be to contribute to a chineese-language-based project
  • I have tried to read people’s mind when an issue had no description and the only title was “Add documentation”
  • I got happy, as I thought I can work on one of the issues, but it appeared after more scouting that the PR is already submitted, and it is being reviewed

The last point was the final straw for this page for me, and I allowed myself to navigate further. Last page on the list is Good First Issue. The page does not provide any search through labels or tags. The only thing you can choose is the language. Typescript has 77 ongoing issues, and I can see, that massive libraries with thousands of stars are mixed with those.

After being quite down with my last finding turning out being not so perfect, I felt this session has to end. I am thinking that in the next round I will try to find some documentation or unit test creation. It might go better, as my attempts to narrow down the search did not bring much glory. But that’s ok! I’ve found a nice, very descriptive library which will give me some more backend knowledge (mentioned in Extra).

Learnings:

  • Do not narrow down the search to a very specific set of labels and tags
  • It might be a good idea to start with writing docs or unit tests if you are a junior. To get that ball rolling. I’ll search for those on the next session

Extra:

  • Found an interesting repository called Request Cryptography. As I do not know anything regarding this topic, I’ll go through it to gain some knowledge.

Thoughts:

  • Is finding a place to contribute similar to finding a partner?
  • Is searching for a place to contribute different for other languages? Maybe it would be a good idea to try Javascript?
  • Might applying “fake it until you make it” attitude help?

--

--

Victoria Kruczek

Logging my learnings. Backend Developer with a QA Engineer background