Hacker News new | past | comments | ask | show | jobs | submit login
Start your open-source career (algolia.com)
364 points by vvoyer on Dec 21, 2017 | hide | past | web | favorite | 69 comments



Why do people want to have an "open-source" career at all? Why are people asking, "what should I contribute to?"

I honestly don't understand this attitude at all, assuming the people who want to "do" open source are in earnest, and not because they want to pad their CV in order to get a job completely unrelated to free software. So, assuming you really do want to do free development, why do you need help being told where to start? The typical self-motivated reason to start is because you have found open and free software that doesn't do what you want it to do, so you go ahead, and by golly, you've had enough of these blighted bugs, and you're going to make the software work for yourself (or rarely, for someone close to you that you care about).

Shopping around for something to work on without having a personal problem to solve seems like putting the cart before the horse. I assume that's not why people want to do it. They must already have a personal problem. So, what is it, what's the motivation to have a "career" in "open-source"?


I think there are a few answers to this.

1) There are a lot of worthy projects to contribute to. Should you work on Firefox? Linux? LibreOffice? OpenSSL? I think it's as reasonable to ask "where should I volunteer?" as it is to ask, "to which charity should I donate money?"

2) Fame/clout. There are a number of Internet-famous developers who work in open source. When they blog, people listen to what they have to say. When they file a bug on an open-source project, people fix it. When they start a project, people download it, try it, and contribute patches.

This is totally unlike the experience for ordinary developers. When most people blog, nobody reads it. When most people file a bug, or even file a PR, it just gets ignored. When most people start a project on github, nobody notices it.

Clearly there is a path, however narrow, from here to there. How, people ask, can I walk that path?

3) When people really are talking about an "open source career," they often are asking, "how can I get paid to work on open source?" That does require selecting good projects that have the potential to pay off.

4) In some cases, people are asking, "what are high-impact open-source projects where it's easy for newbies to get started?" Even once you've chosen a project, not all projects make it easy to submit your first patch.


> "how can I get paid to work on open source?" That does require selecting good projects that have the potential to pay off.

Or selecting a company. E.g. at our company (transloadit) >80% of work is on open source


I have to agree that it does help a lot with career if your open source project succeeds. That said, it's very hard to start a successful project that people might actually remember you for.

Note that working on open source will cost you money personally (in terms of missed opportunities).

If you spend 20 hours per week on your project for over 4 years, that's over 4000 hours... If you assume that your time is worth just $50 USD per hour, then you're missing out on at least $200k of income over those 4 years. You could have bought a small house/apartment for that money... Most open source developers will feel the pinch after a few years have passed. You will probably be skilled in a specific area but also exhausted and poor (a difficult combination).

So starting an open source project is like making a huge, very risky investment in yourself and in the hypothetical community which might form around your project.

Your future career path will depend mostly on your community's success and how much of an impact your project has on them.


5) I have some cool open source projects (Hydra / Mjolnir) that I would love to work on more but don’t have enough time for, especially considering my wife and I have 5 kids. Getting paid for working on it would allow me to add requested features or fix bugs.


Most of my problems tend to be pretty trivial, and those that aren't are at least easy to work around. While most of my open-source contributions are indeed bug fixes for things that affected me personally (which is how I noticed them), I find it much more satisfying to solve other people's problems. So having someone point out a thing they think needs improvement is a much better motivator than just scratching my own insignificant itches.


I work a similar way. I also tend to submit things that aren't quite right, or have fallen behind. Perhaps a Travis build matrix that's no longer testing current deps, or a project still doing things "the old way" that you can modernize quickly.

It's also been fun to fix things my "programmer heroes" write off as unfixable. I've picked up a couple bugs written off as "this test is just always going to be flakey because <whatever>," learned their test framework, proved it was wrong, and fixed it. Good for your self confidence.


Hey hi author here, the title is misleading (or click bait, yes). Inside the article there's a nuance though between shopping for things to fix (first time contributions) and solving your own problem by offering solutions to the community.

The obvious way is for sure to solve problems you already have, but if really you don't have any idea where to start and you still want to be in a community then it also exists and they are welcoming you.

About the "open-source career" usage, it's about engaging with different communities than your regular job but that's how I phrase it.

Thanks for the feedback still.


Digging into random open source projects is a good way to become a better developer in general, although I'm not sure I'd want to make a career somewhere random.

I'm a lot better with git, with various testing libraries, benchmarking, CI, etc - because I've dug into a lot of random projects. About a year ago, I started just digging in when I ran into something weird, rather than moving on or working around it. Sometimes it's more work than I want to devote, but when it isn't, I often learn an awful lot.


> So, what is it, what's the motivation to have a "career" in "open-source"?

Learn and work with people from all over the world, people who you never have a chance to work with in real life.


Some of us enjoy writing code for the sake of it. If we can channel that activity into helping good FOSS projects, even better, no?


this. Most of us encounter problems i.e. bugs, software we wish existed but doesn't - and then solve them through programming. We'd like to see the solutions get out and help other people too if they care to be helped, but I don't think that's a major motivating factor for many of us (not me at least).

Maybe I'm a grumpy old man at this point, but this whole post just felt to me like a distasteful marketing ploy which goes against the whole sentiment of open source IMHO, which is to solve problems share your solutions and let everyone do what they want with it - not to try to get X followers or foster the biggest community around a new slideshow plugin you just built.


> not to try to get X followers or foster the biggest community around a new slideshow plugin you just built.

I've run into this in interview questions in the wild. "So what open-source projects do you contribute to?" It's of course totally their prerogative if they prefer OSS contributors, but it wasn't a stated prerequisite to applying.

I loosely compare it to the points and review systems that are being pumped up to gauge one's worth in various freelance portals, etc. The gamification of everything. I can't say I'm a huge fan of that progression, but then I've never liked the zero-sum game worldview.

I work for a company that has some lines regarding IP ownership over content produced while in their employ, so any public contributions have to be unrelated to work that I do professionally, and the line is quite fuzzy as to where this ends and begins. Freelancing in software outside of my direct industry—generally fine, as long as its not fulfilling a service the company offers on some level and its not a competitor, or of advantage to a competitor. Publishing code that has benefitted the company is a grey area I'd rather not stray into. Therefore, I haven't contributed. We fork open source software (licenses permitting), and don't file pull requests. I've advocated for adjusting policies to play a larger role on the OSS community as part of larger new initiatives for both the improved reputation as communal contributors and for the benefits of increased mindshare, but to no avail.


> against the whole sentiment of open source

So the sentiment of "open source" is to tell people not to contribute to it? I say no.

If, for any reason, someone wants to contribute to free software, they are free to do so. That is very much the point of a free software license.

Our biggest advantage is that we can welcome anyone into our community.


Theres a world of ideas between talking about motivations for doing OSS and telling people not to contribute to OSS.

As pertains to what you're saying we completely agree.


I don't think open source was historically about simply sharing solutions. That is how it is for some people, but not really whole sentiment. First, if it would be just that, there would be much less complains about "freeloading". And part of motivation may be that people were convinced that freeloading is bad, but don't know how to not freeload.

The whole free software branch is all political, ideological with its own attempts to push for its own morals. I remember when quite a few people at school were arguing that writing close source is somehow bad ethically or that open source programmers are by definition better then all weak and bad close source programmers.

Stallman action was essentially political with a lot of heat targeted at perceived enemies. He was angry that licenses prevented him to do what he wanted. There was very clear political goal. If it would be about sharing, things could have been much calmer. Difference between FLOSS and FOSS would not matter either.

Large projects and communities have more then just wish to share behind them. It is too much work and effort to organize and keep them for it to happen randomly.


It boils down either to "it us cool" or "I want to do something idealistic and helpfull for others". Nothing wrong with either.


A lot of communities are also full of great people. Makes it fun and enjoyable a lot of the time. It's also education, you learn from your work and get fairly real-world experience depending on what you're working on


Jobs? Being active in the open source community can significantly raise your profile and career opportunities.


> because they want to pad their CV in order to get a job completely unrelated to free software.

I don't consider that to be a bad reason to be involved in open-source. People do similar things in other fields all the time. Serving as office-bearers in social clubs, on museum and non-profit boards, are all the currency of networking and business contacts. Why such a stigma around doing open-source to advance your career?


> Shopping around for something to work on without having a personal problem to solve seems like putting the cart before the horse. I assume that's not why people want to do it. They must already have a personal problem. So, what is it, what's the motivation to have a "career" in "open-source"?

I mostly agree with you but I think you've failed to think from a beginner's point of view. My problem is that most of the things I consider bugs are deliberate project decisions. For example, Moxie absolutely refuses to make it easy for Signal for Android to work well with Google Voice. It is completely idiotic and makes no sense whatsoever because Signal for iPhone supports this (there is no way for Signal to access verification text messages itself so it allows people to enter the verification number themselves). However, they refuse to allow this on Android. Just look at this stupidity: https://support.signal.org/hc/en-us/articles/213980898-How-d...

Actually, most of the article is sensible but the decision to not allow people to type in their verification code that they have and forcing them to answer a phone call is completely idiotic.

And no, I cannot afford to fork Signal for this bug. >_>


I don't know perhaps you want to develop First Person Shooter games and high performance web servers Tuesday and embedded realtime operating systems Wednesday! Might to be hard to achieve on the "regular" market.


Open Source != Free Software

It's like the February and October Revolution. Free Software Movement was the first to emerge as a response to the Proprietary atrocious regime. But then a breakaway group that labeled themselves Open Source just like the Bolsheviks did in the October Revolution. Open Source twisted the essence of the values of freedom that the people wanted to bring about. Western Proprietary super powers also sent their soldiers to prevent Free Software from reaching the world's common sense.

Proprietary and Open Source will eventually collapse under the atrocities it does to the people. We can clearly see that in the NSA. People will become conscious in this lifetime or the next one. The revolution of the common sense will happen.


I must say Github has been amazing in enabling this, at least the first steps bit. Ever since they introduced editing in the browser, I have committed to maybe half a dozen open source projects. All of these were trivial one-liners with very little added value, but still, given that I could do all that without even having git on that given machine, is amazing. That + integrated CI tools whose results are integrated within relevant pull requests... it's at a point when almost anyone can fix documentation or typos in code.


True, and open-source projects can also have "Edit this page" links on every pages that directly goes to the edit mode of the file, example: https://community.algolia.com/react-instantsearch/guide/

We got many first time contributions with that.


Having a popular open source project is a pain in the ass. At some point the happiness from seeing people use your project turns to annoyance once you become the janitor and problem solver to people who won't take 1 minute to read the README. However, I honestly appreciate people who create open source software and answer all issues and questions.

GitHub should have a Q/A section on repos so that frequently asked questions can be answered there instead of having someone open the same issue every few months.


I did not mention it in the article, but it's also completely fine to abandon your own project if you state so and wait for anyone willing to maintain it.

There's no shame in ignoring feedback in open-source if that's a struggle on your side, health before open-source :)


I’m a full time paid open source developer. About 40% of my time is reviewing pull requests these days. Most of these are meaningful contributions. And while it can be a pain in the ass it is community building.


I also maintained a relatively popular Bukkit (minecraft server) plugin a few years ago. I had to abandon it because it really does just become too much fielding the unnecessary repetitive support. On top of trying to keep up with API changes on bukkit while also trying to go to school.

As I was writing this I realized I am describing running a business, with everything except payment.


Indeed. I am on the watcher list of a project I use a lot and contribute to.

I don't know how the main maintainer can answer so many stupid questions in a polite way.

99% of the answers are either in the ample doc of the project or a google search away.

I am not even sure how to curb this.


Seems to me that this is an opportunity for someone who wants to contribute to a project but lacks the technical skills to do so.


Rust is among the most welcoming of communities to start out in. If you're interested in the language, definitely check here for easy ways to get involved.

https://www.rustaceans.org/findwork/starters


It's worth noting that this newcomer friendliness is no accident: building and maintaining a welcoming FOSS community, and doing so at scale, can only be achieved with deliberate efforts.

The video [Rust's Community Automation](https://www.youtube.com/watch?v=407nwX6__70) offers an excellent summary of the strategies used in the Rust community to handle the social dynamics so that both contributors and maintainers are able to engage positively and productively, and continue doing so over extended periods of time.

It's definitely something other projects should look at and replicate :)


I've recently made a contribution to a well-known project (DBeaver, a database management software). It started with a feature request and somehow I was able to implement it myself. It sure makes you nervous when it's the first time contributing, especially because your code/issue will be read by many other people. But, once your PR is merged, you will feel you've accomplished something great and want to contribute more.


I started my own project free libre open-source project. It become quite popular in a year. I even found a guy who wanted to "invest" XXXk (I said no), and I won a grant of 25k from one non-profit accelerator (but never able to receive it). Also, I already had couple of job opportunities I rejected, and already spoke with some legendary folks from Open Source world about the future of the project. So it is definitely interesting and worth doing. The only downside is you need to invest some time into it. So it's better to do something what's really interesting for you.


Maybe a better title would be "start working open-source into your career".

The article is more geared toward those who think they don't fit into the open-source community.

Rest assured, anyone is welcome; that is generally what free software is about.


> The article is more geared toward those who think they don't fit into the open-source community.

Exactly what I wanted to outline in the article. Too often I thought that open-source people where inside the NBA of developers, that's not true at all. It's just people that have code visible by everyone. It's just code.


I value the altruism of open source.

But I do not value people that piggyback on existing high profile projects for personal gain.

If someone tells me they contribute to a project, I would usually check what was actually contributed.

A couple of unit tests and docs are always helpful but do not give enough credit compare to the effort of building such projects.


> A couple of unit tests and docs are always helpful but do not give enough credit compare to the effort of building such projects.

You might want to take a look at https://github.com/kentcdodds/all-contributors :)


If a contributor is responsible for significant part of the code coverage, funding or documentation, by all means kudos.

But someone that donated $5 or wrote 2 test cases and a couple of comments to me is a casual contributor not a core contributor.


Thanks, but i like getting paid. That's why they call it "career".


Yea but I also like getting paid more and adding a feature to something like React or Node would pretty much put you in the upper echelon of JS developers most companies will hire.

Also if you're switching to new frameworks and languages, doing open source will open up your career opportunities.


That's what people who want you to program their frameworks or produce some other code for free would really want you to believe.


I've probably made back between three and five times my hourly rate--which is considerable, though not top-of-market--on the back of being able to point to open-source projects that demonstrate mastery of problems that my clients have. Which is to say, for every hour I've spent on those projects, I've billed out three to five. (The reason that it's a range is that many of those I wouldn't have had without the social proof of my open-source work, but I can't evaluate exactly how many.)


You are a freelancer. This is a totally different market. Open source has very little to do with it, other than it is a part of your toolbox.


I have also literally been hired for jobs based on the expertise demonstrated through my open source work; my connections to a large open source project were sufficient bona fides for my first team-lead position after I left a large company. But after looking at your comment history it's pretty clear you're just looking for fights anywhere you can and so I will admit to not being terribly interested in how you will next except that.


I think it is actually true. Just ask some of the people who created and maintain some popular / high profile libraries or frameworks. That leads to a lot of job offers and more demand for your services means you can charge more.

If you have companies reaching out to you with potential job offers frequently, you can use that when negotiating salary when applying for a new job or to negotiate a raise at your current job.

It's the same principle as the guy who interviewed at Google, Facebook, Airbnb & dozen other companies and then used several offers he got to negotiate and he ended up with ridiculously good package for software engineer.


a) that's survivorship bias - for every one who "worked" on those frameworks and got somewhere because of it, there are thousands who wasted their time. I would go as far as to say that those who worked on those frameworks and got hired would have been hired without that.

> If you have companies reaching out to you with potential job offers frequently, you can use that when negotiating salary when applying for a new job or to negotiate a raise at your current job

If you are one of those people who is a target of companies rather than recruiters outreach, then you do not care about frameworks. Hint: these are people who don't have interviews. They go for lunch. Or dinner.

> It's the same principle as the guy who interviewed at Google, Facebook, Airbnb & dozen other companies and then used several offers he got to negotiate and he ended up with ridiculously good package for software engineer.

That's an imaginary guy.


You're right on track in this thread. My guess is Rob Pike was not answering data structure and algorithm questions on a white board when he got hired at Google.


So shouldn't the article then have been "How to start your NON-open-source career by first doing open source?"


That's what I was thinking too. How can it be my CAREER if I don't get paid for doing it? The article gives no advice on how to get paid for doing open source. So I think the title would better have been "Start your open-source hobby".

Doing open-source will help you get a better job later no doubt but it's a bit like doing a non-paid internship in the hopes of getting through the door.

Let's be realistic only people who are rich can work for free on a continuing basis. Now I'm all for working for open source if I get a grant so I can continue paying the rent. So I wish there was an article "How to get a grant to do open source".


My employer pays me per hour I contribute to open source


Are the contributions unrelated to your employer's work?


It's pretty obvious now that free software has real value to companies.

We ought to have a cultural shift toward corporations supporting their developers' work on free software.

Proprietary software is not the only valuable work a developer can do for a business. I would argue that free software is even more valuable.


Indeed. I was expecting this post to cover more about the finanicial aspects, and left disappointed. There's much to be said, yet only a few trailblazers in the field.


That's completely fine, doing open-source is not a mandatory experience for your own career. Also you can do open-source contributions at work, when it's related to work or just if your company thinks that on the long term it's good and that the benefits are great.


Open source has a problem where a lot of people demand and request updates, fixes and all that without ever giving back. I am not talking about medium sized companies or even smaller ones, I am talking to a plethora of small one or two human teams that do consulting/freelance development and simply don't have the visibility in the world of open source that others like maybe you and me have. It feels a bit like the recycling problem, it's really easy to do yet only a percentage of the population does it correctly. In the uk, on the defra.gov.uk website, it states that only 16% of the picked up waste is recycling... Why ? How can wr change that?


>How can we change that?

When someone demands an update for your open source project, ask them what they can give back in exchange?


Even better: tell them what they give back in exchange. That is what patreon and the like is about.


What are some useful, active web based projects to contribute to?


It's a valid question, but you may want to start by contributing to OSS projects that you actually use. The story in the article is about the author and his cofounder contributing to a library they used heavily. You already have a vested interest in things you use. The next step would be to visit the git repo and see how you can help.


Why? This answer is most common one and always puzzled me. Just because I like to use something does not mean it is good project for me to contribute to. They tend to be very different categories.

Plus, the pool of people who have time to spare and want to do something is different then pool of people who have scratches all around the projects.


I think one reason is that if you already know a project as a user you're a long way up the learning curve for understanding it. You know roughly what its feature set is, you know how new features would fit in with the existing ones, you know how to do basic "does this thing work" testing of it. You probably have an idea of what changes are likely to be small tweaks to existing functionality and what are bigger and harder. Knowing the shape of the outside of something makes it easier to understand the inside of it. If you start out with a contribution to a project you don't use, you don't have that initial base to build on and so it's harder.

Which isn't to say it's impossible, of course -- people getting new jobs working on proprietary software have to get up to speed with programs they probably never used before. It's just time consuming. The "what should I work on?" question implies that the asker has no preference, so answers optimising for what's easier to get started with make sense.


> Why? This answer is most common one and always puzzled me.

If you don't use it how do you know you're solving actual user problems?

I used to contribute to an OSS project and there were a lot of times where the devs and users had differing opinions on how a feature should work.


> If you don't use it how do you know you're solving actual user problems?

There are many (many) ways to contribute to a project that doesn't require you to be solving actual user problems.

I'd suggest just finding new projects, review code, create pull requests for those small mistakes you see. Provide feedback if applicable. Etc.


> If you don't use it how do you know you're solving actual user problems?

You can fix uncontroversial bug/feature request from issue tracker. Not everything us contested, most of it is not. Also, I would expect the project to welcome someone doing the work more then just another one that came to argue .


[flagged]


It puzzles why anyone would go around picking up trash from parks they never use themselves.

If you don't like my answer, then go watch idiocracy and contemplate the essence of your existence, and then go and do what fulfills you as an individual.

--

It puzzles me why anyone would go around in a santa suit cheering up kids they'll never see again.

If you don't like my answer, then go read How the Grinch Stole Christmas and contemplate the essence of your existence, and then go do what fulfills you as an individual.


Someone posted answer recommending the OpenEMR project, but now I can't see it anymore. Maybe they decided to delete it for some reason? Anyway, I think the project's aims are commendable:

OpenEMR is the most popular open source electronic health records and medical practice management solution. ONC certified with international usage, OpenEMR's goal is a superior alternative to its proprietary counterparts. With passionate volunteers and contributors dedicated to guarding OpenEMR's status as a free, open source software solution for medical practices with a commitment to openness, kindness and cooperation.

http://open-emr.org/


Different terms convey different ideas. Writers pick "open source" to signal that they find user freedom unimportant, and "free software" or "libre software" to signal that they find user freedom important. While the author's intentions are probably good, it's interesting that neither user freedom nor licenses are mentioned in this type of article.

In the unlikely case anyone wonders what I mean: https://www.gnu.org/philosophy/open-source-misses-the-point....




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: