GitHub and my open source life

Jen Andre
I. M. H. O.
Published in
4 min readAug 4, 2013

I really like GitHub. Who doesn’t? Like many programmers, I will grumble about little things (ahem, how their latest redesign shoved the clone URL into a tiny box in the right hand corner that ALWAYS masks the URL), but overall, I am pleased as punch with how easy it is to manage my Git repositories.

GitHub has also done something else for me: it’s made me a better open source citizen. Even if you don’t maintain an open source project, you’d be hard pressed in your work as a developer not to rely on some piece of open-source technology, and occasionally you find bugs or have enhancements you wish to add. I feel like with GitHub the process of sending those bugfixes and enhancements upstream has been so streamlined that I am doing it constantly now.

I’ve been a programmer now for some years, and since using GitHub I’ve probably x10 the rate at which I contribute back to the open source projects I use. Thinking about my life before GitHub, I’d have to generate a diff to attach to a bug report, or send it to a mailing list. The process would vary from project to project, and you’d often have to search through websites or documentation to figure out exactly what to do. When dealing with a project hosted on GitHub, thanks to the power of Git and GitHub’s nice interface, I know I just fork and send a pull request. Actually, if I’m fixing or altering something, I already have a forked branch, so it’s really only the step of crafting the pull request.

But GitHub has done something else — it’s really helped me readjust my paradigm of open source contribution, and in doing so overcome those pesky feelings of Imposter’s Syndrome, the ones that question whether my code is really good enough to submit upstream. If you read the Linux Kernel Mailing list, you’d assume that all open source projects are ruled by critical neckbeard overlords, and that submitting a bug fix or enhancement could possibly result in ego-crushing attack against your person if your code wasn’t good enough. It kept me a little reticent to contribute unless I was 100% sure what I was doing was correct.

Looking at the easy-to-browse issues and pull requests on GitHub, I realized most open source projects aren’t like that, and that most people welcome your contributions, and even if they aren’t happy with what you’ve done, the feedback is generally given very gracefully.

Moreover, the idea that I had in my head was that all popular open source projects have perfectly readable and maintained code, that all of these open source maintainers somehow have godly skills that far exceed yours. That crumbles very quickly in reality. When I’m searching for a library that does a particular task, thank to GitHub’s simple code-browsing, I look at the source and issues of almost everything I’m evaluating before I use it. You see a variety of skills and code quality. To fix things, you see ugly hacks. And you realize, you’re just as good as anyone else.

I always thought that GitHub will be a great way to get more women into programming, though I’ve yet to see a ‘killer app’ around that yet. The social reward and the feeling of accomplishment around even a simple pull request is a great motivation, and if you believe that women tend to value social interactions a meaningful part of work, the action of code contribution becomes a great engager for women. You’d be crushing their (inherently incorrect) stereotypes of the lonely programmer on the ivory tower, and help them realize that a career as a programmer is really more social than they think.

It would be amazing to see a site that pairs experienced developers (especially women developers) with less-experienced women to sherpa them into contributing to open source. The mentor would start with tutoring them into how to fork projects on GitHub (and help them identify which projects would be a good start for contributions based on project size, their interests and skillsets), review their code before they submit pull requests, and generally answer any questions they have. The entire process of pairing mentors with beginning programmers, along with the mentoring itself, could be handled purely online and reach a larger number of potential mentors and students than a lot of these women-oriented code schools (though those are extremely valuable as well).

It would be even nicer if this was baked right into GitHub, and I could“Volunteer to be a Sherpa” right from my profile, and browse available Sherpas to contact for guidance.

Ok, so that may be a bit of a crazy leap for GitHub, a humble site for hosting Git repositories… from social coding to real social change? But hey it’s my blog and I can dream big. ;)

--

--

Jen Andre
I. M. H. O.

Jen writes about security & software stuff. http://jenpire.com. Twitter: @fun_cuddles