What does the future hold for eager, talented software developers, and people with related essential skill sets? The overriding trend, as in all industries, is you're on your own, chum. But free/open source software (FOSS) offers considerably more richness of opportunity than anything else. Let's peer into the crystal ball and see what the future holds.
FOSS is everywhere
There was a brief, shining era in America when people actually built careers at single companies. It was possible to work at the same company, or at least in the same industry, your whole life, enjoy some nice benefits, and retire with a pension. Good luck finding anything like that now. The new rule of the modern economy is whatever happens to us, it's all our fault. But all is not woe, for FOSS fuels the modern economy, and that is where the growth and opportunities are.
A brief digression: we see "open source" all the time, but not "free software" so much. I like to emphasize "free software" because it means free as in freedom. We need every little bit of freedom we can glom in these modern times.
FOSS powers large distributed science and research projects such as OpenTox and the Avoiding Mass Extinctions Engine (AMEE). It powers the internet and the worldwide web. It powers Google, Amazon, IBM's Jeopardy champion Watson, and nearly all of the world's top 500 supercomputers. Android, the runaway smartphone, tablet, and e-reader success, is based on the Linux kernel. The cloud, which is inevitably settling over us like a great damp fog bank is FOSS-powered, as are the two best web browsers that we use to interface with the cloud, Firefox and Chromium. FOSS powers cars, televisions, cameras, settop entertainment boxes, agricultural machinery, high-end movie animation, industrial production lines, surveillance systems, and ever so much more. It truly is everywhere, from the tiniest embedded devices to the largest supercomputers.
I had a great conversation with Daniel Frye, VP of Open Systems and Solutions Development at IBM at Linuxcon 2011 (best con ever!), and Frye really gets FOSS. He noted that one of the major advantages of FOSS is the speed of improvements. You're not waiting on a vendor (and paying mass bucks for the privilege), but have the code in your own hands and can do what you need to it. If you're successful in building a genuine open community around the code, and get people engaged and contributing, improvements and innovations come thick and fast. On the subject of community involvement, Frye suggests that the best approach is to join an existing project, and to launch a new one only if there is no alternative. Don't try to keep it all in-house, because the other great strength of FOSS is a global talent pool, and especially a global imagination pool.
Albert Einstein said that "imagination is more important than knowledge." And that is why real diversity is essential, because a lack of diversity leads to a lack of imagination. So don't hold yourself back because you don't look like a stereotype computer geek, because you are a woman, young, old, a mid-life career changer, disabled in some way, or whatever difference you see when you look in the mirror - it really doesn't matter. It will matter to some people that you encounter, but they don't count because in reality it doesn't matter.
The advantage for the worker bees, the people designing, writing, and maintaining the code, is having access to a global pool of talent and code. Some of the best minds in tech are in FOSS, and they are not hidden away behind corporate walls and non-disclosure agreements, but are out in the open. You can study their code and read their writings, and sometimes develop friendships. Another advantage is when you're good it gets noticed. An unfortunate feature of corporate life is that all too often, merit doesn't get you anywhere. But in the FOSS world, reputation matters, and good work gets recognition.
Skills that matter
Skills that matter
You probably want to know some specifics. What skills? What kinds of jobs? What companies? What salaries and benefits? Are there Ferraris and rivers of Mountain Dew and full-sized arcade game machines? Well, maybe. Let's talk about skills. Adaptability is your No. 1 essential skill. High tech is a moving target, so you better enjoy continually learning new skills and improving your existing skills.
Coding is the No. 2 lifetime skill that will never be obsolete. High-tech is just a baby, and is going to grow like crazy for a long time, and there will never be enough programmers. But coding is not everything; it takes a wide range of skills to support any software project. The Linux Foundation is the centre of Linux kernel development, and has become a meeting place for both corporate and individual FOSS users and developers. Amanda McPherson, Vice President of Marketing and Developer Programs, notes that:
"We are seeing huge demand from our members for core Linux developers, especially in the embedded market. This is one reason we created a series of training courses to help educate the next generation of developers. Also, if you can demonstrate your knowledge of open source development with examples of code you've written and submitted, you will impress potential employers. Code is your resumé in this business.
What languages? It depends on your field of interest. Someone always asks "Which language is the best" and the answer is always "It depends." You won't know until you define what technologies you are interested in, and try some different languages to find out which ones fit. A programming language is like any tool: some feel right, some don't.
The three big fields of growth are embedded, mobile, and cloud, with lots of overlap between them as we moved to a fully-networked world. (The wholesale stripping away of our privacy, and data-mining us all for fun and profit, must be countered, so might I suggest baking in user protections as part of your fundamental functionality?)
Other desirable skills
Other desirable skills
The field is wide-open for people who aren't into coding, but still want to find opportunities in FOSS. This networked world places new demands on system and network administrators. Energy management, cloud technologies, databases, high-availability, provisioning, monitoring, and security require new and advanced skills. Artists, musicians, tech writers, community managers, hardware designers, reverse-engineers, translators, publishers... if you look, you will find a niche you like. As McPherson said:
"But it's more than just code for the best opportunities in this market. In the future, to really write your ticket you should show you can lead a project, write persuasively and work well with a large, distributed community. People who thrive in less structured roles will have great success, whether in development, sales and marketing or anything else. Those who can come up with their own job descriptions and do what needs to be done will be best suited for these types of roles."
McPherson hits on a key point, and that is being self-motivated. That is the key to success in any field, and especially in FOSS.
Holger Dyroff, VP of Business Development at SUSE, also recognises the importance of diverse skill sets:
"Open source skills are going to be in high demand next year, as Linux continues to be a market with double-digit growth, year-over-year. Cloud infrastructure is emerging to an open source model as well, increasing the need for related skills. Also, with developers increasingly going into mobile and social-related projects, developers with an interest and passion for open source will be highly valuable for the large vendors, such as SUSE. This not only applies to developers, but for sales and marketing staff."
"We believe that any previous development, sales and community experience is important, which includes volunteer work. The key is for our employees to be experienced and passionate about open source, so community involvement is an important factor in our hiring decisions. We also value employees who are willing to embrace a global corporate culture, with much of our workforce and clientele spread all over the world."
What kinds of salaries? That's another "It depends" answer. Salespeople usually have the most opportunity to make lots of money. For everything else, very generally speaking, expect family-wage incomes from $40,000 to $125,000 a year for technical positions, and more for management jobs.
Where to start?
Where to start?
Where are the jobs? As with any job hunt, getting to know the industry and developing relationships is the best way to find something you'll really like. There is a whole internet full of forums, mailing lists, and social networking sites where you can dig up all kinds of useful intelligence. The big job boards like Monster might help, but I think it's better to identify the companies you want to work for and target them.
While code may be your resumé, as McPherson pointed out, it also applies to whatever your interest is, whether it's documentation, sysadmin, community manager, etc. Think of it as "reputation management," proving yourself by doing. Become a Linux user, learn your way around the vast Linux world, and then pick a project to volunteer a little of your time to. There are a number of projects that are friendly to beginners, such as:
Of course there are many more resources, and I think the most rewarding approach is to pick a project that is personally meaningful to you. There are also big opportunities for people who want to work for themselves, which is a fine topic for another day. It is literally true that, in FOSS, there are more opportunities than people to take advantage of them, and the sky's the limit.