Back in 1998 when I discovered Linux and open source, I never would have believed that I would make a career out of this. Back in those days I didn't have a clue about what I wanted to do, but I knew I wanted it to involve technology in some way.

Since those dim distant days filled with teenage inexperience and ... well, hair ... I have learned so many things about what works and what doesn't in building a career in open source. So here are some broader principles I have learned that may be handy for those of you starting out on your journey. Irrespective of whether you want to be a programmer, community leader, documentation writer, entrepreneur, or something else, I think these principles will help in setting you up for success and differentiating you from the pack.

You don't have to have all the answers

The open source industry is filled with smart, accomplished people. Assuming that these people have always had the right answers and were able to plot their goals perfectly can be tempting. This simply is not the case. I know many of these accomplished people, and, for most, their careers have evolved in ad-hoc, unexpected, and unusual ways, often from happy accidents or disaster and then subsequently turning lemons into lemonade.

They key is not sitting down with a whiteboard and charting an elaborate path forward for your open source career. Sure, have plans and focus on achieving them, but always be surveying your current situation to find opportunities you can pursue. Someone cool follows you on Twitter? Follow them back and strike up a conversation over DM. Meet a neat person at a conference? Get their business card and go out for coffee with them. Interesting new technology? Learn it, master it, and explore companies that use it as a potential next step. Joined a local meetup that is poorly run? Volunteer to run it well and build it into something successful.

Opportunity is everywhere—you just need to find it. People who are successful always have an eye for opportunity and are able to harness in a way that expands their potential. This could be opportunity in code, relationships, projects, communities, or elsewhere—always be proactive in how you look for it. Opportunity won't always come to you.

Importantly, there also is opportunity in obstacles. When something goes wrong, you screw up, or you get bad news, use it as an opportunity to find the learning in there. You got fired from your job for not doing well? This is an opportunity to explore what the flaw was and resolve it or prevent it from happening again. Didn't get your talk accepted at a conference? Learn about why and submit an even better talk next time.

Focusing on opportunity provides an important psychological function in giving us the energy to succeed. Focusing on the failures, flaws, and limitations merely hampers our energy. I know it can be tough, but stick with it, and you will do well.

Show impostor syndrome who is boss

Imposter syndrome is a common issue, and something I have experienced, too. Essentially impostor syndrome is the feeling that you don't measure up in a particular company, community, or elsewhere, and at that people will find out you are not as good as they originally thought. For some folks, particularly in members of underrepresented groups, this can cause crippling insecurity.

Here's the good news, though: Imposter syndrome can be conquered, but only you can do it. At the core of impostor syndrome is insecurity and the antidote is confidence. Building confidence is a process and takes time, but you build it by:

doing work you are proud of,

doing work other people enjoy the results of,

having friends you can talk to and who can help build your confidence in your contributions,

always reminding yourself that impostor syndrome is often an illusion that distorts accurate thinking of your actual capabilities.

Like anything, this is a process, but by focusing on these four elements, bit by bit you can drive impostor syndrome of your life.

Prove yourself with action and self-motivation

Some industries are really tough to crack because they require formalized experience and education. For example, to be a surgeon you have to have extensive training. Invariably to get this training you need money and developing the skills by teaching yourself is really difficult, if not impossible. Open source is different. Literally thousands of communities are out there right now where you can get started, learn new skills, develop/refine those skills, and build experience. This means huge opportunities to build a foundation of experience that can help you get the job you want.

I will give you a personal example. When I was at school I got mostly C's in my core education. My extended education netted two D's, an E, and an N (this is almost as bad as spelling your name wrong on the exam paper). For all intents and purposes, I sucked at school. When I discovered open source, it presented a huge playground in which I could build my experience. I first set up a website for UK Linux fans (ironically created in Microsoft Frontpage 2000), started a Linux User Group, helped out with KDE and GNOME, kicked off a few open source projects, and more. Again, the opportunity was there—the trick was finding it and cultivating it.

Now more than ever there is a great opportunity to do this. If you are programmer, develop your GitHub/GitLab profile, and beef up your scores on Stack Overflow and elsewhere. If you are an advocate, do great work on Meetup, join local groups, and help out. If you are a writer, start a blog, contribute docs to some projects, and more. Irrespective of any of these, develop a social media presence, fill up your LinkedIn profile, set up a website, and more.

Taking these steps isn't always easy. Many of you will have existing jobs, kids, and other responsibilities, and time can be a precious resource. This is a great opportunity to get creative with your time. Have a commute to work? Listen to audio books, podcasts, and other educational resources. Free time at lunch or at a coffee break? Reach out to folks for a lunch/coffee meeting and learn from them. Have a spare evening? Join a meetup group. Have an hour free before bed? Participate in a community forum, do a little coding, and explore other ways to contribute.

Build a network

Much opportunity in open source is born out of getting to know people, also known as networking. Anybody can go out and meet as many people as possible, but the key here is not knowing more people; rather, it's building the right kinds of relationships.

Almost every day I have conversations with new people. I meet people online, I receive introductions, and I get LinkedIn requests. With each of these folks I have a few core goals. First, I want to understand them, learn from them, and discover what they are passionate about. Sure, I will share what I am interested in, but I am more interested in them and what I can learn from them. Second, I want to develop an authentic relationship. I can't stand people who only want to know me because they want something, and I don't want to be that person, either.

The key here, fortunately, is just being a good person. Meet people, let the relationship take time to develop, and always offer to be a friend and supportive of their goals. This develops a strong sense of goodwill, which often results in opportunities further down the line. I can't tell you how many people I have introduced companies to who have been hired because they are not just skilled, but also really friendly, compassionate, good people.

Build your network, but be authentic, and focus on quality relationships rather than quantity.

Always have a thirst for learning

Finally, always have a thirst to learn and grow. When you get to a certain point in your career—such as landing a job you love—feeling you have mastered the core principles of what you do and to slow down (or to stop learning) can be tempting. This is a huge mistake. Doing well in open source is not just about getting a great job and great benefits—it is about being the best you can be. We don't become the best if we become lazy, complacent, or indignant. We become the best when we constantly challenge ourselves and our assumptions.

A good way to always develop the right mind-set is to continually challenge your perspectives and beliefs and always realize how much you don't know. As an example, I think I am fairly decent at building communities, but I feel I have so much more to learn. Although I have written extensively on the topic, I know that I am merely scratching the surface of what I could know. I have hundreds of questions for which I want answers, and I know the only way to find those answers is to learn from others, challenge my assumptions, and learn in places I would never typically look.

Over the years I have developed many strong viewpoints that are not only invalid today, but are entirely wrong. Experience, time, and good people are wonderful antidotes to getting stuck in your ways, but you have to let them in. A technique I find handy here is always to look for the frailties in your viewpoints and honestly assess whether they compromise your core perspective. If you do this and always strive to learn new ideas, approaches, and perspectives, you will become invaluable in the market.

So, there you have it—a few broad principles that I have found helpful in my career, and I hope they are helpful to you, too. I would love to hear your feedback in the comments. Which of these principles really resonate with you? Which do you disagree with? Which can you build on? Which additional principles should I have included? Be sure to share your thoughts in the comments below.