We thought it would be useful to our community to post an occasional developer chat over the coming months.  Our hope is that you guys will learn something useful and perhaps discover an awesome project or two. 

We couldn’t be happier about kicking things off with Kenneth Reitz.  Kenneth’s contributions to open source and the software development community in general have been both prolific and awesome.  He works at Arc90, writes Python, and is perhaps most well-known as the author of Requests.

If you’d like to know more about Kenneth and his awesome work, you can find him on Work for Pie (http://www.workforpie.com/kennethreitz/) and on Github (https://github.com/kennethreitz).  Let’s get started! 

Who are you, what do you do, and how did you get started programming?

Hey! My name’s Kenneth Reitz. I spend most of the waking day writing Python, and couldn’t be happier.

My daytime is usually comprised of coding for Arc90, making Readability.com awesome. My nights are spent working on a bunch of open source projects.

I started programming when I was 10 years old. I always had an interest in computers. One day I came across a children’s book called “Let’s Learn BASIC” that was older than I was. Luckily, so was my hardware. I was given an old IBM 286 machine with a 40MB Winchester drive, running MS-DOS 4 and GW-BASIC. I couldn’t have been more excited. I spent countless hours writing simple text-based adventure games and ASCII animations with GW-BASIC. Keep in mind, this was in 1998. I was way behind the times.

I eventually upgraded to MS-DOS 5 and got the super-fancy EDIT and QBASIC tools. By the way, if you’re as nostalgic as I am, you should check out the awesome qb64 project.

In 7th grade, my dad gave me a crash course in C. I learned how to write functions. From there, I started writing games and DOS tools with Borland Turbo C++ and Turbo Pascal.

Surprisingly, the website for my first “project”, SplashWear is still online!

Years later, I got into PHP, Python, and C# — but Python’s the only one I really loved.

How and why did you start working on open source projects?

Well, I was a heavy Linux user as a kid (thanks to my dad), so open source has always had a big influence in my life.

WordPress is probably the reason I started publishing open source code in the first place. The barrier to entry in the WordPress plugin scene is respectfully low. Anyone can write a simple plugin with a few lines of code.

You’ve got a lot of repos! How do you find them and how do you decide what to write and/or to which projects you contribute?

Haha, thanks!

If I had more time, I’d contribute to all of them. Unfortunately, people need to sleep πŸ™‚

Currently, the majority of my time is spent refining the projects I have. I have a lot of private projects that I want to release as open source, but aren’t ready yet. I hack on those projets quite a bit when I have free time.

I do contribute to other projects often, though. Most of my contributions nowadays are informational: documentation fixes, feature suggestions, helping people in IRC or Twitter, etc. If I uncover a bug I’ll usually send a pull request with a quick fix.

I hope to be start contributing to Flask more soon. It’s just so well done, that it’s hard to find things to fix or work on πŸ™‚

What advice would you give to programmers who are interested in contributing to open source but don’t know where to start?

Go get a GitHub account. Lurk.

Find a project or two that you’re interested in. The GitHub Reflog is a great place to find new and interesting projects.

Watch. Follow a developer that makes great stuff. Get familiar with the innards of a project and see what other contributors do.

If you find a bug or have a feature request, open a new issue. If you feel confident, fork the project and make the changes yourself. Send a pull request and see what happens πŸ™‚

It’s rare, but sometimes maintainers can be hard to deal with. If you’ve tried your best to fit the project’s workflow and conventions, but the maintainer is snappy, dismissive, or just closes your issue without a comment: move on. That project isn’t worth your time.

If you feel like your code would be useful to others, Read up on open source licensing and stick your protect up on GitHub. Write some documentation. Tell people about it.

What are some of your favorite projects?

I’m super proud of the attention and community that’s built up around Requests, my HTTP for Humans project. It’s a joy to see people that are new to Python getting excited about it.

That aside, Legit is probably my favorite project. It’s a Git command-line tool that gives you a new interface for working with your repos, inspired by GitHub for Mac. I use it all day long. It’s my favorite project because it’s powered by a fusion of my other projects, glued together: Requests, Clint, and Envoy.

Few things are more satisfying than using your own tools to get real work done.

As far as other projects are concerned, I in love with Flask, Redis, and PyPy. I’m actively looking for an excuse to build something with Love2D, Neo4j, and Protovis.


Thanks so much to Kenneth for doing this for us!  Coming soon, we’ll have Daniel Pritchett join us for installment #2.  If you’d like to be featured, or know of someone you’d like to hear from, please give us a shout!

We’re Work for Pie.  We help devs build portfolios based on their open source work, and we give them a score that rewards them for their efforts and challenges them to do more.  We’ve also been told that our t-shirts are pretty cool.