Live data from Hacker News

Ask HN: How can I get involved with Linux/OpenSSL/GnuPG/etc

news.ycombinator.com

1–10 of 30 posts

Ask HN: How can I get involved with Linux/OpenSSL/GnuPG/etc

#1
What would it take to be involved in $bigScaryOpenSourceProject? I'm passionate about cryptography, security, and privacy so projects like Linux, Firefox, OpenSSL, etc... might be perfect for me to get more involved with. Outside learning C or possibly Rust (for Firefox development in future) I have no idea how I'd start with any of these projects, partly as my day job is all web based so it's what I've been focused on for years.

Are there valuable contributions I can make outside writing code? For example, SSL can be tricky to setup but tools like SSL Test and the Mozilla Server Side TLS wiki page are invaluable in making us all safer. What's something in security that's too difficult or time consuming that I could work to automate or make easier?

Re: Ask HN: How can I get involved with Linux/OpenSSL/GnuPG/etc

#3
Subscribe to the mailing lists of one of these projects and try to build the project from source. Check the bug trackers for things that are not very interesting but need fixing anyway. Then prepare a patch and try to upstream it (the method depends on the project).

As you work on the little things you will slowly gain a better understanding of how the code base is organised and how you could contribute more significant changes.

Valuable contributions outside of writing code differ across projects, but most lack current or understandable documentation. As you learn about the project and read whatever documentation might already be there you will certainly find things that can be clarified.

Re: Ask HN: How can I get involved with Linux/OpenSSL/GnuPG/etc

#4
$bigScaryOpenSourceProjects are very picky about how contributions are made and are unfriendly to newbies. Most of your time will be spent arguing over one or two lines of code. If you haven't contributed to open source before, your best bet is to start on smaller open source projects who have forgiving maintainers.

Re: Ask HN: How can I get involved with Linux/OpenSSL/GnuPG/etc

#6
I'd like to recommend Raymond Hettinger's talk from last month, Where he talks about how to contribute to the Python project. I think it's a great talk even if you're not coming from the Python world and can serve as general tips for contributing to a large open source project.

https://youtu.be/-TdrFjDJn5E

Re: Ask HN: How can I get involved with Linux/OpenSSL/GnuPG/etc

#7
My $0.02:

* Pick a project you use and like. This way you will already be familiar with some aspects of the projects and you will have an idea for what works and what doesn't. You will be able to use your improvements for yourself.

* It's easier to contribute to a small project than a larger one. Larger projects are usually more complex and require understanding more code. If a smaller project has less people involved with it, it will be easier for you to get to know everyone and for everyone to get to know you.

* It's also easier to contribute to newer projects. Older projects usually have strict guidelines that can take a while to get used to. They often have internal politics that come into play. Finally newer projects have a lot of "low hanging fruits", simple things that anybody can fix.

You can start with commits that fix docs or clarify the code with additional comments. Contribute some unit tests, etc. As you familiarize yourself with the code and the process, you will be able to fix larger bugs and even implement new features.

Re: Ask HN: How can I get involved with Linux/OpenSSL/GnuPG/etc

#8
post #4

$bigScaryOpenSourceProjects are very picky about how contributions are made and are unfriendly to newbies. Most of your time will be spent arguing over one or two lines of code. If you haven't contributed to open source before, your best bet is to start on smaller open source projects who have forgiving maintainers.

For instance, Rust. They're the friendliest community around.

Re: Ask HN: How can I get involved with Linux/OpenSSL/GnuPG/etc

#9
You should consider working on some of the PyCA projects, including any of cryptography, PyNaCl, PyOpenSSL. They are smart people with solid engineering practices and a lot of experience.

The reason you should consider it is twofold:

- Code is only good if it's used, and ideally, usable. - This gives you a great opportunity to learn a lot about OpenSSL in an environment that has more (resources for) mentorship and unit tests.

https://www.github.com/pyca

Disclaimer: While I was around when it was founded and am still officially its resident cryptographer, I don't really do much of the work. I just occasionally show up and say "Frobenius" a lot.

Re: Ask HN: How can I get involved with Linux/OpenSSL/GnuPG/etc

#10
I've contributed to open source software, and done a little maintenance work too. The number one thing I recommend is that you email the project mailing list before you start work. Tell them that you're new, but you want to help. People are usually happy to help newcomers find an appropriate project and answer questions along the way.

What I've seen going wrong in the past is where people decide that they want to contribute to a project and don't tell anyone else about it until they've written hundreds or thousands of lines of code that are never going to be accepted, because the maintainers don't like their overall design (or the maintainers don't agree with the direction of the patch, or something else that could have been caught early but is way too late now).

Communicate early, communicate often. And if a community doesn't like that, leave and find a different one. Your time is more valuable than that.

P.S. and be sure you're contributing to a project that you are passionate about, not just one that sounds cool. Having your own intrinsic motivation will make a huge difference.

Post reply on HN