Ask HN: Do you get paid to contribute to a open source project?

119 points by alistproducer2 ↗ HN
I've been considering putting in the effort to get up to speed with a major project like Chromium or Firefox.

Ideally, if I am going to put in the massive amount of effort, I'd like to at least have the potential to get paid for the effort. Let me stress, getting paid is not the primary reason. I learn code bases and write code because I love the art.

Any advice from serious open source contributors?

85 comments

[ 2.9 ms ] story [ 174 ms ] thread
You gave the example of Firefox. In fact, the Mozilla organization, which manages Firefox has plenty of paid employees. See https://careers.mozilla.org/. The same is true for some other major open-source projects such as the Linux Foundation or LetsEncrypt. Being an employee at one of these organizations means you are literally being paid to contribute to open source projects.
I know one common technique for contributors is to put a bitcoin or donation type ID in their profile. This allows for people who see your contributions to go to your profile and give ya something back. Not sure how effective but this is one method I have seen.
I'm not a contributor but I've worked with core contributors to major projects. This is usually how I see things go down:

1) You work on an open source project and an altruistic company hires you to keep working on it. This is ideal, and I've only ever seen it once (Sendmail hired a couple of core contributors to keep making Sendmail awesome back in the 90s).

2) You work on an open source project, people see the work because they use the project, and then offer you a job to keep working on the project, but slowly over time you are working less on things that are great for the community and more on things that are great for your company. I've seen this a lot.

3) You get hired by a company that uses a big project, and they ask you to start making modifications that are useful for the company. It turns out what you did was useful for everyone so you contribute it back. Sometimes it turns out to be a huge win and so you keep working on it. I saw this with Cassandra and some of the folks at Netflix.

4) You create a cool project and your company lets you open source it. It becomes well known and then other companies want to hire you for either 1, 2 or 3. I saw this a couple times were people left Netflix to go to Facebook or Google to continue work on an OSS project.

If you work on Chromium or Firefox, you'll pretty much be limited to Google or the Mozilla foundation (with some exceptions). So if you want to do it to learn some great code but don't have a particular project that you love, I'd suggest one of the more infrastructure projects that are widely deployed if you want to increase potential job prospects.

In summary: There are lots of ways to get paid to write OSS, but you may not like them all.

There are companies like Canonical and Redhat that do a lot of work supporting mainly OSS projects. There are also companies like Oracle that are the progenitors of other OSS projects, even if they are no longer the primary maintainers. How do they factor in?
Canonical and Redhat are usually 1 or 2, depending on the project. Oracle is usually 2 or 3.
I am working for Red Hat on OpenShift for the past two years almost and it has been more like 3, working with the Kubernetes community.
I was trying to give RH the benefit of the doubt. ;)
Can you cite the projects which are examples of 4?
Not the parent poster, but Microsoft did this with .NET Core and also supports Mono. Google has definitely done it too, but I am blanking on specific projects.
5) you start your own company for the open source project you started, and then start hiring people.
Technically that would be a subset of 1. :)
I think the question was how to earn money, not spend money :)
"This is ideal, and I've only ever seen it once" I think this is happening more and more.

At GitLab we hired more than 10 people that first contributed to the project voluntarily. Including our CI lead Kamil and VP of Engineering Stan Hu. Our last hire that joined this way was Clement Ho that was an MVP (most valuable volunteer) on August 22nd, 2016.

I guess it gets interesting when you're an open source company. It could be argued that the people you hire fall into category 2 (doing things the company wants), but since the company is driven by community desire, it's sort of a nice hybrid of 1 and 2. :)

(BTW I love GitLab and you guys are doing!)

Thanks for your kind words!

Number 2 is: "you are working less on things that are great for the community and more on things that are great for your company" => I hope that at GitLab everything we do is good for the community. There is a split between working on great things that end up in the community edition and great things that end up in the enterprise edition (proprietary). Part of the community is using the enterprise edition, so those things are good for the community but at a reduced level. But I hope they are always things everyone can get excited about.

(comment deleted)
I was one of the people who first contributed to GitLab voluntarily, its been quite awesome :)

Another great example of a company like this is Sentry[1], which is fully open source, although I'm not sure if they've hired anyone from the community so far.

[1]: https://sentry.io/welcome/

One more.. You work on an open source project to scratch your own selfish itch.. years later when applying for a job/gig, someone recognizes you or the project and offers you the job on the spot. (happened to me twice!)
Out of curiosity, what (was|were) the open source (tool|tools) you had written?
(3) is sort of what happened for me.

I got hired by a company that uses a big project. Several years later I had the opportunity to move to a team that does upstream open source work, and did.

The Perl Foundation used to fund a few (and may still do), and the Python Software Foundation funds a few OSS projects. Maybe the Free Software Foundation too.

Bu I guess the number of such projects are relatively small.

Agree. I've done several of these, for example I worked as a contractor at an investment bank where the team I was on developed the Apache Qpid message broker. This was full-time work on an ASF project, and how I got my first commit bit in an open source project. Currently, the company I work for produced an open source project that they donated to the ASF as an Apache project, which I work on full time, as well as contributing to various other open source projects we use as dependencies or are part of the ecosystem. I ended up founding another open source project inside the company, that has now become part of our project line. To make a living developing open source software, this is probably the best/easiest way, and is certainly incredibly rewarding.
(comment deleted)
> You create a cool project and your company lets you open source it.

Why would you need to ask for permission to open source your side project? Is that always the case?

If you're a student, GSoC does include a small stipend iirc.
I've gotten hired at my last 3 jobs primarily due to open source contributions I've done in my free time for fun. Instead of focusing on doing the code for money, focus on doing it for the challenge, the fun, and most importantly the networking.
Were the jobs continuing to work on the open source projects, or your open source experience was just a factor for why you got the jobs?
A bit of both :)

I was hired based on knowledge gained from dealing with the projects, implementing features in said projects, or literally just deploying the software in large challenging environments. And this was for stuff I contributed to in my free time for fun! OSS <3

Which projects did you contribute to?
The configuration management tool Saltstack:

https://github.com/saltstack/salt/commits?author=SEJeff

And an infrastructure metrics tool named Graphite (maybe you've heard of it?):

https://github.com/graphite-project/graphite-web/commits?aut...

https://github.com/graphite-project/whisper/commits?author=S...

https://github.com/graphite-project/carbon/commits?author=SE...

Along with being a former volunteer Sysadmin for gnome.org (yes I used to have root on gnome.org for the Linux nerds out there) and knowing a lot of open source maintainers by nature of meeting them at tech conferences.

By and large Open Source is how I make a living.

My major source of income is my "Varnish Moral License" (see: http://phk.freebsd.dk/VML/index.html)

It is not particularly easy to shake money loose, but I'm making a living and I'm trying to explain to the world that free software is not the same as gratis software.

(See for instance: http://queue.acm.org/detail.cfm?id=2636165)

As others have pointed out, the browsers are all backed by actual organizations with employees, so that will probably be a tough row to hoe, unless the end goal is to get employed by one of them.

The main benefit is giving back to the community, and possibly learning some new skills, and maybe building a github profile. I wouldn't depend on it for more than a little bonus every once in a while. Experiences may differ.
I got paid/sponsored to work on a couple of projects.

I had met some people from the company a couple of times and wrote something they wanted adapted to work with their products but didn't want to invest in it.

A few thousand to get me to do something I was going to do anyway at some point was a good way for them to get something that they wouldn't monetise directly.

Not sure how to get a gig like that though :)

Once my OSS project became popular, I started a business and switched to an open core model. Businesses buy additional features, I get recurring revenue so that I am paid to maintain the OSS and commercial parts.

http://sidekiq.org/

And to answer the inevitable question: many of my paid features are also available as 3rd party OSS plugins. Many companies prefer to pay for the commercial version so they know the features will all work well together and be supported years from now.

Do you have any insight into how many of your customers buy Sidekiq Pro for the extra features, as opposed to for the commercial-friendly license, or simply to help sustain the OSS development?

You've added new features to Sidekiq Pro over time -- do you think your business would have been viable had you started with no (or very few) additional paid features?

Most buy for the features. It's hard for a business to justify giving money to someone for nothing. I'm a big fan of selling something tangible, even if rather minor, rather than just a license. My guess is that I'd have 25% of my current sales if I just sold support/license.

I started Sidekiq Pro with just two major features: batches and metrics. http://www.mikeperham.com/2012/10/01/say-hello-to-sidekiq-pr... The rest have come out of customer feedback and demand.

This is awesome! Has this become your full time gig, or is it still not enough to replace a salary?
In the 'Pro' section it claims 500+ customers. Assuming that's true, at $950/year, that's $475,000. This doesn't include Enterprise ($1950/year).

I'd guess it's his full-time job now.

Full-time. Sales are around $70k/mo now.
If you want an interesting way to get paid for OSS software, check this out: https://fair.io/

Basically the idea is that the code is open and free, but if someone uses it a lot to make money they pay you a licensing fee.

The first sentence in the description is "Not open source," and the license wouldn't qualify as open source or free software because of the limitation on use.
I applaud your effort in trying to support developers that want to make FOSS, but sorry, this just won't work, as the devil is in the details, and your license is not FOSS.

  - What is a user?
  - Why is it not applicable for library code (and libraries are *the* important assets in dev)?
  - What is a plugin?
Now you might give me some convincing answers to these questions, and we might come to an agreement about the definition, but the takeaway for potential license users (e.g. dev companies) is: It is not FOSS (or "OSS").
You might consider talking to Tom Christie of Django Rest Framework. I know he's working on it full time now. IIRC the pay he gets is less than a normal salary, but there are plenty of upsides to the freedom and flexibility he has.
Yes, I work for nVotes/Agora Voting, which is an open source secure electronic/online voting project.
Some projects choose to use Gratipay. If you take a look at Gratipay's website their goal is to provide voluntary payments (and eventually a payroll system) to contributors for open work. Any team/project can apply to join Gratipay, but the main stipulation is that "public issue tracker with documentation for self-onboarding, and be willing to use our payroll feature."

https://gratipay.com/about/

Once payroll rolls out contributors set their own compensation.

Some more information on that can be found here: https://gratipay.com/about/features/payroll

Previously Gratipay was Gittip, and worked much like Patreon - essentially a donation or ~tip~ system.

There's still some work to be done, but I've been following this project for awhile. I've been working full time now on other stuff, but I keep up with their updates, and Chad (founder) is a great dude.

Not directly, but given we use open source stacks at work, it is in the best interest of the company when we push patches upstream so there is no cost to maintain a fork.
Yes but not by others. I pay myself to do it (well my company does).

If I need something fixed or added to a FOSS project for $WORK, that's work related and it's perfectly reasonable to do so.

Now getting someone else to pay you is a much bigger stretch. Outside of a couple people who work for really big companies that market commercial versions (or support packages) for FOSS projects, I don't know of anyone that gets paid to work on FOSS.

This may not work in all organisations - how do you get permission to work on FOSS? Did you have to explain that the code would be contributed back? How did that work with your employer's copyright assignment (if any)?
"boss I've made some small changes in open source project XXX, can I send them upstream so we don't have to keep maintaining them?"
> This may not work in all organisations - how do you get permission to work on FOSS? Did you have to explain that the code would be contributed back? How did that work with your employer's copyright assignment (if any)?

I'm the one in charge so it's pretty easy to convince myself.

The long term value of contributing back to a FOSS project means not having to maintain your own fork.

That's what it really comes down to and companies either get it or they don't. The dumber ones think that their three-line fix to an obscure JS library will be a competitive advantage instead of the white elephant it truly is.

Yep, I get paid to work on QEMU. I would suggest that your chances of getting paid to work on something and what kind of work that turns out to be depend quite a bit on the project. You can have a look at the git commit history or the mailing lists: if the project really mostly worked on by a single company (as I suspect may be the case with Mozilla and Chromium) then the only paid employment prospects are likely to be with that company. A niche project might not have any opportunities for paid work on it at all. At the other extreme, if you look at the Linux kernel it has a huge range of corporate contributions of various kinds (as well as a lot of work that's purely downstream) and you have better chances of finding one that does the kind of work you might want to do.

Incidentally, previous experience with the specific codebase isn't necessarily a requirement to get a job working on a project: if you have general experience in the field and can work with an open source community then these both transfer over (this is how I got into working on QEMU). Learning a new codebase is something that you typically have to do when you start a new job in the closed source world, after all...

FWIW, I don't think I'd get into a FOSS project just for the chance of getting paid. I think it's really hard to work on something you don't have an underlying interest in, first.
If you get a chance to go to a FOSS or Linux conference, there are normally lots of people there who are hiring or looking to be hired to work on FOSS.
(Nearly) all our work (github.com/hammerlab) is OSS. We're hiring experts in ML if you're interested in working on big genomic data in the field of cancer immunotherapy. We're a lab (academic not-for-profit, part of Mount Sinai's medical school, run off foundation, grant, and gift money) of software engineers from industry and academia in NYC trying to make research better, and cure some cancer while we're at it (running some clinical trials).
sounds fascinating
Feel free to email me if you're interested (even if you don't feel as though you're an ML expert)!
If you're interested in academia or scientific research, there is scope to work on open source projects there. My full time job is working on a particle physics data analysis program, which is entirely open sourced. You won't necessarily have to do a scientific project either - other people who work at the same research facility work on configuration management systems, or databases.

Note that this doesn't have to involve doing a PhD or actually being an academic - it's more a providing the tools that enable academics to do successful research kind of thing.

Yes of course you can get paid to...For example, we build an open source Android app called Umbrella, which is used to help travellers, journalists and activists manage their digital and physical security on the move (https://play.google.com/store/apps/details?id=org.secfirst.u...).

We pay our developers to help us build it and we are currently hiring an Android dev. http://ie.indeed.com/job/android-developer-passion-human-rig...

Code is here: https://github.com/securityfirst