Ask HN: Getting paid to work on open source full-time?

112 points by malandrew ↗ HN
For those of you in the HN community that get paid to work on open source full-time or almost full-time, while still making a decent income, how do you do it?

68 comments

[ 3.8 ms ] story [ 68.1 ms ] thread
for a year or two i worked for mulesource, who make the open-source mule esb (these days, if you visit their site, i think there's more not-so-open stuff as they try to make money, but back in the day it was pretty much open source + paid support).

anyway, i got that job by using mule in my previous job, and writing some blog posts explaining it - mainly intended for my co-workers, but i posted them on the net. that, plus providing patches / feedback, led to them offering me a job (and it was a good job in may ways - very smart people, and i learnt a lot).

which is all pretty much what you'd imagine people to say (get involved in a project that has money to pay developers), so nothing very new here....

http://www.mulesoft.com/mule-esb-open-source-esb

I would like to spend some time in the coming months to learn to use MuleSoft's ESB.

Are there any resources outside of what's on the site that you would recommend? In particular, I see that there is onsite training but I would love to have more in-depth training material that's in a pdf or ebook type format or even just online.

it's been some years now, sorry - i have no idea what's available. all i did was download it and use it to implement various patterns (see enterprise patterns book).
That's an incredibly broad question. I built my own business around a niche and established a client base through this while also doing jobs on the side that come about through that business.
(comment deleted)
You can work on academic projects funded by public money. The results are open source.

Ours, in bioinformatics: http://intermine.org

The results can be open source, but do not have to be, even if funded by public money.

For example, d3.js is open source, but the code for PageRank and its related search engine is not. When I was a grad students, I worked on projects funded by NSF and DARPA where the code and data were not released. So it totally depends.

Some professors and grad students care more about releasing software into the public, while others don't care or don't bother writing reliable code.

Just curious how would one go about getting involved in something like this?

I'm looking for a topic for a masters thesis/possible job?

I definitely recommend scientific programming as a career.

I've worked as a programmer on bioinformatics projects in academia for the last 15 years. Everything has been open source.

Academia doesn't pay as well as the Real World but there are many benefits. As well as being able to work on open source software, the work is usually interesting. Job security has been excellent and I've moved jobs when I've wanted to (5 jobs in 15 years). Everywhere I've worked has had plenty of vacation days, sick days and a good pension plan.

The most useful benefit to me at the moment is flexibility: I mostly work remotely and I choose my hours.

Many bioinformatics jobs don't require prior experience of the field. I started with a computer science degree and no knowledge of biology and learnt the rest on the job.

I don't exactly get paid to work on open-source, since our startup is still looking for our first customer(s), but my approach to attempt this, was to start an open-source startup.

So, I founded Fogbeam Labs[1], started writing code, eventually recruited a couple of co-founders, wrote more code, networked a lot, pimped the startup shamelessly at every turn, and ...

... TBD.

All joking aside, the end of this story hasn't been written yet. But we're pretty optimistic. We made some great connections at the All Things Open conference in Raleigh last week, and our content marketing strategy has paid off in that a trickle of inbound leads has been coming in. We're also looking at a sort of not-quite-a-pivot-but-something-like-that (call it a "swivel" instead, maybe?) where we're probably going to bump up the prioritization on releasing some SaaS applications built on the fundamental technologies we've been working on.

On a semi-related note, I actually do get paid to work with if not always on Open Source, by virtue of consulting at Open Software Integrators[2]. We specialize in helping companies with deployments of things like Tomcat, JBoss, MongoDB, Hadoop, Neo4J, etc.

[1]: http://www.fogbeam.com

[2]: http://www.osintegrators.com

I work at Cloudera. We work on Hadoop, HDFS, and other open source technologies full-time.
This is a perrenial question that (I think) is very important to a lot of people.

I wish there were some kind of website or book that would answer the question, "Who is getting paid to work on open source, and by whom?"

There is good data for the Linux kernel, for example. On lwn.net you can always see the % contribution of each company. Presumably you could mine the kernel git repo to find out how many people that actually constitutes.

Getting this kind of data for other large/famous projects should be possible.

If anyone has pointers to something like this, please speak up.

EDIT: I guess an important metric would be, "For Company X, what % of code is open source vs. closed source." It would be nice to work at a company that is 100% open or reasonably close, other things being equal (which they aren't, but my point still stands).

EDIT2: I think providing a centralized site that collects these metrics and also allows people to submit them for smaller project/companies, would be awesome and very useful. Possibly even Kickstarter worthy.

It would be awesome if we could add a new "Who's Hiring?" thread each month but an open-source edition. i.e. any company or startup, large or small could advertise the open source project they are will to pay people to work on, if it is part-time or full-time and whether it is on-site or remote.
Please do it
I guess that getting this started just means getting up at 6am on the next first of the month and posting a thread. Or is there a special account or person that is responsible for those threads?
A friend of mine at DeNA (Japanese mobile gaming company) spends most of his time at the office working on open source projects. Right now he's working on a language built on top of Javascript called JSX for large scale Javascript apps.

I did an interview with him a few months ago if you're interested: http://jhackers.net/Kazuho_Oku.html

(come to think of it, every programmer I've interviewed so far on above site works on OSS projects for work to one degree or another)

I work for a community college in their IT department. My job is paid for by tax payer dollars, so it is my opinion that all my work should be publicly accessible. My boss agrees with me on this. As such, I've done very little that can actually be useful outside of our scope of work. Whatever I can though, I either blog about in the form of a tutorial/how-to or publish code on github (only 1 project so far). I like the idea of writing blog posts/how-tos which can double as internal documentation.

Right now though, I'm working on trying to develop a consortium of other like-minded individuals in which we can brainstorm ideas, implement them in open source tools, then distribute them in the various forms -- either VMs, puppet manifests, docker templates, openshift gears, etc. The idea is to lighten the duties for the typical sys admin and make it easier for smaller schools to implement highly tested, rigorous deployments with minimal insight on the actual workings. It's amazing how much academia suffers from large corporations/consulting firms that gouge these smaller schools based solely off the fact that they can because they lack both qualified individuals as well as competitive salary offerings.

That sounds awesome! I always bemoaned the ridiculous prices of textbooks and the price of school itself when I was in college, so I applaud the efforts of MOOCs and the universities behind them. I never really connected the dots to extend that spirit to school IT departments. Surely, IT departments at different schools share similar responsibilities that can be consolidated in this way.
Many open source projects - Linux, Firefox, LLVM, WebKit, etc. - have people paid to work on them. This can also be true for small projects as well, I am paid to work on Emscripten for example.

Basically, if an open source project is valuable to an entity with money - can be a corporation or a non-profit - then that entity may hire people to work on that open source project. Being open source, the project may not be directly profitable for whoever sponsors the work (the code itself is not being sold, might be support though), but indirect profits or non-monetary effects can be very significant and enough to make paid work make sense. (Of course this is just one kind of way to get paid to work on open source code.)

Yes I would. With the recent revalations reguarding the total disreguard of basic human rights, I see no other choice except fully open ecosystem designed to empower the user, and keep them Free. I personally hate Stahlams politics but he was right, and as he was right early, he was shunned, but now his idea is right for right now.
If you agree that he was right, why do you hate his politics?
I think only externalities should be regulated by governments and not full and total redistribution. I see the push to systems that favor a total socialism as a push into the very thing he fears, as I do. When I hear him shout about destroying companies because they unfairly lock users into crapware, as well as use there Money/Power to do what anyone would do, what is in there best self interest, I cringe inside. No I am not happy that all the work TR did in busting the Trusts has been undone. But we should fix that in the system we have now, not destroy what little bits of the free market we have. Punishment for the sake of enjoyment is what I hear when I listen to his personal politics and that is what I don't like. Lets just be rational.
I work for ThinkOpen Solutions, which does projects and hosting based on OpenERP, an AGPL licensed software. As such, all the code we develop is AGPL licensed as well, and a fair share is published on launchpad, though some modules are only available to our clients.

As for how I did it, well, I replied to a job offer looking for Python programmers :)

I have looked at OpenERP and it looks very interesting.

What types of companies are targeted by your company? I have had thoughts of getting into this space but not sure how companies are willing to go with such a solution versus more established and recognizable solutions (such as Microsoft Dynamics AX, UNIT4, SAP, etc.)

I would love to hear your thoughts on this.

I don't get paid to work on open source full-time (only part-time), but I do know a number of people whose full-time job is contributing to open-source projects like Chrome or Android.

The way to do it is to find an open-source project which is strategically important to a company, and yet which can't be made proprietary without destroying its strategic value. For example, the reason Android is open-source is because it would be hard to convince a broad base of hardware partners to support it if were closed-source (and now that one particular hardware partner is starting to dominate, it's getting more closed-source). Webkit is open-source because it started as open-source, and yet it is strategically important to Apple, Google, and Opera (well, until the Blink fork, but Blink is also open-source because it was derived from Webkit). Linux is strategically important to IBM, RedHat, etc. because they sell enterprise consulting services; having the source code available gives businesses confidence that they can continue running even if the vendor goes out of business, and yet they still drop a lot of money on consulting services.

It generally does not work to start a company based on open-source principles without also thinking about the strategic implications of who else will use the technology and what incentive they have for keeping it open. For example, LiveJournal was based on open-source principles and developed MogileFS, memcached, Gearman, and LJ itself. The effect of this was that every time they did something wrong, someone would start a clone of LJ and a clump of users would move over. And then Facebook took memcached and used it as a core part of their architecture, and won the whole social networking space.

I love your comment, but I disagree with your assessment of LiveJournal in the last paragraph. The reason Facebook beat LiveJournal had nothing to do with their ability to use memcached or other open infrastructure developed by the LJ/Danga team. It likely had a lot more to do with Six Apart, resources, energy, etc.
The site had been collapsing well before Six Apart (the Russians zomg) drove the last nails into the coffin. I think it was a mix of what nostrademons and you said, though.
I don't think memcached was the specific reason Facebook beat LiveJournal, but I think a general hemorrhaging of competitive advantage and failure to secure additional resources was, and I think a large reason for the latter was the former. It's not really any one competitor or technology responsible for it, but the combined effect of it.

Whenever anything went wrong with LJ - server issues, PR headaches, unpopular feature decisions - a large clump of users would often very vocally say "I'm leaving", grab the opensource codebase, and start a competitor. Facebook faced all the same hiccups, but users generally stayed with them even when pissed off, because there wasn't the same option of grabbing the codebase and all your friends and opening a competing site. Moreover, it's just demoralizing to see your hard work appropriated by people who hate you and are trying to compete with you. This isn't really about Facebook, it's about DeadJournal and uJournal and Journalfen and all the other competitors.

It's also much harder to convince investors to back you when one of your primary competitive advantages is given away to anyone. I think this was probably the major problem; LJ wasn't really backable as a separate VC-funded entity, and when it was a subsidiary of Six Apart (itself VC-funded) it competed with the mothership for resources and got little attention.

The Affero GPL is partly motivated by this use case. It doesn't fully solve the problem, but it means that your competitor who grabbed your code base and set up an open-source clone, will at least have to keep open-sourcing all their stuff, too, leveling the playing field a bit. Alternately, it can serve as a kind of poison-pill to keep some competitors and would-be competitors from using your tech.
I disagree with you regarding Android. Albeit a different platform, thats a bit like saying Windows was never a success and couldn't be because it was closed source and no one wanted to work with them.

In a world where Android didn't exist as an open source solution, if the value proposition was high enough, there still could have been a chance a closed source license OS could have succeeded. We'll never really know.

I work for Oracle (MySQL team). It was going to a local meetup group in 2005 and giving a talk that eventually led me down this path.
I created a closed source plugin for an open source platform. I did that 4yrs full-time then got a full-time job because sales were slow & I had a son on the way. I open sourced the code, which reinvigorated interest, and paid support is ramping back up to previous levels.

When I was closed source, providing support was my downfall. People would do stuff like install other plugins that conflicted with mine, and expected me to fix it. That was very time consuming. Now I give the code away, but charge for the support so I'm compensated proportionally for the time spent fixing that kind of stuff.

I'm also releasing a SaaS version of the product - it's the same thing as the open source code, but obviously the users don't have to install anything or fuss around with servers, and they won't be able to break things [as easily], because they're pasting javascript into their website instead of installing server side code. I'm hoping this will be a huge market.

I got into evangelism at an open source company after an injury prevented me from hacking full time (less typing). I was already promoting open source projects for free, so I was a shoe in. This led to a full time FOSS gig with a company that wanted to popularize its open source offering. Half coding, half promotion, aimed at removing barriers to entry, improving documentation and ease of use.

Fun gig.

I'm sorry that I can't tell you how to get paid to work on oss but great question!

I suggest to watch the first part of Aaron @tenderlove Patterson's closing keynote at Rails Conf 2013[1], that touches upon this topic.

[1] http://www.youtube.com/watch?v=5kgUL_FfUZY

in a related note a friend of mine that's rails core member is interested in getting a job working full-time in rails, anyone want to hire him?
This is an interesting question, because I'm in the process of looking to hire an engineer to work full time on contributing to WordPress. The twist is I'm looking for someone who is currently not part of the WordPress Community, which has made the search interesting.

I know WordPress has a mixed view here on HN, but that's kind of the point - we're (http://wpengine.com) looking to bring some "outside blood" with experienced with best-practice lower-level, heavy-lifting PHP experience that we can help inject into the WordPress Core project.

Interestingly, a lot of engineers I've spoken to don't want to quit a full time job at a company to work on Open Source.

So, my reverse question is where would you go to find folks who want to work on Open Source.

Could you offer some insights why many engineers dont want to work full time on open source?
Sure, these are the kind of concerns engineers raise when you talk to engineers who are right for the job but not worked on OSS before:

* Perceived job security, especially developers with mortgages, families, etc. Going from a core-function role within a company to working on OS apparently feels like less job-security.

* Don't want to move from working in office environment to (probably) working from home.

* Project politics and different working relationships of "peers" - not aligned colleagues for same employer.

* Not considered the most financially lucrative engineering positions in terms of performance bonus or career progression

>The twist is I'm looking for someone who is currently not part of the WordPress Community, which has made the search interesting.

Can you elaborate on this point?

> So, my reverse question is where would you go to find folks who want to work on Open Source.

I could do it for you. But I'm not a PHP programmer and don't live in Austin. That's probably why you're having trouble finding people. I could also get together a remote team and manage or work with them for you. It's what I did for my last client (actually, an Austin company as well).

I don't know about full time, but sometimes when a client asks me to extend a piece of software I'll ask the upstream maintainer if they'll accept a patch for the change (with permission from the client of course). The client gets software with the fix included, where they don't have to worry about checking each future upgrade to see if the fix broke something.
WalmartLabs has a few teams working on mostly open source stuff: github.com/spumko and github.com/walmartlabs. The spumko team (the one I am on) used to be 100% open source work but has recently cut back in the short term to help out other internal teams. But, OSS is still a major component of our jobs.
Me and my team work full-time on a popular open-source project. Based on our collective experience I can tell you about 3 different ways.

- The first way is to become a key contributor and maintainer for an open-source project with significant financial backing, and then get co-opted by one of the organizations providing the backing. As an obvious example, a significant Linux contributor or maintainer will have no problem getting a job at dozens of technology companies. In our case, we are constantly scanning the mailing list and irc channel for the most consistently helpful and reliable contributors. If you follow this route, make sure you pick a project you're passionate about and won't mind working on for a long time, focus on being reliable rather than impressing with your technical skills, and make sure to go beyond adding cool features: help other users, improve the documentation, review patches, fix small bugs, etc. I can't emphasize reliability enough. In a really successful project, the maintainers are usually busy and overwhelmed with demands. Be the person they can rely on, consistently, and you will earn their trust.

- The second way is to join a technology company with an open-source team, and be assigned to an open-source project. For example 2 of my co-maintainers joined as employees before the open-source project launched, and were assigned to this team via the normal company process. This will usually get you into a project in its early stages, when it is not yet large or popular enough to hire from the pool of existing contributors. In our case, we now hire almost exclusively out of the project's community.

- The third way is to turn your own project into a source of income. This means either hope that your project becomes popular enough to attract financial backing on its own (also known as "winning the lottery"), or secure funding yourself. Remember that open-source software is like music, writing and web apps: lots of people love doing it, and the barrier to entry is low, which means it's a buyer's market. There simply aren't enough dollars available for everyone to make a living scratching their own itch. Consider finding a job which can accommodates time for side-projects. Make sure your project is its own reward, see how successful it becomes, and adjust your financial expectations as you go. There are sources of funding like Gittip which might make this more feasible - I don't know. Or you could do what I did, and start a business around your project, keep at it until it's successful, find a great CEO to replace you, and finally enjoy your reward as the maintainer of the project you worked so hard to make possible. I'm not sure I would recommend it - it worked, but took me 6 years, most of which with very little time to write code, and an amount of work and stress I would not wish on anyone. But when it works, it's the best :)

I'm always happy to talk about this more if you're interested. You can find my contact in my profile.

This reminds me that I have been working full time on open source projects for almost a decade now. Started maintaining some R packages in an extremely open source oriented environment [1] then accidentally moved to web development. Started an open source project [2] which has been growing in the last couple of years.

[1] http://www.iq.harvard.edu/ [2] http://openscholar.harvard.edu/

For me it was pure luck..i applied to work for a construction company and was assigned a project that ironically no one was able to take on because it required collaboration with different construction companies abroad.

The project was to implement a data integration standard among different construction companies who were competitors so it was actually a tricky job. The chair of the project were Bechtel and they decided it would be open source.

Three years later i had a great journey but i also had to quit. not only was i making good money relative to where i live, but i travelled to some beautiful places and met extraordinary people. Since that was my first job, i was totally spoiled because now i can't accept any job that is less exciting, so i am currently pursuing being independent, which is the only alternative i would accept.

There are corporate open source jobs out there and i recommend that you look for them, but be careful you might get spoiled.

I haven't seen it mentioned, but working for a university project funded by public and/or private grants (in my case for free educational software) is working quite well.