An Open Source Career - How to Begin
An Open Source Career - How to Begin
Beginning an open-source career can be a challenging but rewarding career decision, but is not one that should be taken lightly. To truly advance in a career focused on open-source technologies a person must be willing to sacrifice large amounts of spare time to establish the kind of reputation that will allow you to obtain gainful employment in this field.
Getting started in the open-source software industry is as simple as finding a piece of open-source software that you are currently familiar with, or one that you find interesting and downloading the source code to that project. Perhaps you use an open-source web browser that is missing a feature you feel is important, or there is some other open-source software program that you are using that can be improved in some way. Once you have the source code, take a look at the license and code submission guidelines. In most cases the license will be quite open and you will be required to submit a "patch" to the code maintainer if you would like your changes implemented.
After you have volunteered or participated in an open-source community for a time, you may find yourself invited to become part of the core team on a project. This is easier to do if you have chosen a project that has few maintainers or one where the primary maintainer is no longer active, but it can be done in larger projects. On larger projects however you will generally need to be part of the community for a longer period of time and submitting significantly more code to become part of this core team. On smaller projects it is possible to be invited to become part of the core development team by simply fixing one bug or adding one new feature.
An important part of community participation in an open-source project is going to be responding to questions on the mailing lists, IRC channel, or forums. By showing, in public, that you understand the project and are willing and able to provide assistance to those who need it you will encourage the project core team to bring you on.
After establishing a reputation as a productive and helpful member of an open-source community, you will want to find a position with a company that works with open-source software. A great place to look for these positions is your local universities. Colleges and universities are generally more open than private businesses to open-source software development, and in fact some recent government software development grants have mandated creation of an open-source community alongside a software product to allow for long-term maintenance of the project without a further expenditure of funds. In these cases, after primary development is complete most project teams will be trimmed down and only those who are going to remain paid maintainers of the project are kept on board. This has the advantage of being the kind of position you could stay in for years at a time.
The important thing to remember in all of this is that your reputation of being a productive and helpful member of an open-source community is almost more important than your programming skill. Many excellent programmers fail to find their niche in the open-source community because they are too abrasive to work with, or too protective of their contributions. It does nobody any good in an open-source community if you obfuscate your code every time you add it to the repository.
Another major stumbling block of those who are looking to start a career in open-source is an inability to take criticism, and not all of that criticism is going to be constructive. Look in the comment section of any YouTube video and you will see the kinds of things that are said on a regular basis behind the anonymity of the internet. These are good examples of the kinds of things you are going to hear when developing software in an open-source community. People are going to be critical of any change to software they use on a day to day basis, and as one of the people making these changes they are going to make themselves heard.
All of that being said, working in open-source software can be one of the most rewarding career moves you could make. It provides an opportunity to work with developers of every skill level and be exposed to new programming techniques and philosophies that you may never have been exposed to in a standard closed-source environment. While it does require significantly more flexibility, both as a programmer working with potentially dozens of new technologies and languages, and as a person learning to deal with criticism and people who may object to your ideas, you will never be disappointed with your progress both professionally and personally working in open-source software development.