Interview: Chris Wanstrath of GitHub

by Satish Talim on February 21, 2009

On the eve of the first ever free, online course on “Git and GitHub”, Satish Talim of RubyLearning caught up with Chris Wanstrath and talked to him, in this short interview.

Chris Wanstrath, USA

Satish Talim>> Welcome, Chris and thanks for taking out time to share your thoughts. For the benefit of the readers, could you tell us something about your self?

Chris Wanstrath>> I’m a Ruby and JavaScript programmer living in San Francisco, CA. I was one of the guys who started GitHub. When I’m not working on the site, I can be found playing guitar or drinking bourbon. Sometimes at the same time!

Satish>> Why according to you, is it important for a new Ruby developer to know and use Git and GitHub?

Chris>> I learned how to program by reading other people’s code and contributing to open source projects. Submitting a patch and seeing how the maintainer rewrites it is invaluable: it’s like getting free, personalized programming lessons from someone with more experience than you.

GitHub is important because it’s one of the best places to participate in active open source development. The barrier to entry is extremely low, and with casual forking it’s basically designed for the “make small changes to a foreign project and see what happens” workflow.

Satish>> Why GitHub? Why not SourceForge?

Chris>> SourceForge is about publishing projects, GitHub is about collaborating on code. SourceForge is helpful when exploring or working on projects, but this is really where GitHub shines.

Satish>> What were the challenges of putting GitHub together?

Chris>> We’re still facing them today. We not only have to worry about the database when growing, but also Git repositories on disk – we essentially have two different data stores, one of which has never been used at this scale before. We’re constantly doing lots of very cool caching things under the hood to try and make everything faster.

Big database tables and high IO are our biggest issues. I think the key is to recognize problems early on and not be afraid of throwing out existing code in order to implement a better solution. It’s okay to do things the simple way early on – probably better, really – but you need to understand that they’re only going to take you so far before you need to spend more time coming up with a smarter solution that works for higher load.

Satish>> Do you have any suggestions for RubyLearning’s Git & GitHub course participants?

Chris>> Create and share open source – whether on GitHub or elsewhere! It’s very rewarding, a great way to meet people, and the best way to improve your skills.

Satish>> Thanks Chris for sharing your views with the RubyLearning GitHub course participants.

The opinions expressed are those of Chris Wanstrath and do not necessarily reflect those of

Technorati Tags: , , , , ,

Posted by Satish Talim

{ 4 comments… read them below or add one }

ashbb February 21, 2009 at 7:03 am

Great interview, thanks!
> GitHub is about collaborating on code.
That’s it!
I’m enjoying Ruby with Shoes programming on GitHub.
Thanks again to GihHub team. You are changing the wold. :-D


Joao Calistro February 21, 2009 at 8:01 am

Mr Satish, again you are doing an exceptional work, what a great surprise this interview with Chris Wanstrath, the course is starting very well.


André Faria Gomes February 21, 2009 at 7:21 pm

Very good! I think that GitHub have changed the way we share and contribute on open source development. Now is much easier to fork a project and start working on that.


Anonymous August 16, 2010 at 9:15 am

I disagree. SourceForge is dedicated to making collaboration more available then any other code repository. They also don’t have nearly as many issues as GitHub, and a much better support staff that is definitely more knowledgeable and expressive for the communities needs.

SourceForge is also about open-transparency whereas GitHub is not by hiding their real system issues behind closed doors. This too me is not a sign of a reputable company.


Leave a Comment

{ 5 trackbacks }

Previous post:

Next post: