I have a friend who lives on the West Coast and has been thinking about moving to New York. He has a solid resume that speaks in lengths about the many years of his exceptional software career in the depths of the Enterprise. He wants to press the reset button, learn Ruby or Python and find a job with some web scale. At some point I advised him to get a Github account. Turned out that all the jobs he had been considering were already asking for it! Increasingly companies are asking to see a Github account, followed by references. A resume has become nothing more than a formality to weed out people flipping jobs too often.
Github enables individuals and organizations to create projects, fork them and to contribute source code to the forks without approval or oversight from the original authors. Changes can be committed locally, pulled to the parent repository with a code review. Anyone can comment on any single line of code or a pull request. You can use your fork immediately in your project. Github removed the remaining barriers around open-source collaboration and elegantly enabled private repositories for a fee.
Github is your new resume. Here’s how to make the best of it.
College and Personal Projects
If you don’t have a website, tech blog or any kind of useful online presence, Github lets you create yourname.github.com. Create an account and hit that address. Add a simple page that lists your projects. If you’re in college, those can be your current school assignments that currently live on your hard drive: move everything to Github, learn to use version control, push changes and collaborate with your classmates. These are essential skills in the industry and by the time you earn a degree, potential employers will not only hear about your school work during interviews, but will be able to see the code and dig though your commit history. Here’s mmcnierney14’s Github, he’s studying CS at Dartmouth.
If you have been coding for a long time, you might want to do the same with your old source and for all personal projects. I used to run my own Subversion server and was really happy to get rid of it, moving years worth of commit history to Github in a few clicks. Admittedly it’s a bit nostalgic to see my 15 y/o implementation of yet another C++ String on Github, accompanied by
a few many face-to-palm moments.
Your First Job
Your first job should be at an organization that embraces open-source and lets you contribute to existing projects. Other companies simply don’t deserve you.
Maybe your new team even uses Github as the source code repository! We do. It’s the default choice for Ruby on Rails projects, since the vast majority of open-source Ruby libraries live on Github. Other ecosystems are migrating at a rapid rate, so you’ll inevitably find yourself in a situation of needing to make a patch to a third party library. Java? We just migrated Java Native Access (JNA) from Java.net to Github.
Make Github Your Biggest Asset
And it only gets better with time. Here’s what I look for in a candidate’s Github account, with some examples from my team and friends.
- Recent, meaningful commits. I particularly like small incremental features or fixes with good code and tests, accepted into someone else’s open-source repositories. Here’s an example of sarcilav’s simple fix for a failing test in mongoid-history.
- Your own projects. I always pay attention to good documentation and high quality code. I read through closed pull requests and try to identify positive interactions with external contributors. Here’s a great example from aaw, known to spend extra time writing good documentation.
- Forking consistency. Usually developers fork projects to make changes in them. You can’t see private repositories, but the kind of public projects forked often tell interesting stories about them. For example, gib clearly is forking and contributing to something related to his day-to-day job at art.sy – backbone.js or jammit.
So do yourself a favor and move to Github! Your open-source contributions will play in your favor. And if you love Github as much as I do, come work with us at art.sy! We’re looking for our first iOS engineer to experiment with client-side HTML5 and a couple experienced RoR people. Send me a link to your Github account at dblock[at]dblock[dot]org. Oh and my own Github is here.