What open source project should I contribute to?
May 15, 2015 8:03 PM   Subscribe

I want to contribute to a large, existing open source project. Which one?

I am a "senior software engineer" for a giant tech megacorporation writing C/C++/Java systems-level software. I use open source tools and libraries all day, but have never made a significant contribution back to the community (some tiny bug fixes, some kind of stupid personal projects on Github... nothing that really helps anybody). I'd like that to change.

I have 5-8 hours a week. My employer is supportive, but this would mostly be on my own time and with my own equipment. They would prefer I not work on anything that I actually use every day at work because of IP concerns (they have quite a few internal forks of open source projects that they consider their own property... they would be very unhappy with any of their secret enhancements getting out in public). Most of my colleagues are not involved in open source at all.

Here are my basic goals:
1) Write code that people actually use. My day job has some really interesting, unique problems, but it's an R&D lab, so 98% of our stuff never makes it into production. This makes me sad.
2) Improve my skill set. I like systems programming but I'm terrified of becoming irrelevant as it becomes a more and more niche area.
3) Have something concrete to put on my resume. For example, I see many resumes that say so-and-so is a PMC member for an Apache project, and I believe that counts for a lot. Just saying I'm a "contributor" to something probably doesn't count for as much.
4) Get involved in something that is small now (small enough to contribute to significantly as a hobbyist), but will be big in a few years. I did some patches for OpenStack 4 years ago, and if I had gotten more involved in it back then, it could have lead to a lot of really interesting career opportunities... but of course I didn't do that, and now it has major corporate backing and no room for amateurs.
5) Contribute to things that are useful, help people out, meet smart interesting people, all that good stuff.

I've asked a few friends. One suggested IPython, which seemed like a pretty great answer since its popularity is exploding right now but it still has no corporate backing. Any others?

posted by miyabo to Computers & Internet (9 answers total) 6 users marked this as a favorite
Anything to do with SciPy that you think you could help with would have a direct, positive influence on making science easier to do, cheaper to do, and better to do for the entire planet. So I think your iPython suggest-er was on point.
posted by oceanjesse at 9:35 PM on May 15, 2015

Localwiki.org is small now but will be big in a few years. It started in Davis, CA, where it is THE resource. Basically it's like yelp but a million times more useful.
posted by aniola at 10:24 PM on May 15, 2015

What OS project would your use / do you use?

Choose that one.
posted by my-username at 4:03 AM on May 16, 2015 [2 favorites]

They would prefer I not work on anything that I actually use every day at work because of IP concerns

It just seems like such a no-brainer, though, to work on the tools and projects that you have deep experience with, that demonstrably contribute daily value to your company and presumably value to many others, elsewhere. (I think... right?)

Maybe this is logistically/politically impossible, but are there any bright lines that you could figure out that would still let you improve/enhance/stabilize the OSS the company uses while protecting your company's interests?

If you'd really like to do something entirely different, though, then that's a different story!

For whatever it's worth, I'm just a random user who doesn't know the landscape, but I love Scribus and VLC. I'm grateful they exist.
posted by zeek321 at 5:31 AM on May 16, 2015

(Also, if you're looking for impact, maybe look for surveys/studies for OSS that has the most users, and for surveys/studies/gossip for OSS that has good political structure and a good track record of onboarding and empowering people to make deep structural contributions to the code base?)
posted by zeek321 at 5:35 AM on May 16, 2015

(You could even write a tool that crawls github or something that looks for "sharply inclined committer trajectories"... Like some metric for how quickly new users to a project make X lines-of-code commits to code bases of Y size or something... Ok I'm done.)
posted by zeek321 at 5:38 AM on May 16, 2015

You could help port Python 2 libs to Python 3. You will probably learn a lot.

I will suggest something slightly off-base. The Raspberry Pi has a large install base and you can contribute there. Given your goals, you could use your Pi work to orient towards the Internet of Things. You could use Windows 10, Ubuntu Core, Debian, whatever as the base. I figure the Pi is a way to get involved with an open IoT platform now.
posted by PickeringPete at 6:29 AM on May 16, 2015

You might consider contributing to Julia, which is a very new technical computing language that has a lot of people excited about its possibilities. Julia has just gotten off the ground in the last few years, but I'm really interested to see where it goes. Some are suggesting that it could one day compete with R, Python (NumPy, pandas), or Matlab for scientific computing.

Julia has shown benchmark times in the same neighborhood as C and Fortran, despite being very friendly to write. It's also built for parallelism. The major challenge that it faces is that the more established go-to languages like Python and R have such a head start with thousands of libraries to perform nearly any task under the sun.

I think contributing to that project would hit a lot of your wish-list items. The fact that it's young gives you the opportunity to have a big impact; and the fact that the language's focus is on numerical or scientific computing problems means that there is certainly a ton of utility since data mining has exploded in recent years. And of course, if you want to work in this area, I don't think you'll ever have to worry about "becoming irrelevant".
posted by grisha at 7:24 AM on May 16, 2015 [1 favorite]

Response by poster: Thanks everyone! It sounds like Scipy/Numpy/Pandas is a good bet, given that it is rapidly growing and still relatively open to outsiders. Julia sounds great but it seems like more of a longshot since it doesn't yet have critical mass (but it's a very cool project and I hope it succeeds). Localwiki is great but doesn't seem to need coding help.
posted by miyabo at 10:03 PM on May 17, 2015

« Older Bay Area Casual Party Venue   |   Advice for a tall-ish mom of a short child? Newer »
This thread is closed to new comments.