Programmers may argue about whether it's easier to find a job as a Linux developer or as a Windows developer. But getting beyond preconceptions and into hard hiring data is surprisingly difficult.
With any article whose premise is ensuring the safety of your programming career, it's tempting to try to hook your attention with fear, uncertainty, and doubt about the state of the economy. I could point at all those layoff statistics. Or I could frighten you by bringing up the spectre of your job going overseas.
But that's not the point, really. Our career choices affect us personally no matter what the economy looks like. We all have to find a balance between what we love to do and work that someone else will pay for. (This is why I cannot brag about my remarkable career from consuming chocolate; I've never found someone to pay the bills for it, alas.) To make the best career choices, you must become aware of where the market is going. And then you have to fine-tune your expertise so that your skills stay in-demand... or so that you can develop new skills that shortly will be in demand.
That's not to discredit the premise that you should do what you love, and the money will follow. That philosophy has been effective for many in the open source community who started out doing this stuff as a labor of love, and then found someone to pay us for our expertise.
But businesses--and hiring managers--do not think that way.
For developers who are getting underway on a new project, the choice of a technology is largely a technical issue. Programmers may decide which framework to adopt based on which one is best suited to the task, they can choose a platform whose existing plug-ins do half the job already (making it possible for you to promise a delivery date without crossing your fingers), and--let us not forget!--they can pick the tool that is cool. Businesses care about these things too, but when they decide whether the next big project will be built on a LAMP stack or will adhere to a Windows architecture, they also have to factor in the availability and cost of the staff who'll make that solution happen.
In other words, they need to think about how easy it is to hire someone just like you, and how much you'll expect to be paid.
Which--finally--brings me to the key question here: can you make a better living as a Linux and open source developer or by sticking with proprietary platforms? I've seen developers argue passionately on both sides, and it made me want to look for hard data to back up the "right" answer. I haven't found a solid conclusion, but in this article I share with you what I've learned.
There's at least two issues here: how many jobs there are (or from the employer's view, how many candidates are competing for the position), and how much they pay. Let's examine these separately.
The number of jobs is hard to quantify because the same position may be listed multiple times (particularly by recruiters) or it may not be listed in the same places. The "old school" job shops are surprisingly lax when it comes to categorizing new--and in particular, open source--technology skills. If you apply for a job on the Robert Half technology site, there's no skill box to tick off for Python or Perl experience (but there is for OS/2). In contrast, open source developers have regularly shared job resources (such as http://www.python.org/community/jobs/), a practice which probably started when the community was small and had to be self-supporting.
Plus, the traditional recruiting companies (Robert Half and its ilk) have always served large enterprises, and thus the jobs you find listed by those technical recruiters have a distinct tilt to the corporations ready to fork over significant money to screen candidates. So looking at their job openings represents the technologies that large enterprises adopt--which is not where open source has the most adoption.
Still, we can play amusing job availability games with sites like DICE. Type in "Linux" as your only keyword, and you'll get 5,852 results; "Windows" gives 8,965. Fine tuning those searches slightly to exclude non-development positions ("Linux programming" versus "Windows programming") yields 2,243 and 3,070 open positions, respectively. But that's not a great evaluation since plenty of FOSS apps run on Windows. Comparing "open source programming" (699) and ".NET programming" (2,399) has a similar problem. (By the time you read this article, the numbers are sure to be different, but I expect the ratios to remain the same.)
The comparison gets a little more useful when we look at specific skills that someone using a proprietary solution might ask for, and those sought by companies choosing open source technologies. A DICE search for C# yields 4,247 results, compared to 1,535 for PHP, 2,785 for Perl, and 955 for Python. But are those cumulative?
Nonetheless, the apparency is that there are more jobs available for Windows developers than there are for Linux developers. But don't chuck out your resume just yet--because the other half of the equation is how much money lands in your bank account.
For that, we turn to Indeed.com, a job listing site that has a handy salary comparison feature. As we all know, it's rare for a company to list an actual salary in a job description unless it's a warning (effectively, "We don't pay much, so don’t bother applying if you demand top wages"). But since one has to assume that that rule applies across the board, it's quite useful for answering the "which pays more?" questions--at least in a general way.
And the good news for open source developers is that comparing "programmer," "programmer open source," "programmer .net" and "programmer java" yields a happy chart for open source developers. The overall programmer salary averages $73,000 per year, and the Java and .NET developers earn just over that ($76,000). (Or, to be more rigorous, more jobs are advertised with those salaries.) In contrast, open source developers are offered $83,000--a nice raise. Even better, peeking at the Indeed trends graph:
| programmer open source Job Trends | programmer open source jobs |
shows that the number of advertised positions are on the rise.
It's possible to quibble with these numbers, as you'll see when you play with the fields yourself. .NET developers may get $76,000, while C# developers earn $83,000. However, this may demonstrate the power of specificity rather than anything to do with technology popularity.
The bottom line is--yes, you can feel confident about betting your career on open source. There may not be quite as many jobs, but the numbers indicate you'll likely earn a premium by being an expert in a smaller niche market.

