Lessons from Open Source Contributions

John Souza
3 min readOct 12, 2020

How I’ve experienced real world coding during my job search

The job search can be a long, arduous process at times. Some weeks you meet great success. People connect with you, you interview, you finish a project. Things are great. Other weeks are slow, long, and seemingly unfruitful. It’s been hard to keep sane during this process, especially with COVID looming about. One of the things that has been most helpful, however, is contributing to open source projects.

Here are three lessons I’ve learned from open source contributions.

You CAN contribute

I was so intimidated when I saw the scope of the project that I have been working on. There are over thirty devs working on the project, the vast majority of which have years of experience beyond me. I was hit with that old “imposter syndrome” that tells us over and over again that we aren’t good enough, that we don’t have something to contribute.

Then I started looking through the open issues on Github. I found one that seemed within my wheelhouse. It was to create a simple fetch request on the front end to post data to the backend. Within a couple of hours, I finished up my code, submitted for review, and had an accepted PR! It was a huge confidence boost.

Then, I submitted another. And another. And another. I’ve found that I do have something to contribute, especially in building out API’s on the backend, or connecting the front end and populating data in an efficient manner. And past the confidence that it has afforded me, programming has been an absolute joy over the past few weeks, as I’ve found something to work on that I really care about.

Seniors want to help you grow

That is not to say, of course, that my code has been perfect every time. The first backend request that I wrote, I didn’t have any tests for. A senior dev requested changes on my PR, so that I could write tests. I bumbled about and wrote some clunky tests that passed, and the PR was accepted.

But then the dev DM’d me on slack about meeting up to rewrite some of the tests in the test suite. He, another dev, and I had a two hour long meeting on what good tests look like, and how we can write efficient, effective unit and integration tests. This was a huge step in my learning experience, as I had never written a test before. Now I was gaining wisdom from a dev who had worked for years doing so.

Test, test, test

And that leads me to my last point: testing. Testing has become a huge part of my programming routine. TDD (Test Driven Development) certainly takes time at the beginning of a project, but it will save so much heartache as we go through the process. I’ve written about this elsewhere, and I’ve had edge cases caught that I never would have thought of because of tests.

That’s what we would expect from an application going into production. We need to catch bugs before they happen. Sometimes when we are doing personal projects, we allow ourselves to get messy because we are trying to create something impressive quickly. However, on large projects, what is really impressive is when you write clean, efficient, bug-less code that works every time a user sits down with the application

I would highly recommend open source contribution to any dev who is fresh out of a bootcamp. In fact, I wish that I had begun contributing even during the bootcamp. It would have accelerated my learning journey even further. I’m excited to continue contributing to this open source project while I have the time, and I look forward to the many other lessons I will learn in the process.

--

--