So, you decided to contribute to open source
While you are still excited and looking forward to fame and glory, here’s a little bit of what to expect.
When you start, things will be generally awesome. You’ll start with small contributions and usually greeted with gratitude.
The first time your pull request is accepted or your issue acknowledged as legit will feel pretty great. Enjoy it (and remember it).
After a while, if you are working on a highly visible project, expect this to change dramatically. People will throw hate at you.
Why? Because most developers view the tools they are using as entitlements. They deserve them! They earned them! They take them for granted.
This is actually pretty normal. Remember the last time you bought a product that didn’t work right? The frustration you felt? Maybe rage?
(This about iTunes, Windows, smart remote controls, home automation, calendar apps, underwear. You get the point)
What if the product came with an inflatable doll of the person responsible for your frustration? Would you punch it? You know you want to.
When developers choose (or often forced) to use your open source work, they consider their adoption a gift to you. They “bought” it.
When your product fails, they get angry, and your project GitHub issues become that inflatable doll. Harmless venting of their frustration.
The sad reality is, most people don’t consider online abuse as actual abuse. They assume you can take it. That it’s part of the deal.
(I’ve done my share of screaming into the abyss about those using open source)
How you deal with this reality is something you will have to figure out mostly on your own. What I do is of limited value to most people.
While I can tolerate a very high level of abuse (and can serve back double the pain I receive), I am the exception.
Most people I know in open source take it hard. They might not show it, or it might not cause lasting harm, but it hurts and destructs.
The only way your work will be spared this, is if no one actually cares about it. Abuse is an exponential function of adoption.
Let’s take a break and talk about why even bother. Is there an upside? Of course — writing code is fun and getting recognition feels great.
Open source lets you break the limited boundaries of your job or local community and engage in meaningful ways with others to share ideas.
Getting stars, mentions by people you admire, adoption by major brands you use — it’s an amazing feedback to something you labored on.
Just don’t expect that to translate into something bigger, like money or a job. It might, but not the way you are fantasizing about it.
Open source work is a great alternative to a resume. Companies spend millions trying to hire the very best and showcasing your work helps.
Companies like to hire high profile developers because that attracts (low profile) top talent which is the holy grail of hiring.
(You see, high profile people are notoriously difficult to manage because they want to spend time maintaining their profile…)
When I was working at Yahoo, I was one of about a dozen people who basically got paid to show up at hiring events or drop our names.
Yahoo didn’t really care what I actually delivered because they thought my public work helped recruiting and developer adoption.
(I spent a full year of my time at Yahoo being a full-time chicken farmer — best job ever)
However, almost no open source developers get hired to continue working on the thing that got them hired. That is extremely rare.
Companies rarely want you to keep spending time on open source. They will lie about it. They will sell you a bill of goods.
It doesn’t even matter if they are actively using the open source project you worked on. They don’t want to pay for it.
(I am ignoring companies focused on open source products cause they are rare — but even they are not the ideal utopia people assume)
In many ways, getting a great job from your open source work means the end of your open source free time. It will stand in the way.
You must read the fine print and ask explicit questions about legal corporate rules around open source. Recruiters will try to lie to you.
If your goal is to get a great, high paying closed source job, then open source is a great way to get there. It propels you up quickly.
But if you think that the attention you are getting will translate into open source sustainability, you are being delusional.
It’s important to keep this in mind — you will never make as much money from open source work as you will from closed source work.
(Again, ignoring the very rare businesses thriving on selling open source products — and again, most don’t benefit individual developers)
What I am trying to say is, you should treat open source work as a mean, a jumping stone to something else, not as the goal.
Putting it all together, it is important to know what to expect, what you can accomplish, and if this is the right tool for you.
A successful open source project will do more for your career than 3–5 years of experience. It will also get you some free travel and fame.
It will feel good when things are going well, and you will have fun collaborating with amazing people that would otherwise not be possible.
But it will also test your resolve and ability to take a sustained attack on your technical and personal skills. Be prepared.
I am not suggesting you stay away from open source. Just the opposite. Be prepared, build a support system of friends. Find a mentor.
I cannot stress enough how much of a difference an experienced and supportive mentor can make to your technical and mental wellbeing.
Find someone who can jump in and defend your work, who can hit back, who will provide you with a safe backchannel. It’s not hard.
Most people have a hard time defending themselves when they are attacked. It’s hard. But defending others is a worthwhile cause.
People like going to battle for those they feel have been mistreated. Find yourself a mentor who can provide that early.
(And if you are in a position to be such a mentor, reach out, offer help, make yourself available, broadcast it)
I don’t believe in appealing to the good in people when it comes to the pervasive abuse in open source. People want to punch that doll.
Writing long blog posts about “why can’t we all just get along?” will just get you more abuse and will have zero or negative impact.
This is the reality we live in. Period. Your role is to understand the tradeoffs, prepare yourself, and then get the most out of it.