Christmas is nigh! For many software developers, this means taking some time off from work, planning to spend some time with family and beloved ones, finally getting home and then… doing even more work! Wait a moment!?
If you, like many regular software developers, have a nine-to-five job, this might sound like a dystopian future. It’s certainly not the way most people would want to work. But it’s the present that many open-source software developers face today – many by choice, some less so. I’m not here to demoralize you – I’m here to make you relieve and leave you with an uplifting message.
It hasn’t always been this way
Nowadays, open-source is everywhere. From the smallest utility functions to entire distributed systems and everything in between – open-source software powers the whole world. People all over the world work on open-source projects all the time. With this vast amount of people working on open-source, it should be no surprise many people have different motivations for doing so. People with passion, professionals and hobbyists alike, whether working on commercial projects or prototype dummies work on different open-source projects to scratch an itch – perhaps their own, unique itch.
Are you wondering what it takes to get started working on open-source? You can start working on open-source any time you want, the only person standing in your way would be you.
The scariest moment is always just before you start. – Stephen King
Trust me, been there, done that. If you want to start your own open-source project, here’s what I would suggest: Find something you like, start small, share it with the world, rinse, repeat. Whether it’s a small blog post, a minor feature addition in an existing repository or your own basic implementation of some niche feature. You will quickly learn that once you overcome any initial doubts, sharing with the world can be an incredibly empowering feeling.
Realistically, there’s a reasonable chance nobody will notice your new repository at first. Don’t worry, that’s totally okay, too. If your new project helps you scratch an itch, then it already fulfilled its most important purpose. From personal experience, I can confirm it’s not too uncommon to see close to zero interest in new repositories in the first year or two, even for projects that turn out to be very popular in the longer run.
It might take some time before people realize what your project is about and what’s so great about it, but eventually, it might turn into something bigger. Once you get your first star, your first ticket and your first contribution, you’ll find how all these things can feel magic. It can be an incredibly empowering feeling because it confirms your ideas and will help you be seen as an expert in your area sooner or later. If you’re lucky, you might get enough (commercial) support requests to start wondering if pushing it to the next level is reasonable.
Is it a good idea to turn your hobby into your job?
Do what you love, the saying goes, and you’ll never work a day in your life. Working on open-source sounds like a lot of fun to you? I think it is! But it can also be a lot of hard work.
When you turn a hobby into a job, it becomes work.
What a perfect way to remove the fun from something: take something you like doing and make it something you have to do.
I’ve been working on open-source for a living for some years and I’ve had the chance to talk to a number of people also doing so, and I know the struggle is real. It might mean you find yourself spending a lot of time answering support tickets or ensuring legacy compatibility instead of being able to focus on your great future roadmap ahead. Even when you like fixing bugs, it can become frustrating when you have to do bug triaging for commercial projects that you don’t otherwise care about. While I realize money isn’t a priority for many open-source maintainers, the same may also happen to you if you still consider your project a hobby and don’t earn a single cent from your work. Intentionally or not, your hobby may turn into work when enough people even with the best intentions demand your attention.
Especially when you love your job and breathe it, it’s very easy to turn into a complete workaholic. When your job becomes your life and you start working all day and all night on it, it’s never going to feel like enough. This may sound like such an obvious problem, but in the real world, it’s such a sneaky process that burnout and mental health issues are serious problems in our industry. If you’re starting to feel affected by this, by all means, don’t forget to take a break. Listen to yourself, find your own pace and reach out for help! Go find a new hobby and don’t forget you have no obligations to keep contributing.
I realize I’ve been lucky in many regards and I’m writing this from an incredibly privileged perspective. While money isn’t a priority for some, the rest of us have to find a way to make ends meet. Will your hobby turn a paycheck on which you can pay your rent? And if not, what can you do to make ends meet in the meantime? Finding answers to these questions is anything but trivial and continues to pose a real threat to many open-source endeavors.
It doesn’t have to be this way
Right now, when you’re working on some commercial project, you can benefit from a huge ecosystem of existing open-source implementations to build on top of and we all take this for granted. Maybe we should keep in mind that somebody has had to pay for this, at the very least some open-source developer perhaps unknown to us has spent some of their lifetime making it available. Does this sound fair to you? To me, I know it doesn’t.
We can do better. We can start by asking the relevant questions: Who benefits from the current situation? How can we improve this situation by finding fairer ways to distribute this? How can we establish more sustainable models to ensure maintainers can focus on their open-source projects? And who should be responsible for paying for this?
I think the last couple of years have shown that the mindset is slowly shifting. More and more projects are starting to talk about different approaches to achieve sustainability by actively reaching out for help and promoting ways to financially support package maintainers. The balance that used to be quite unfair is starting to lean more towards open-source projects. We’re starting to see big platforms are adopting new ways to financially support or sponsor open-source projects. Likewise, more and more projects are starting to understand that if your commercial project relies on some open-source projects for its business-critical features, it should be in your very interest to have a stable base. If your company doesn’t already contribute back, perhaps reach out to your boss and work out a plan to financially contribute to some projects. If monetary contributions aren’t an option due to financial constraints, that’s totally fine, perhaps you can work out ways so you contribute code during paid work hours. Always make sure to check your whole dependency graph for the many smaller packages you build on top of. What other ways to contribute back can you come up with?
We’re in the midst of an ongoing transformation process. If you’re working on an open-source project, I encourage you to actively ask for help and show ways how help or financial support is wanted. Instead of waiting for donations, offer something in return (sponsorships or support guarantees are an excellent start!). Even when I may not be able to provide all the answers in this post, it may help with finding some of the right questions. If you feel lost and don’t know where to start, always remember:
A simple ‘Thank you!’ can make a big difference.