In 2014, my colleague Jason Hibbets wrote up a great article based on an excellent talk from Mark Atwood on the skills necessary to get a job with open source. In the past two years, as we've seen open source move even further into the mainstream of practically every organization from the large to the small, I've thought a bit about how the landscape for open source job skills has changed, and what, if anything, might be added to the list of proficiencies to find a career in open source.
So, in the spirit of open source, I've remixed Jason's original look at seven open source skills for career readiness and added three more of my own.
"Work on stuff that matters" is a famous call to action from founder and CEO of O'Reilly Media, Tim O’Reilly. But, how about working on stuff that matters while getting paid for it? There are an abundance of open source-related jobs out there if you’ve got the right skills.
Mark Atwood gave a talk at the Great Wide Open conference in Atlanta, GA on How to Get One of These Awesome Open Source Jobs . His talk was originally targeted to students, but he later removed the "Advice for Students" part because the tips below really apply to anyone looking to score their open source dream job. "When you work on open source, you get to work on things that benefit the world," said Atwood. Adding that, "you have to do the work before you get a job." He also mentioned that while working in the open source community, you will develop really great peers and best friends. Working on open source is a lifestyle that has embraced a philosophy. More importantly, Atwood noted that "once you have an open source job, you are portable."
While his talk went into more depth on the topic at hand, this is a summary of the tips he provided. I would encourage anyone who gets paid to do what they love to add their advice in the comments.
Master communication skills
Learn how to write clearly. After you’ve written something, have people edit it. Then re-write it, taking into account the feedback you received. The most important language you need to know has nothing to do with coding, it’s the English language. Atwood also says another key to writing is to write all the time.
Learn how to speak. Speak clearly on the phone and at a table. For public speaking, Atwood recommended Toastmasters. "Meet and speak. Speak and write," Atwood said.
Be reachable. Publish your email so that people can contact you. Don’t worry about SPAM. Finally, Atwood stressed, "Don’t be a jerk. Your reputation is hard to change and the Internet is forever."
Grow your technical skills
Learn programming languages, even if you want to do IT stuff. For anyone that isn’t fluent in a coding language or already learning one, Atwood recommended two languages. First, Python, because it’s easy to learn and easy to read. Also, JavaScript, mostly because it’s everywhere. However, if you are already learning a coding language, don’t stop learning it. Atwood continued and recommended to learn a new language every six to twelve months.
Learn how to use a debugger. And you will need to learn distributed source control, which today means git and GitHub.
Develop relationships and find peers
"Open source works because it’s a community working together."
To start those relationships within the community, seek out local people to meet first. Use tools like Meetup.com and search for co-working spaces, hacker spaces, and clubs at local schools and libraries/centers. Then, seek out remote people around the country and world. Learn about them and their projects first by searching the Internet.
Attend conferences and events. This is a great way to network with people and meet them face-to-face.
In building these relationships and meeting your open source peers, Atwood again suggested, "Don’t be a jerk." He added to that this time, "Don’t be creepy."
Work hard
When Atwood said, "you have to do the work before you get a job," he was serious. "Find a project and get involved," he said. Sign up for mailing lists and get on Stack Overflow. Start reading questions and answers, then start answering questions. Start reading bugs for the project, then start fixing bugs. After you’re comfortable with that, consider adding feature request and then coding the features.
In doing the work before the job, you’re building your skills and your credibility. And, in the open source world, reputation is very important (more on this below).
Collaborate
Collaborate with people all over the world and start using the tools that open source projects use. You’ll need to be familiar with IRC (Internet Relay Chat), bug trackers, and email lists. Using git to learn about pull requests and log comments is also an important skill.
Learn how to do code review and paired programming. Why? Because two of you will be smarter than one of you. This will make better code and removes ego from it.
Develop a reputation
In the world of open source, you want other people to know what you do. Have a portfolio of your work and your mail messages, commits, and other contributions. By doing this, you’ll be able to pair your portfolio with your resume. (Some employers may place the work in your portfolio on a higher level than the work listed on your resume.)
Keep your LinkedIn profile and social media profiles up-to-date. And again, Atwood stressed: be findable—no one wants to waste time looking for the best way to contact you.
Seek the job
How do you find a job opening? Once you find an open source project, you’ll find that many of the projects have a company attached to them. Once you’ve built up your reputation, your peers will loop you into job openings that could be a potential match for your skills. Listen to speakers at conferences and events to seek out and find job opportunities. But this doesn’t mean you should wait for the job to come to you.
Stay informed
There are no shortage of ways to stay on top of what the latest technology trends and skills required by various jobs are. Whether you prefer blogs and articles, newsletters, social media, meetups, hands-on training, documentation, video content, podcasts, books and print magazines, or conferences and events, there are no shortage of ways to keep up with the tech world. But the onus is on you. No one is going to do the learning for you.
Take the time to find resources that apply to your career direction, subscribe, and dedicate some time to learning something new every day.
Find your niche
Many times, the jobs with staying power are those requiring a very specific set of skills, background, and know-how that may come close to being unique. It's not necessarily that the skillset is obscure, it's that today employees are expected to play multiple roles.
Sure, there are plenty of bug testers out there. There are plenty of cloud administrators. And there are plenty of front-end designers. But put those skills together, and suddenly you're the most qualified person out there for debugging the control panel of tomorrow's nex big cloud tool.
Give back
Remember, we all started out as beginners. Did you get a helping hand when you were starting out? Do you wish you did? As you move through your career, and think about how to find a job in open source, consider ways that you can mentor and provide guidance to others.
There's a secret out there that many of us are unwilling to admit. No one is an expert on everything. And so while part of the mentoring relationship is paying it forward, and growing your network, chances are even as a mentor, you'll learn quite a bit yourself.
That's it. Simple, right? Of course, your mileage may vary. Let us know in the comments below which open source skills you find to be most critical, and why.
2 Comments