We kicked off our developer chat series with super awesome Kenneth Reitz.  Today, we’re bringing things a bit closer to home with our good friend Daniel Pritchett.  Daniel has been a friend of ours and a fan of Work for Pie from the beginning, and he’s even helped us out with our recent LinkedIn Integration project.

If you’d like to get to know Daniel a bit better, you can find him on Work for Pie right here.  So, without further ado–enjoy!

Who are you and what do you do?

I’m a Memphis-based hacker with soft spots for Python, Ubuntu, and CoffeeScript.  For the past six years or so I’ve been a corporate business intelligence developer/analyst which means I turn large datasets into on-demand dashboards and pre-calculated reports.  When I’m not at the keyboard I’m hanging out at home with my beautiful wife and daughter, our dog, three chickens, four fish, and two hermit crabs.  This long hot Memphis summer has seen me spending the best of my downtime grilling and swimming.

What got you interested in open source? How long have you been at it?

I’ve been using open source tools since I landed at an amazing math- and science-focused residential high school in Alabama.  My roommate Jesse‘s dad was a programmer and so he was a pretty solid influence on me technology wise. We tried out all the Linux flavors we could get our hands on: Debian, ZipSlack, Red Hat, and Mandrake are the ones that come to mind.  Desktop Linux setup was rather involved in those days so I learned a bit about compilers, packages, and the open source programmer’s toolkit.  For a long time I used free stuff like Apache with mod_php to host simple applications I’d download online to do things like index my mp3 collection and serve it over the web.  Jesse and I took a C and C++ class together in our senior year and that pretty well cemented my course for the next ten-plus years.

My open source mojo waned a bit after I took a Fortune 100 job that involved more configuration and drag+drop work than coding, but the past few years have gotten me back on track.  I think I can thank some of the other teams at Memphis’s second Startup Weekend (now 48 Hour Launch) for opening my eyes to a skillset that needed sharpening before I could really prove myself.  Since that weekend in 2009 I’ve gone from nominally knowing how to program but being unable to bang a web app together quickly and cleanly to finally knowing where my towel is.

You participate on Hacker News a bunch. Any tips on how to get started with that?

Hacker News is really a guilty pleasure for me.  There’s a strong communal interest there in financial independence through either VC-backed startups or IT consulting.  There’s also a focus on interesting technology, whether it’s software or hardware.  There’s really no secret to participation, you just spend enough time there to learn what the community is interested in and contribute accordingly.  Most of my HN karma is from comments.

Bottom line here is that it’s a great place to get ideas, a great place to learn how otherwise-quiet people on the cutting edge of technology are doing things, and a good way to distract oneself from real work.  Tread with caution.

What’s the best way to start contributing to open source projects? How did you start?

The easiest way to contribute to open source today has got to be submitting a pull request on GitHub.  With a few clicks and a few more keystrokes you’ll clone someone’s project, change a line or ten, and then send them a gift-wrapped package with a “click yes to accept my changes” button.  Before Github I’d never bothered to submit a change to someone else’s project.  Even now my favorite thing to do is spruce up project documentation – say by adding a well-formatted README and some links to relevant materials – rather than submitting code patches.  Over the past year or so I’ve been getting better and better with the popular Python and Ruby environments so I hope to begin submitting technical updates to others’ projects as well.  All of my own code on GitHub is nominally open sourced since that’s their price of entry for free accounts.  Even if GitHub’s not your thing, there are plenty of similar sites springing up in the “social coding” arena and you owe it to yourself to go out and find one that fits your style.

Any favorite projects you’d like to talk about?

There are so many fabulous open source tools that I use daily it’s hard to know which ones to call out.  At the “can’t live without it but rarely look under the hood” infrastructure level you’ve got sweet Xen-hosted Ubuntu virtual servers, my PuTTY and OpenSSH terminal clients, Apache web serving, git for source control, Pidgin and Chrome and X-Chat and who knows what else.  At the “these tools make development work a joy and they’re top of mind while I”m working” level you’ve got Python with a souped-up IPython interpreter and some great libraries (Flask, Django, pip and virtualenv.  Ruby with a pile of gems (Sinatra, wirble, ori, and looksee make interactive development a lot more comfortable for me).  Generalbash scripting and cron jobs help melt away the repetitive tasks that spring up around any continuous development efforts.

Virtual servers are indispensable for the serious developer.  The sexiest tools out there are often born in a Unix-based environment and remain easiest to use in their natural habitat.  Maybe the good stuff gets ported to windows eventually, but if you want to walk out on the edge of new and fun tools – keeping your mind sharp and your marketability high – you need to go to the source.  Whether it’s an $8/month private cloud server (my weapon of choice thanks to prgmr.com) or a locally-hosted Linux VM running in VirtualBox (free and fabulous) you can load up the best tools for the job in the environment they’re designed and tested to work against.  Even Windows-land work can get a lot of mileage out of OSS and virtualization.  I’ve got cygwin and Ruby and Python on my office Windows 7 box and they get daily use. There are always going to be log files and CSV dumps that need to be mungedand remixed in valuable ways that their creators never imagined.  Check out the “Power of Plain Text” chapter in The Pragmatic Programmer for a better treatment of the power and flexibility of command-line development with open source scripting languages.

Bonus:  Do you think your after-hours work in open source helps you with your day job? How?

I touched on this a good bit in the last question.  On the internet, no one knows you’re a dog, right?  They also don’t need to know that your competitive advantage is a fabulous suite of free, world-class tools that can be connected together like so many Legos to bring unique and beautiful creations into the world. Help yourself to a free world-class operating system running on a free top-flight virtual machine with top shelf community-driven programming languages and see where the ride takes you.  The professional benefit of placing yourself in an open source environment is that you’re free to remove any and all friction from your workflow so that you make more forward progress in a given session than you possibly could have otherwise.  Being able to raise your professional profile through public contributions to software projects doesn’t hurt either.


Thank you Cliff and Brad for giving me the chance to answer a few questions. I’ve enjoyed following Work for Pie this year and I can’t wait to see where you guys go next.