My First OSS Contribution

Guys, I finally it did! I contributed code to an actual active open source project! Here it is, in all its glory.

Maybe it was small and insignificant. And yes, maybe it was only fixing a one-character typo in the project's documentation repository. But I technically submitted a PR to a public repository and got it accepted, w00t!

I've been dreaming of actively contributing to open source for a few years now. As a programmer just starting out, it was something of a pipe dream for me to collaborate with like-minded strangers on the internet with the shared goal of making better software. The philosophy behind open source software aligns with so many of my values both as a developer and as a human. Here's a short list of those values:

  1. Open source empowers people to collaborate on great software from anywhere in the world. Over the years I've learned that I'm not a city person, but I also love working on software. In Canada, this is a difficult combination because most software jobs are in the major cities. Luckily, tools like Slack (and Mattermost), GitHub and Zoom empower people to do great work no matter where there. In theory, being active in the open source software community is a way for me to connect with other technically-minded people, regardless of whether I'm downtown Vancouver or deep in the rain forests of Vancouver Island.
  2. Open source puts software in the hands of the people. Anyone can throw together some code, put it on GitHub and call out for contributors. Good software doesn't require a sexy office building downtown or in Menlo Park. Nor does it require catered lunches. All it takes is a few like-minded individuals putting their cyber-heads together on the web.
  3. Open source forces me to engage directly with other humans. I wrote earlier about my plan to engage more online. Part of that plan was to contribute to open source projects so that I could interact with a more diverse group of people working on software projects, and just to put myself out there and getting used to talking to other people, otherwise I spend too much time in my own head. If you want your PR to get accepted, turns out the only way to do it is to speak to a real human, even if 'speak' means text-based communication.
  4. Open source gives me real-world experience working with new programming language. It's one thing to do a MOOC on Python or to teach yourself Go in your spare time. It's something entirely different to submit changes to codebase in a new programming language. I find I learn so much faster this way, even if people are harsh sometimes. Open source work is the fastest way to learning how to write readable, efficient, and idiomatic code.

On that note, I'm currently focusing on getting some real-world experience in Go. If you're looking for contributors for your open source project, and if your open source project is using Go, toss me an email at michael at crawford dot io. I'd love to hear from you!