What motivates you to contribute to open source projects?

17 rizs12 13 5/30/2025, 4:09:32 PM
And how much time do you spend contributing to them?

I am exploring the prospect of doing so.

Comments (13)

em3rgent0rdr · 1d ago
All the open source software that we can already use for free is a big reward. The funny thing is this reward was already provided to us. So contributing to open source software could be though of as our payment for that reward.

The fixed bug or feature itself is a reward. And that you just need to code that feature instead of having to write your own complete clone of that software just to add one extra little feature. And just like that you have added your little brick to some amazing tool which you can say you helped build.

If you are exploring the prospect of contributing, then a good way for you to be motivated is to find some software you use often, but which you personally would like some feature or bug fixed.

acheong08 · 1d ago
I write a lot of random code that have very little economic value so there's really no point in keeping it private. Sometimes they end up being helpful for other people.

E.g. https://github.com/CopilotC-Nvim/CopilotChat.nvim was written in a single afternoon while sitting at a social event I didn't enjoy and now there's 60 contributors and I've completely handed over ownership/maintenance to the community

I still use an ancient version of obsidian on my phone because it works with my hacks to self host the native sync server https://github.com/acheong08/obi-sync

For other open source contributions, I generally just add features I want or fix random bugs. I use exclusively open source software for everything, no big tech accounts at all. So contributing only helps myself

ryao · 1d ago
My OSS contributions are predominantly bug fixes with very little feature work. My primary motivation is either a need I have to fix an issue for myself or the pure intellectual challenge of tackling an issue. I have not had many bugs bother me lately. In the past, I had made bug fixing practically a full time job (which lead to employment opportunities). These days, I only do a few hours a week.

My advice is to find something that you like, but want to improve, and then work on improving it. With some luck, the maintainer will be a nice guy and you can collaborate with him on it.

dyingkneepad · 1d ago
Getting a check every 2 weeks (and other benefits, like Health Insurance) is what motivates me. I spend about 8 hours per day Mon-Fri contributing to open source projects.

(I mean, I don't do it only because of these reasons, I'm a true believer of Open Source, I believe it is the more superior development model for a more civilized age, but it's kinda hard to argue against a paycheck)

ryao · 1d ago
There is nothing wrong with getting a paycheck to be able to eat. I spent a roughly 2 year period after college between 2012 and 2014 where I had no job and just worked on OSS exclusively without any compensation beyond nerd credit (and a small credit Google sent me for their online store to buy swag after one of their employees nominated me for an OSS award).

My OSS work turned out to be a great resume builder that opened opportunities for me that far exceeded what I would have had if I had gotten a job as a junior developer straight out of college. The mentorship by the ZFSOnLinux and Gentoo communities was fantastic and helped me mature into a senior level developer rapidly. :)

That said, it is great when you can do worthwhile work and be paid for it. It is a double win.

brynet · 1d ago
I'm food motivated.. so pizza. :-)

https://brynet.ca/wallofpizza.html

ezekg · 17h ago
I solve an issue for myself, and I want to share that so other people can solve their own issues.
deciduously · 1d ago
Usually, because a particular project fails to meet a particular need I happen to know how to fix.
ryao · 1d ago
Most of my OSS work has been in OpenZFS. I got started on it because of a mix of a hardware failure and Microsoft’s incompetence. Back in college, I had a Windows Media Center machine that had a second drive for recordings. The recording drive failed, and Windows would not boot. I then decided to take a two factor approach to resolving this issue. The first factor was to no longer trust Windows on physical hardware, so I built a new machine to virtualize it. The second factor was to have redundancy to survive drive failures. I tried MD RAID 6 with 6x 2TB drives and LVM2, but no matter what I did, I could only get 20MB/sec in QEMU. There was no run to run variance as the results were basically exactly 20MB/sec each time and I had no idea why. I then tried ZFSOnLinux and saw 200MB/sec to 220MB/sec performance across various runs. ZFSOnLinux was not considered production ready at the time and had some obvious flaws (such as warnings about mutex corruption in dmesg when loading the kernel module), but I thought to myself at the time “I am a CS student. I can fix this.”. I then started writing patches and sending them upstream. Since then around 15 years have passed, and I have submitted somewhere between 400 to 500 patches to OpenZFS (a good number are in the obsolete SPL repository). I also was Gentoo developer for a number of those years and maintained the ZFS packaging and wrote the genkernel ZFS support. I have a number of miscellaneous patches in other projects too, including Linux.

Anyway, I commented to say that I had a similar experience. I did not know how to fix the issue in MD RAID 6 + LVM2 back then, but I knew how to fix another project that did meet my needs, so I fixed that. :)

horsellama · 1d ago
In random order: fixing bugs that bother me; networking; learn
UncleEntity · 1d ago
If I'm poking around in a FLOSS lib and I encounter a bug I'll either submit a fix or a bug report if I can't quite figure out the problem.

About 15 years ago I used to contribute to Blender and did it just because it was something fun to do. The documentation wasn't all that good and if I wanted to figure out what some random button did the easiest way was to read the code and, in the process, I'd find bugs. Also, the Python API wasn't completely comprehensive (this was right in the transition between python 2 and 3) and I took it upon myself to fill in a bunch of holes. Other times some artist would ask for a feature and if it was something within my capabilities I'd oblige. Mostly I'd just try different things and if it were viable I'd submit a patch (where the devs had a different definition of "viable") or horrible fail and just move along to the next shiny thing. Eventually I was given contributor status but would almost always go through the regular patch submission process and/or pester one of the main devs before committing anything.

I started out just learning Blender, because it was interesting, then started hacking on Blender because that was more interesting. In the process I learned a bunch about how python does it thing, which I still use to this day, and got really, really good at hunting down segfaults due to not being the best C programmer.

So, yeah, like everyone else is saying, just find something you enjoy and contribute to that... or don't contribute and just submit good bug reports.

cranberryturkey · 1d ago
RATM baby!
m3047 · 1d ago
That can mean a lot of different things, and imply various adjacent activities which may or may not meet your definition of "contributing".

I've submitted PRs to projects I use (dnspython, scapy). One of the cybersecurity companies I worked for managed various ruses to keep me from supplying fixes to upstreams; the most feckless bullshit reason they came up with was "opsec".

While working for Farsight I reviewed and provided feedback to several open source projects regarding their integrations with e.g. DNSDB.

Not everything has to be a PR, or targeted at the project's self-declared consituency. For instance I wrote a protobuffer dissector for scapy (https://github.com/m3047/tahoma_nmsg) because scapy was a handy "living off the land" kind of way for customers and prospects to taste Farsight's tunnelled SIE products without compiling a bunch of C libraries. (You can declare your own protobuffer data types, use https://github.com/m3047/tahoma_nmsg/blob/master/tahoma_nmsg... as an example.) I don't distribute scapy, so there's no compelling reason for me to use the same license. (You're welcome.)

In fact, I re-used the protobuffer dissector for the Dnstap half of the ShoDoHFlo DNS + netflow correlator (https://github.com/m3047/shodohflo). I started down that road because Vixie got his panties twisted up and his hair on fire about DoH, and once I looked at it it seemed that there was something in there that I'd personally find useful. A couple years later I decided I wanted e.g. "dig -x" more than a GUI, and after several iterations I came up with Rear View RPZ (https://github.com/m3047/rear_view_rpz). I find it useful, and I think it's a pretty cool hack. (Works with EtherApe!)

ShoDoHFlo stuffs data into Redis. I found myself utilizing that data for other purposes and got tired of installing a Redis client and dealing with the security issues. So I implemented a DNS proxy for Redis (https://github.com/m3047/rkvdns).

I still haven't "found my tribe"; or maybe I have, and most of them don't contribute to open source. Nobody submits PRs, and nobody I know opens issues; instead they send me emails. :-/