It’s that time again!  We’ve got another developer chat for you guys, this time from Mr. Ryan McGrath.  He’s currently living in Tokyo, Japan, where he works for My Gengo.  You can find him on Github here and on Work for Pie here.  Okay, let’s get started!

Who are you, and what do you do?

I’m Ryan McGrath, a full stack startup alchemist. Design, engineering, marketing, it’s all fair game. At the moment I work with myGengo in Tokyo, Japan; it’s a bit like Mechanical Turk for translation. We’ve got a full fledged API, and a ton of cool projects in the pipeline (we’re also hiring, send me your resume!). 

At night, I tend to play “Batman” and work on and maintain open source projects on my GitHub account. Beyond all of this, I have a few other projects in the pipeline that I’m planning to try and release before the end of the year, mostly surrounding methods of teaching programming and basic algorithmic thinking routines to younger children.

What got you started in software development?

For a variety of personal reasons school wasn’t really for me when I was younger. My brain just tends to pick things up differently, and the computer was a great venue to just experiment endlessly. I’m fairly lucky in that I can utilize both sides of my brain with ease (I was originally planning to be an animator before I got more into development), so being able to create something and push it out to millions of people at once was a powerful and encouraging feeling as a kid. 

It’s just pretty much grown from there. Quite possibly, one of the larger contributing factors was when I joined up with Freewebs (now, as I had the chance to work with some really talented engineers and designers who’ve definitely helped shape my skills in a way I couldn’t have by myself. Being a lone wolf is fun and all, but good teams offer something you’ll never get by yourself.

You’ve got some pretty cool projects.  What are some of your favorites? 

Wii-js is a recent project I built that I’m pretty happy with. I built it because I was visiting some family, and one of my younger siblings seemed to have an active interest in game development. The problem that I saw, though, was that if you’re a kid into videogames you inevitably want to produce content on an actual system – to date, there’s no clear way to do this.

The Wii, though, has a (free) web browser download that’s Opera-based. It’s got pretty great support for most newer web-standards based tech, and provided the right API existed I thought it could be a great way to gets kids introduced to programming. I looked around and found no real decent Wii JavaScript libraries; Nintendo apparently forced Opera to pull down their documentation at one point (why is anyone’s guess), and the only other library I saw worked for the first Wii remote and none of the others. Wii-js works with all four wii remotes at once, and is totally event driven.

Twython is another project I’m pretty happy to have built. It’s a fairly basic Python wrapper for the Twitter API, so while it’s nothing overly fancy, it gets the job done, and the amount of people who I’ve had write me about their success with it is a huge source of enjoyment for me. There’s a companion project to the main library as well that provides a complete OAuth application in Django (twython-django), so developers can hit the ground running really quickly.

How about projects you haven’t built?  What are some projects we should pay attention to?

I really can’t give enough credit to Kenneth Reitz for Requests. Twython uses httplib2, but had I been aware of Requests when I built it I would’ve used it without a second thought. It’s simply the best and cleanest way to handle requests in Python, and fits in all my projects these days. 

Another one I think more people should look at is Zepto.js; I don’t see any rhyme or reason to include jQuery/etc in a mobile web application when this exists. Zepto has much of the same syntax and features as jQuery, but is optimized for the mobile landscape. Maybe when jQuery UI becomes more complete it’ll be a different story, but I’ve yet to hear many positive comments surrounding it. Performance matters on mobile; write it bare-bones (if you know what you’re doing) or give Zepto a shot. Optimize for the end user, they’re the ones stuck using it.

Do you have any advice for folks who are new to Github?  What should they do to get started?

If you’re new to GitHub, throw up some of your work! It’s a great way to get critiques from other developers and maintain projects. You’d be surprised how often other people need what you’ve already built.

In addition to that, if there’s a project that’s on GitHub and you’ve encountered a bug or think you have a solid enhancement, give it a pull request! GitHub’s feature set makes it pretty easy for project owners to see what you’re changing, and it’s great practice for working with other developers on open source projects. More and more companies are starting to use GitHub internally as well, so it’s always a good thing to make sure you understand the basic workflows.