open-source doesn't mean work for free, it means contributing to a bigger picture, if you're good and relevant people will give you money so you keep doing it.
we have people that are silent major contributors to major projects that don't make a dime and people that build silly libraries that just provide neat wrappers and documentation around other apps and make a fortune in donations, patreon money and etc.
this is the solo scenario, I won't go much further into building a company around open source because we this is its own rabbit hole.
here's what you should keep in mind:
- generate value
generating value can be done privately or with open source, in private you will be generating money for your clients, in open source, you are contributing to the human race codebase.
what is your main goal? to be rich? famous? recognized? build something everyone loves?
reflect on that for a few minutes, then read the next section
after you decide what is your priority in life, you can decide on how you want to tackle this software thing.
If you want to be rich, you can either make a flashy framework that helps people be super productive with very little knowledge, invest a lot of time in docs, video tutorials, examples and automation and set up a patreon so people can give you money and sponsor your work.
Or you can build a sas project and try to make it as an entrepreneur, sell your apps in any app store, etc.
if you want to be a famous developer, you can either build a very hard open source project, be one of them presenters that travel around the world talking about the importance of insert project/methodology/technique/company here either for an open source project or as a professional evangelist
There are many many ways to go about open source
- people use it as a way to drive human society forwards
- shield common knowledge from the corporate greasy greedy fingers
- a way for businesses to let people try their software for free and make it impossible to set up at scale so they can sell you managed services or support
- a way for companies to promote brand awareness by creating or donating to open source projects
- a way for companies to get free work
- a way for big companies to collaborate and build common tools
there are so many ways to go about it, some will make you money, some won't, just like regular businesses, and just like regular businesses you need to know what your priorities are and why you are getting into it.
everyone needs to make a living, so money naturally comes to question and people are more then willing to give you lunch money if you build something useful, but you need to be smart about it.
effort does not equal results
- on one side we have geniuses that made incredible breakthroughs and died poor, miserable, and anonymous until history reviewed their case
- on the other side we have people making millions from the dumbest projects, ink cartridges, goji berries, salt crystals, etc.
By your profile and pic, I'm assuming you're a young engineer at the beginning of your career. So I'll share some personal advice.
I'm a bachelor in computer science, 7 years as a programmer, 2 as a devops, 3 as a software architect, and just recently promoted to team leader, and having worked on a couple of unicorns and silicon valley companies there are some patterns that emerge.
I see a lot of bright young engineers like yourself trying to find out what they want from their careers and you might still be getting distracted by the thing that lures all young engineers, which is trying to be smartest person that knows a lot about everything, can code in several programming languages, make mobile apps, do frontend, know AI, do cloud stuff and solve any problem.
I know I was like that, and although setting out to be the best will push you very very far, it is best to manage your expectations. Decide on what is really important for you, then set out to achieve that. Open source, privately, set out to achieve something that will make you happy, not the center of attention, then plan accordingly.
I'll leave you with a quote from House M.D.
"It doesn't mean anything."