Path to Open Source

Vu Tran
3 min readAug 20, 2017

--

Photo by Goran Ivos on Unsplash

At the beginning of 2015, I was working as a consultant for a few clients. A lot, if not all, of the frameworks and tools I used were open source. I never contributed back to the community.

Learning How To Teach Myself

As a freelance developer, I had no peers that I could share or learn from. At the time, I decided to start interviewing at some companies for a full-time job. Many companies were big in the open source space. One particular company was running on a wide front-end stack (React, Redux, webpack, Babel, PostCSS, CSS Modules, SCSS, just to name a few). I was writing Angular (version 1) at the time and had never been introduced to the majority of those mentioned.

Unfortunately, I did not get that job. But I did take note of their team’s stack and began messing with it at home throughout the summer. This exposure led me into a large ecosystem that I wouldn’t have discovered on my own as quickly. By the end of 2015, I had been exposed to a countless number of open source projects such as Electron, TypeScript, and FlowType.

My First Major Open Source Publication

In summer 2016, I had released my first major open source software in Dext (Electron-powered Alfred alternative written in React). Releasing Dext had introduced me to a bunch of new experiences. I began mentoring and reviewing some PR from new contributors, providing well documented setup and contribution guides, and inviting/onboarding new core collaborators to the codebase.

Dext, an open-source Alfred alternative (https://github.com/vutran/dext)

Contributing To Other Projects

From that point on, I slowly began contributing to other projects on GitHub. I began with some low hanging fruit like fixing README typos and writing tests. At first, there were some rejected PRs, which was very discouraging. But I kept going as there were far more approvals. Eventually, it became easier to look past rejected PRs as they would often provide really great insight into architectural and project goals.

Do it for the green squares

What I’ve Gained

I never expected anything in return. All I wanted was to get my pull request merged and see my face in the contributors list. What I got in return was a lot more.

By contributing to open source software, I learned so much. I learned how to structure a codebase and make everything discoverable, making things easier for new contributors, I gained a new perspective on linting and code styling, and I learned to adapt to the style guide of any particular project.

I discovered countless of frameworks/packages that I have since adopted in my own projects. I even started contributing to those packages. Through more contributions, I was able to meet, network, and learn from the project owners, as well as gain contributors for my own projects.

How To Get Started?

This is why I contribute and this is why you should to. It doesn’t matter what your skill level is, just pick a project of your interest and submit something. If you need help finding something, this website provides a vast list of beginner-friendly issues you can choose to work on.

Another way is to use GitHub search and search for label:beginner or some similar label such as first-timers-only or beginner-only. From there, you can filter through your preferred language and get started. Once the first pull request is submitted, the momentum will keep you going.

If you aren’t sure if your PR will be accepted, contact the project owner through their GitHub issues forum or their Twitter account.

--

--

Vu Tran

Design Systems | Engineer @dropbox | $ npx vutran | 👨🏻‍💻 vutran.dev