Is your next job in open source?
How open source can be a gateway to your next job
A collection of articles about jobs and careers in open source.
Getting a college degree is usually a good idea. It tells employers that you can stick with something for several years and see it through to completion, but it doesn't really tell them what you can do. The business work environment is radically different than school in most cases.
When I graduated with an engineering degree in 1991, the job market was weak. In fact, of my fellow electrical engineers, only three of us received job offers in our chosen field. All three of us had either done a summer internship or participated in a cooperative education program where we took a year off from school to work.
I can remember the first day of my co-op. I asked, "What do you want me to do?" And my manager replied, "What needs doing." There wasn't a syllabus, a curriculum, or a real schedule. In business, things change constantly, and to succeed you have to learn to identify problems and pursue solving them, often on your own initiative.
I strongly recommend co-op programs, but what happens if you either can't afford to take a year off or you're too close to graduation? Look to open source.
Open source for experience
By my observation, the demand for people in open source is at an all-time high. Open source technologies such as programming languages, libraries, and tools are now mainstream. Participating in an open source community can help you learn those tools, and when you go on job interviews you can not only discuss your shiny new degree, but you can point to things you've actually done that made a difference.
And this doesn't have to be just code. Want to go into marketing? Open source projects tend to be extremely weak in that area. Find a project you like and develop materials telling others why you like it. Those of us who maintain such projects love that stuff.
A lot of companies, such as Google and Microsoft, have a long and complex hiring process. They understand the importance of finding good people. I agree with them, but my hiring process is easy. I just look toward our community and find people within it who want jobs—they make the best employees.
Someone who was willing to do something for free suddenly gets paid for it? It's like eating an ice cream sundae and finding money at the bottom.
The best employees are those who truly enjoy what they're doing. Too many organizations are saddled with people who just want a job for the paycheck. I can remember back in 2009 when things were really tough and a lot of programmers were without work, people would ask me if we were hiring. I'd reply that we are always looking for good people, and if you are interested in a full-time job get involved with the project. I'd then point them to our bug tracker and say, "fix a couple of bugs and show me what you can do." I never had anyone take me up on it.
However, several years ago, a young man from Venezuela started working with our community. He soon became a valuable and major contributor. He lived in Caracas, a city many consider to be less safe than Baghdad. He was also commuting two hours each way in horrible traffic. We were able to offer him a contract position, and that worked so well that we invested in getting him an H-1B visa. He was able to move to the United States with his wife, and now we are working to get them both permanent resident status. While he is a special case, almost everyone at my company came from the community.
I can remember one lunch when we had the whole team together, and I asked for everyone who had a four-year degree to raise their hand. I really didn't know, and it turned out to be slightly more than half. Degrees are really important—don't get me wrong—but being able to demonstrate that one can produce something outside the classroom, work in a team, and show a willingness to do work just for the sake of making something new is equally, if not more, important.
Open source is about creating something great just for the joy of doing it, and that's something that's hard to learn in a classroom.