I'm a freelance software developer and I've just had my first real experience getting paid by a client to work on an open-source project (some library we use heavily in our app that is lacking a few feature we need).<p>I know there are companies out there that pay employee to do a % of their time or sometimes even work exclusively on open-source projects.<p>I'm wondering how I could go about doing more of that type of work as a freelancer and if others have done the same.<p>I contribute as much as I can to open-source off-the-clock but I'm curious if there are people out there getting paid regularly to what I'm only just having an experience of.<p>Thanks for any thoughts, suggestions or leads!
We hire freelancers who are experts in particular projects to fix bugs, add features we need, etc. Some of those are on a "retainer" basis (eg. $8000 for 80 hours work on an OSS project for us during a year where we can "consume" that time on bugs/features we need), others are on a fixed-price per-project basis, others are hourly. Generally in these cases the freelancer will be a core contributor to the OSS project in question, and come through our contacts in the project community. Posting to the -dev mailing list as either a client needing something done or a freelancer available for work is probably a good way to start.<p>In some cases these freelancers have shopped-around work to previous clients like us -- eg. "if I can get $X from you and $Y & $Z from these other clients, I can work to make this large/necessary change to the project happen" -- which maybe we don't need enough to pay for ourselves but we'd like to see.<p>Otherwise we expect team members or contractors working on projects involving OSS to contribute any fixes & improvements upstream where practical, and we book this into project timelines & budgets.
I'm a regular salaryman at Microsoft, and everything I've done for the past 2+ years has been open source. It's pretty cool, after having worked on traditional closed-source msft teams for my first ~5 years.<p>I work on the F# language, which has been on Codeplex since 2010, and 1 year ago moved to a fully-open-engineering model (and moved to GitHub about a month ago).<p>The broader team I'm part of, which includes the C#/VB compilers, Typescript, Python tools for VS, and the .NET framework/JIT/CLR, is also now pretty much 100% open source (or is rapidly and publicly moving that direction). That's maybe ~100 Evil Empire FTEs doing OSS every day as their 9-5, just in my building. Not bad!
I work at a major media company, and while my job description doesn't include open source contribution, I contribute almost every day through normal work. Granted, we use open source software for what I work on. All of our bug fixes and new features are submitted upstream as patches. It's much easier to get management to commit to allowing time for this because it reduces our long-term maintenance burden.<p>Personally, I don't think it makes much sense for a position to be 100% open source contribution. It's difficult to make the business case for it, and eventually, you'll tire of it (maintainers that don't respond quickly, feature requests that don't match with their vision for the project, etc.)
There are plenty of jobs that are 100% open source. Based on my experience working on open source software is both interesting and challenging. Biggest challenge for me is that people are expecting you to provide 24/7 support.<p>Here are some jobs I found that are 100% open source:<p><a href="http://careers.stackoverflow.com/jobs/80088/javascript-engineer-mt-view-ca-phoenix-az-or-elasticsearch?a=qRg7d4f2WRy&utm_source=careers.stackoverflow.com&utm_medium=ad&utm_campaign=jobs-list&utm_source=Indeed&utm_medium=organic&utm_campaign=Indeed" rel="nofollow">http://careers.stackoverflow.com/jobs/80088/javascript-engin...</a><p><a href="http://careers.stackoverflow.com/jobs/80212/senior-software-engineer-front-end-ui-symphony?a=qTQ8fAj3Lc4&utm_source=careers.stackoverflow.com&utm_medium=ad&utm_campaign=jobs-list&utm_source=Indeed&utm_medium=organic&utm_campaign=Indeed" rel="nofollow">http://careers.stackoverflow.com/jobs/80212/senior-software-...</a><p><a href="http://jobs.netflix.com/jobs.php?id=NFX01939" rel="nofollow">http://jobs.netflix.com/jobs.php?id=NFX01939</a>
Mozilla is a great company to work for. You only do open source, we care a lot about the open web, and you can work from anywhere in the world. <a href="http://careers.mozilla.org/" rel="nofollow">http://careers.mozilla.org/</a>
As a freelancer myself, I've found working on open projects to be a pretty rewarding way to spend my time. I typically discount my rate by 50 - 75% for all MIT or GNU licensed projects, to encourage potential-clients to make their otherwise closed-sourced project at least partially open. Does the trick much of the time.
Plenty of companies hire people full time to work on open source projects - look at all the companies involved in things like the Linux kernel or OpenStack, they hire messes of developers who work on F/OSS projects.<p>I work at Red Hat. I've never written a single line of proprietary code in my entire career. And hope never to.
Treasure Data (<a href="https://jobs.lever.co/treasure-data" rel="nofollow">https://jobs.lever.co/treasure-data</a>), where I've been for the last three years, employs several people to work exclusively on Fluentd, an open source project (<a href="https://www.fluentd.org" rel="nofollow">https://www.fluentd.org</a>)<p>We do this for a strategic reason, which I outlined here: <a href="https://www.fluentd.org/blog/unified-logging-layer" rel="nofollow">https://www.fluentd.org/blog/unified-logging-layer</a>
The way it usually works is that you become an expert at a certain stack. Companies will pay an expert when they need something to be done around that certain stack. Whether that particular stack is open source or not is not especially relevant.<p>I guess, what I'm trying to say is that if you become an expert at an open source stack that is useful, you should be able to land consulting jobs to improve that stack. But it's not because companies particularly care about open source.
I'm the author of Semantic UI <<a href="http://www.semantic-ui.com>" rel="nofollow">http://www.semantic-ui.com></a> an open source UI framework.<p>I think the most important thing is to choose to do open source code because it gives you the ability to work on code you believe in, even without 'market fit' or 'commercial viability'.<p>If you're a programmer (and can make an interesting open source project) you will always have enough money to live on. Programming wages for those who are reading YC probably range (I'm guessing) from 60-200k+.<p>Try to make double the salary you need for a year, then take a year off. Or try finding a way of living off half of your normal salary. Consider in many fields (my girlfriend is a librarian) it takes 6+ years of schooling to reach even the possibility of applying for a position with a 50k/year salary.<p>If you think programming can be art, open source code is your chance to create art without concession. Cherish this opportunity, and try not to worry about whether or not others want to pay you to do it. Ideas have their own merit, chase them wherever they lead.
A small example for myself, when I started programming for Android I looked for popular open source Java libraries I could use in an Android app. One was Jackcess - an LGPL licensed library which handles Microsoft Access files. So I ported it to Android, put a small UI on it and released it ( <a href="https://play.google.com/store/apps/details?id=com.panaceasupplies.android.panaceadb" rel="nofollow">https://play.google.com/store/apps/details?id=com.panaceasup...</a> ). People responded, so I updated the UI and logic, mostly due to suggestions. Right now it makes about $70 a month from ad clicks for me.<p>So while testing things out I tried some Microsoft Access 2010 files with "Attachment" data types. Crash! Jackcess couldn't handle tables with that data type. It wouldn't just kill that data type but the whole table. So I looked at the source code, wrote a kludge that got around the problem, and sent the patch in ( <a href="http://sourceforge.net/p/jackcess/patches/15" rel="nofollow">http://sourceforge.net/p/jackcess/patches/15</a> ). The maintainer looked at the patch, and then rewrote the code so that it could handle not just attachments but other data types.<p>So I make money from the app I build with their code. The upstream gets patches for problems I find.<p>I've been Android focused lately and have sent a lot of Android port patches out (or just general fixes for bugs I found while doing a port). The latest version of Xscreensaver has some of my alpha Android port code in there.<p>It's a good dynamic for cooperation - the upstream cares about their code, which is usually cross-platform. I care about Android and using their code on Android. The Google Play users just want to use the app generally. Everyone winds up happy.
There are all kinds of OSS projects out there. Some companies build OSS as part of their product strategy (I run one of those companies: <a href="http://ionicframework.com/" rel="nofollow">http://ionicframework.com/</a>). Technically, we have several people on the team getting paid full time to work on OSS.<p>But in the past I've done contract work on OSS when a company had the desire to build a reputation in a specific field, or was using a project that needed extra help.<p>All of those projects have a different type of work style. I'd say the former (OSS as a product) is more like working on product at a startup, so is more intense. Finding the former is easier as well, just look at all the OSS startups today: Docker, RethinkDB, etc.
Your clients will need to grok the ideas behind open source. Try asking potential clients what they believe the open source community will get out of it if you take on the job. Their answer will probably tell you if they understand what they're getting into.<p>Take a good look at the ecosystem of your open source project. Does it have a large user community? Are there companies involved in funding some of its developers? Will the project still be alive in a couple of years?<p>If you contribute to widely used open source projects you should be able to find paid jobs doing consulting (troubleshooting bugs and other problems, helping companies who are transitioning to using the software), training users who rely on your project to do their job (this might involve a good amount of travelling), and coding (but to a lesser degree). Coding activities are often taken for granted even by commercial users since "it's free software" as in "saving costs". I am rarely being paid for coding directly, and mostly work on code during off peak periods where not much consulting/support/training is going on.<p>Unless you start a project of your own, there's a non-trivial amount of time to invest before you become enough of an expert in a project to be taken seriously by potential clients. I was lucky enough to be on paid student job to do just that for several years and now I'm freelancing too (URL to my offering can be found on my HN user page).<p>Showing a strong and productive presence in user support forums will also help raising your profile, but again is a lot of time invested up front.<p>If you end up persuing paid open source work in earnest I'd be interested to hear how you're getting on. Feel free to contact me any time.<p>Good luck!
I've actually got a slight variation of this question. There is an open source project that I created, and it is starting to get some traction. I also have a need at work that I can fill using this project (not customer facing, just internal IT related). And there's a number of additional open source projects that I'd like to extend, and use for work too (such as adding a better database backend to Nagios for example). The problem I have, is if I bring this up to management, I take the chance that they will think I worked on it during business hours (I actually coded it up during a 2-week holiday break), or that they otherwise own the IP for the code. Not that I think I'll have a major problem with it, but it could be a bit awkward. Is there any guides out there of how to approach this subject with management?
I have been hired by a software company to develop one of their SDKs which has been open-sourced later. After this job ended I kept working with them and a some of my contributions were and are still towards open-source projects which are mostly promoted by the company themselves. I, personally, don't have experience with working fulltime on OSS but I read some stories about it where companies hire people to maintain a project they use internally similar to a SLA.<p>In my freetime I try to publish as much code as possible although it doesn't get much attention but without this I would not have gotten the job. For me open-source is not about getting famous or working on the next big thing but giving the community something back and not just consuming the work of others.
I used to work for Datacratic <<a href="http://datacratic.com>" rel="nofollow">http://datacratic.com></a> for a year and a half and I'd say a good 35 to 50% of the time was spent working on RTBkit <<a href="http://rtbkit.org>" rel="nofollow">http://rtbkit.org></a>, an open source real time bidding framework on which part of our products were built on.<p>Honestly, it's a pretty good feeling, it's fun, let's you interact with a larger community from which you can learn from and it might pave the way to gigs.
I haven't been paid for doing open source software work, per se (yet), but I've been told multiple times by people who contacted me for work, that they got to know about me via my open source projects or posts about it, and some of those contacts have turned into contracts for work. So in my experience, open source work is worthwhile both for itself and for those side effects.
Also check this out, <a href="https://assembly.com/" rel="nofollow">https://assembly.com/</a>
I recently discovered it. You can be paid for working on open source code. In fact you are paid in % of the product not directly in money.
When the product makes money you gain that much % of the product you own. Read terms carefully though, maybe you disagree with them.
My company is an open source company and we just got funded. Needless to say, I'll pay for work on the project, <a href="http://github.com/amark/gun" rel="nofollow">http://github.com/amark/gun</a> - it is an in memory database with push notifications and graph storage. If you're interested send me an email: mark@gunDB.io
I'm full-time contributor on a project called Sneer. Almost one year writing exclusively 100% open-source code. I love it. :)<p><a href="http://sneer.me/project.html" rel="nofollow">http://sneer.me/project.html</a>
<a href="https://github.com/sneerteam/sneer" rel="nofollow">https://github.com/sneerteam/sneer</a>
The open source Beaker Notebook is hiring full-time front-end and full-stack engineers: <a href="http://beakernotebook.com/careers" rel="nofollow">http://beakernotebook.com/careers</a><p>Advice: develop your github account, find a project that's hiring and make a contribution to get their attention.
I work for Treasure Data (<a href="https://jobs.lever.co/treasure-data" rel="nofollow">https://jobs.lever.co/treasure-data</a>). I do 100% Open Source stuff.