Cover Image: Eyeglasses in Front of Laptop Computer by Christina Morillo
I give a lot of career advice. I mentor interns, juniors, and random people on the internet, usually drawing on my own experience or the stories shared on devpath.fm.
This particular set of advice comes from my own experience, I don't advise that everyone takes the same path I did (because it wasn't sustainable), but I do currently have evidence that I could spin up a quarter-to-half million-dollar consulting business if I felt inclined, which is pretty nice to know.
The story starts back in June of 2018 with a Pull Request on GitHub that changed a few lines of markup:
@jacobeubanks and I made this Pull Request to Solidus.
It was modest, but for us, it felt like an achievement. We were both pretty new to Open Source, and neither of us had really contributed to a project that was actively being used like Solidus.
Getting that PR merged really struck a chord with me, so I started looking for other ways to help out around the project (which is hard on a 10-year-old codebase).
Before long, I had a handful of commits mostly around documentation and small UI bugs. I'd also gotten involved in the project's Slack channel and asked the maintainers how I could be most helpful.
I had some great opportunities to get involved because I was invited to weigh-in on the Solidus Stakeholders committee and also attended a community conference in Memphis.
Between the direction offered to me by one of the project's Core Team members, Alberto Vena, and the bugs I found on my own, I was able to get my name fairly well-known within the small community.
One thing leads to another and eventually, Alberto extends an invitation to the Solidus Core Team.
As an aside, here is my advice for contributing to an Open Source project when you're afraid of rejection or unsure of your own ability to contribute:
Do boring tasks. They have to be done, and no one rejects a pull request that fixes tests, documentation, UI bugs or improves CI configuration.
This allowed me to contribute even more. I could review PRs, troubleshoot and sort issues, share my thoughts more effectively in the community, and merge new improvements.
I would say, this was a six to eight-month time investment. But the experience alone was worth that investment. I benefitted by learning more about Rails, making new friends and connections, and building a small Open Source portfolio.
Fast-forward to June 2019. I receive an unsolicited DM from a founder working with Solidus:
With zero outbound marketing, I was able to sign a client that would pay me over $10,000 USD a month for less than 20 hours a week chiefly because I was on the Core Team of the project.
This kind of exposure is incredibly valuable. I'll be the first to tell you, I'm not the most experienced or qualified developer in the Solidus community (that'd be those other people I recommended), but this founder saw my name on Solidus.io, so they reached out to me.
Here is some advice for reproducing this kind of thing:
1. Contribute to Open Source
Besides being great for your technical skills, your people skills, and the developer community, it's also great for building your professional network and brand. Being an Open Source contributor on a handful of projects is a no-brainer.
2. Be vocal and useful
Put your name on things you care about (like I did with Solidus). Look for opportunities to help others, it is the right thing to do for the developer community and it also helps you expand your professional network. This is super-duper important.
3. Find projects with a direct correlation to paid work
This is a really good idea if you're looking to turn Open Source expertise into a paycheck. With Solidus, this is obvious; people use Solidus to build businesses. There are business connections for many, many Open Source projects, especially if you want to go the consulting route. Contributing to literally any framework or infrastructure tool is highly marketable to the people building businesses with those tools.
4. Be open to opportunities
I literally never ignore an email, DM, or phone call. Yes, I see a lot of annoying spam, but I also see stuff like this because people know I am someone to reach out to when you have questions. There are varying degrees of this, what I do is not sustainable after a certain critical mass, so find a system that works for you. Just be sure you're not making it difficult to get in touch with you.
5. Find a healthy balance
I chose to spin this work down after one month because I was doing this consulting while also helping to build a startup. It was not sustainable in any way, so I stepped away from an opportunity. You cannot be available for these kinds of opportunities if you aren't balancing your workload.
Regardless of whether or not you can emulate my path or if you have the same amount of privilege or luck that has put me in the position to capitalize on opportunities like this, there is one piece of advice in this article that I will swear by until I die:
Be useful on the internet.
I'm pretty sure Ben Orenstein told me this when we were recording for my podcast (still working on that episode), but it rings true and encompasses all 5 of the tips I just gave.
Ideally, this gives you some insight into how Open Source work can turn into a job offer or a business.
I'd love to hear about other experiences with this same kind of thing or advice for getting into Open Source in the comments 👇
Top comments (53)
The way I broke into the web-dev industry was contributing two full weeks to an open-source codebase called Teambox and then I became their CTO overnight. I've never held less than a CTO position since.
Open source is the egalitarian's dream for career progression.
I contribute to Dev.to codebase and the AWS Docs when I can.
I have to begrudgingly contribute to a few ruby gems since all the 10x ruby developers sailed out to Valinor, the Undying Lands, across the sea to the west.
I just had a wonderful Zoom call with Ben, Jess and Nick tackling a big old and ugly ticket.
github.com/thepracticaldev/dev.to/...
If you ever want to show you have good team skills, Open Source a strong qualifier.
"Be useful on the internet" - this is a powerful advice and i will endeavor to live by it.
In my experience, it makes you feel good and it also tends to result in great opportunities; it's a win-win.
Hi Jacob,
that's a great article. Thanks for creating and giving such amazing tips for contributing to open source projects. Looking forward to reading more and also to contribute more to open source projects.
Hey! Thanks for reading Christine. 🤠 Hopefully, this is useful to you in some way. I think if I had this information earlier, I would have started working on Open Source earlier in my career.
First off, great story. Inspirational and some great suggestions on how to get involved in open source for those who haven't, like myself!
I have a similar (but not as cool story). I've been been running a personal blog for a few years but I'm not a frequent writer by any means. I take pride in posting quality content about topics that I have expertise on and ensure my articles are very thorough. For me, it was just a fun past-time and opportunity to share my knowledge with the larger developer community, until one day when a content manager from Logrocket.com found me. Although I didn't have a ton of blog posts in my portofolio, I believe what I had caught his eye because of quality. Since then I have been writing for the LogRocket blog and getting paid to do so. It's been a blast so far!
Hey Jacob, I always thought about doing small contributions to open source projects and have done them, but I always felt it was insignificant -- although the authors were always very happy to see me contributing! I should keep doing it :) amazing and congratulations on your well-earned money! 🎉
As a maintainer -- I'm never unhappy when someone makes a small improvement. I especially love documentation updates because that is a huge driving force for adoption.
One of the first things I do when I'm looking into a new Open Source project is trying to fix typos and unclear documentation. It forces me to read the docs, and I can be helpful!
I think more than anything, this shows how important branding is for senior and freelance developers. If you want to get the good, high paying jobs, you need to show your skills. Open Source contributions is only one of the many ways you can do that. Being on Dev.to and writing about what you know is a great option too!
You're totally right. Having a bit of reputation can be extremely useful when it comes to building your career, that's one of the things I talk to a lot of my podcast guests about.
Avdi talked a bit about that when we chatted.
I got a question Jacob ,how can you join the open source community and also what language are requiere to start helping ...
Is there an specific programming languages for the world of open source ?
Also why people are saying java is dean I hear that for long time now like java is gonna be dead I couple more years ..., but I love c#..
Java is definitely not dead. It's everywhere! Spring is a popular framework, and Java is used for a huge percentage of Android development (with Kotlin). C# is also a wonderful programming language, I think it's actually getting more popular!
Personally, I first started getting involved by finding a project that we used heavily at work. For me, that was Solidus.
DEV is also Open Source, so if you want to work on a friendly project, that's a fun one!
Thank you great for your answer ,so interesting
G'day Jacob, your article has resonated something I've longed to articulate, and it's your innovative approach that has inspired me to commence on a path with certainty for which I am grateful. Perhaps this was one of the many reasons that convinced you to share this with the world. Watch this space. You deserve the gratitude thanks
Haha thanks! Glad it helped! 🤠
Great article, I enjoyed reading it. However, I am part of the Grammar Fourth Reich !!
"One thing leads to another and eventually, Alberto extends an invitation to the Solidus Core Team."
Did you mean literally that, or rather that Alberto extended the invitation to you, to join the Solidus Core Team ?
Your choice.
Very cryptic, Herr Herrington !
I choose that the invitation is for anyone that wants to be part of the team, thats the beauty of OSS
Great article, but how did you become involved with Solidus to begin with - how did get to the point of making that first PR? Were you using Solidus on a project?
Your advice is great but the point for many people is which OSS project they should pick to work on, if there isn't something obvious that naturally presents itself (best choice is of course to contribute to a project that you're using and benefiting from).
In this case, my employer is building a product on top of Solidus.
However, my employer didn't actually ask me to work on the project, I was just looking for an OSS project to work on and that one made sense!
Right! Yes that was a perfect opportunity then, and as always in life, one thing leads to the other. Thanks for the great story and the great advice!
Happy you found it helpful!