Making a living from open-source
I don’t generally talk about my jobs in this blog. But in my current job at EDB I’m getting to contribute to open-source projects, and I could not be prouder.
For me, as for many in my generation, the advent of Linux and other software packaged in distributions like Debian was an eye opener, an education, an inspiration. I suddenly had access to all these tools honed over decades, all this rich heritage and limitless access.
I’ve always wanted to give back, and have made small contributions here and there. But, while open-source has been leveraged in all my workplaces (except Microsoft,) I had never before been able to contribute to open-source as part of the job.
I read this a few years ago:
Anything worth doing, is worth doing for money.
At first it sounded materialistic to me, but I realized it had a different meaning. It’s more about ensuring that worthwhile things can be done sustainably, that there’s a living to be made from them, that it’s not all down to shaming people into working for free.
Take music, for example. If there were no professional musicians, I don’t think some of the highly sophisticated modern styles would be possible. Not to mention quality recordings and quality home audio. A world without professional music would be a poorer world.
For software the same applies. Anything worth doing …
I don’t mean to say that all software should be written for money. Rather, there needs to be a software industry. People should be able to make a living from writing good software.
Some of my friends will not use any software that is not open-source. Me, I
prefer open-source when possible, but I’m more than happy to pay for any
software that does the job.
For example, I pay for VueScan and
Bear, which are not open-source.
These days I’ve been using Room EQ Wizard (see my previous post.) It is offered for free, no ads. I sent the developer a donation and he was over the moon about that; he upgraded me to the Pro version of his software, which is something he has started to experiment with recently to get paid for his efforts. Good for him, I say.
I admire Tailscale. They offer a great product for free for individual use, without adware, and are able to do so because they get paid by corporations for their enterprise-level product.
Open source presents some non-trivial challenges when it comes to getting paid. I don’t hold it against people if they don’t choose this route.
Most corporations benefiting from open-source would not think of giving back in any significant way, let alone in a proportional way.
After a year of development, the service was a success. My boss would tell me
how he would give demos to clients, and they would be awed by the speed and
sophistication of the results.
One day I asked him if the company could make a substantial donation to PostgreSQL and/or to Linux.
Ahh, ehh, well …
My boss explained that this was difficult to do. See, those organizations are not-for-profit; making donations would involve all sorts of legal red-tape. Big headache, it’s a no-no.
What could work would be to hire some organization for occasional tech support,
and make sure to pick one that gave back to open-source. I kept this in mind,
but did not have any need for tech support.
My small act of give-back was to get the company to pay for my ticket for a PostgreSQL conference that included some community sponsorship.
Peanuts, for the huge value we were getting from open-source.
More often than not, open source becomes corporate welfare.
Getting paid for open source
I tip my hat to anyone who manages to make a living out of open-source.
In 2021 I found myself wanting to leave my job. I started looking around, for the first time specifically for remote jobs. I saw a posting for a job at EDB. This was one of the companies I had evaluated buying support from for PostgreSQL, in that previous job. They were looking for Go developers. My main language. I applied.
I joined a team working on Kubernetes operators to manage PostgreSQL database clusters. The work was proprietary, but it was all in the benefit of Postgres, so I was happy to be giving back in my capacity. I was overjoyed when one of our Kubernetes operators was made into an open source project, CloudNativePG. It is a privilege to contribute to it as part of my job.
In my team I spearheaded some new tooling for testing. We decided to abstract it into a piece that might be of use for other projects. We have also made this into an open-source project: Ciclops.
Some of our work at EDB is closed-source. This is a good compromise. Doing proprietary work for the paying clients, to help finance the open-source work. I find it more important to make open-source sustainable than to insist on 100% open-source.
The public good
Private corporations, just as much as public organizations, have all sorts of
dysfunctions. When it comes to good software, private corporations all too
often end up discontinuing or junking software that had life in it, a following,
because it isn’t making big bucks1. What a waste.
In some other sad cases, a never-ending stream of “features” thought up to differentiate from the competition will end up baffling and frustrating the long-time users.
Open source projects can avoid those particular fates. They are not invulnerable
though, and they suffer other types of dysfunctions and bad fates.
Open-source is not a cure-all.
I find open-source to be an act of faith in the future, of good will towards the wider community; the conscience that one is part of an ecosystem.
While I understand people or companies not doing open-source, I find it shameful when they discontinue products without releasing them as open-source. This is movie super-villain behavior:
If I can’t profit from X, then no one will! Mwahahaha!
Not giving back to the open-source one is leveraging and making money off is shameful too. To me, open-source is a beautiful vote for the public good.
that awful word, monetize. Whenever I hear it I get shivers of disgust. ↩︎