Carolyn Van Slyck

Why would you contribute to open source?

Applejack, an orange my little pony with a cowboy hat, with her arms splayed looking confused
but y tho?

This is part two in the series Open Source: The Nice and Accurate Advice of Carolyn Van Slyck

It feels like common wisdom lately that obviously you should want to contribute to open source. But it isn’t always clear why! It is unpaid work, so what do you get out of it? These are all going to seem like selfish reasons to get into open source. And they are. There are lots of warm fuzzy reasons to give your time away for free, but this is your life, if you are going to give up time that could be better spent doing other things, it better be for a good reason.

Just keep in mind a short list of things that you should be doing before giving your time away: taking care of yourself, your health, and your needs (yup, you are allowed to have those), eating, bathing, exercising, occasionally seeing the outdoors, family and friends.

Experience

You may not have a job that pays you to work on exactly the right thing to line you up for that next step in your career. You could be a student looking to build experience for that first job, switching careers or roles, or your current job isn’t handing out stretch projects with interesting technology.

One tried and true solution is to write yet another TODO app, or buy a domain and promise yourself that this time you will totally finish that side project. The problem with that is that coming up with what to write is hard and when you are done, interviewers won’t value your random project as much as a project that has name recognition, or even better something that they actually use themselves.

Contributing to an established open source project with an active community increases the likelihood that mentioning it on your cover letter or resume will yield interested questions, or even a thanks for feature you wrote. In open source there are also opportunities to grow as a leader. There are all sorts of roles that can help you lean how to delegate, run meetings, build consensus, make tough decisions, and communicate effectively. These skills are worth their weight in gold and can be invaluable for landing a promotion.

I make a better impression talking about my work than doing interpretive dance with a dry erase marker

When I interviewed at Microsoft after working on the Go package manager dep, more than one interviewer asked me questions about the project, and said that they use it. Every minute spent chatting about that open source work is one less minute white boarding. Let me tell you, I make a better impression talking about my work than doing interpretive dance with a dry erase marker.

Proving your worth

This is especially relevant for my non-“cishet white man” readers out there. Going into a interview, you are often at a disadvantage immediately compared to say … Chad. Chad not only looks just like his interviewer, but he probably has a similar background, accent, in-jokes and hairstyle. Interviewer bias often results in interviewers who are more likely to believe that Chad has done the things he has said, assume that he is as competent as the resume implies, and judge Chad on his potential.

Whereas if you don’t look quite the same as your interviewers, you are in the position of re-proving yourself to every interviewer. Questions like “Did your husband write your startup’s software for you?”, a real question from my interview with StackOverflow, or how much of what you accomplished was a “team effort” start to creep in. Instead of talking about what you could do for the company if hired, you are stuck digging yourself out of a hole trying to get on the same footing that Chad walked in at.

In my experience, this effect is lessened when you are associated with a popular open source project. When they already like, use and, value a project to which you contribute, especially when your name is visibly known for specific features or work, then their respect for that project is often transferred to you. Suddenly you are getting the benefit of the doubt, and interviews feel a lot less adversarial. Being able to walk into an interview and not have to immediately defend your existence, is novel and just wonderful. 💕

Where everybody knows your name 🎵

If you haven’t noticed the pattern here, I’m saying that contributing to open source makes it less awful to look for a job. I still hate interviewing, still get rejected because I’m “not technical enough”, or “not a good fit but you would be perfect for marketing”. It has gotten better, but still has room for improvement. 😂 You can read more about how my involvement in open source helped me switch career paths and judge for yourself.

Let’s say that you are contributing to a project, a popular project even, but you are just quietly submitting PRs, not really interacting with anyone other than the minimum to get it merged. You will get bonus points for experience and your work may even be seen as valuable, but you are missing out on one of the biggest values to contributing: name recognition.

You have earned their trust

Now let’s say that you are contributing to that popular open-source project and also taking the time to answer people’s questions, participate in design discussions, providing feedback on pre-releases and showing up to meetings. That is going to get people to remember your name. Among other contributors and even users of the project, you can become someone with whom they hopefully have positive feelings about because you have helped them out. You wrote a feature they needed, answered their questions, fixed a bug, reviewed their code, etc. You have earned their trust.

When they tweet about a position that just opened up on their team, you could conceivably DM them and ask for a referral. When you interview at their company, their colleagues may even know your name because they’ve seen your PRs or you chatting in a Slack channel that they are in.

Interviewing with someone who feels like they know you is a completely different experience and it will work in your favor.

Surprise Networking!

I hate to break it to you, but that thing everyone tells you to do to land an interview? The thing that feels awkward, unnatural, and you don’t know how to do it? You know what I’m talking about… networking. 😱 Contributing to open source and participating in the community is networking. So why doesn’t it feel so dirty? Because instead of focusing on “networking”, you are helping people. A lot of us freeze up when we have to talk about ourselves, meet new people, and have unscripted social interactions. But ground those interactions in something that takes the spotlight off of you and puts it squarely on something you’d much rather focus on, technology, and the impossible happens naturally.

the is this is pigeon meme, where the guy is labeled introvert, the butterfly is helping people and he asks is this networking?

Is this a secret or something?

If contributing to open source is a magic way to improve your career prospects, why doesn’t everyone do it? So far I have only presented the positives, but here are some reasons why it may not something that you are interested in.

  1. Collaboration is hard. And if there is one thing I want you to learn in this series on open source: open source is about people. It is about collaboration and communication. It is about identifying shared goals, consensus building, helping others, and getting shit done. Phew! If talking to people drains you, and you’d rather walk on hot coals than deal with an actual whole person, you may not be into open source.

  2. You have a family, life, bills, and the last thing you want to do on your weekends is a spot of unpaid labor. Being in a position to do volunteer work is a privilege, first and foremost. Not everyone is in a position to do it, no judgement.

  3. The rewards for contributing to an open source project scale with your investment. If you only have time or interest to submit a single small pull request before moving on, that isn’t going to help you much. You are aiming for sustained engagement with the project, or at least providing a major feature desired by the community.

  4. Lack of opportunity. What I stumbled up on with dep, an early stage visible project that had active users looking for contributors and with a vacuum at the maintainer level was a unicorn. It is why I spent my time between jobs working on it full time, because I recognized it as the valuable opportunity that it was. Don’t let the apparent lack of opportunity hold you back though. In the next post I’ll go over how to find a project.

  5. You can’t afford to be visible on the internet. It isn’t always pleasant or safe to be a target on the internet. And simply existing as Black, a woman or non-binary person, disabled, queer, etc in tech can really paint a target on your back. I use BlockParty on twitter, don’t accept DMs, avoid sites like HN or Reddit, and generally think real hard about what I say in front of which audience. I held off on writing this series because every time I blog, it inevitably attracts assholes. I don’t blame you for noping out of that shit.

Friendship

I want to end on a high note here because this is another powerful reason to contribute to open source and engage with the community. If you let yourself, you’ll make friends. Not just workplace proximity associates but people who you will still talk to after switching jobs. A lot of the people I have relied upon for social interaction while hiding in my home throughout the pandemic has been friends made from open-source communities. You can build strong relationships with some of the kindest, most unique people because healthy open source communities attract some pretty great people. This is why I love the Kubernetes, CNCF, and Go communities. They have not only welcomed me but offered friendship. 💖

Take a minute, think about what you could gain from contributing to open source, and make a decision. Are you in?

All the characters from My Little Ponies standing together, captioned Our Little Project: Open Source is Magic

Next: New Project, New Me: Joining an open-source project