Start your open-source career
blog.algolia.com
blog.algolia.com
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"?
Learn and work with people from all over the world, people who you never have a chance to work with in real life.
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.
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.
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.
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.
As pertains to what you're saying we completely agree.
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.
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.
Or selecting a company. E.g. at our company (transloadit) >80% of work is on open source
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.
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.
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'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.
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 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?
We got many first time contributions with that.
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.
There's no shame in ignoring feedback in open-source if that's a struggle on your side, health before open-source :)
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.
As I was writing this I realized I am describing running a business, with everything except payment.
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 :)
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.
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.
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.
You might want to take a look at https://github.com/kentcdodds/all-contributors :)
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.
Also if you're switching to new frameworks and languages, doing open source will open up your career opportunities.
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.
> 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.
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.
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".
When someone demands an update for your open source project, ask them what they can give back in exchange?
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.
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.
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.
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 .
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.
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.
In the unlikely case anyone wonders what I mean: https://www.gnu.org/philosophy/open-source-misses-the-point....