PyDev of the Week: Doug Hellman

This week we have Doug Hellman (@doughellman) as our PyDev of the Week.  Doug is the author of the Python Module of the Week series as well as the book, The Python Library by Example. Let’s find out what he has to say!

Can you tell us a little about yourself (hobbies, education, etc):

When I’m not programming, I like to read and travel. I’ve started gaining more of an appreciation for art as a result of seeing some up close on my travels. I haven’t been writing as much as I used to, but I still enjoy it when I’m able.

Why did you start using Python?

I picked up Python as a tool development language while working at a GIS company in the late 1990s. I was responsible for managing the port of our product, written in C, on AIX and Digital Unix. I did a lot of shell scripting, but was introduced to Python as another language for creating build tools and other things that weren’t part of the product but were needed to package and ship it. Ironically, that product does not include Python scripting support.

I introduced Python for the same purpose at my next job, and it really took off when I used Tkinter to create a GUI for controlling a robotic CD burner that we used in-house to distribute the software. At my next job, I used Zope to build a web front end to an existing publishing system so the same articles could be used on the web and in the multi-media distribution we prepared. I’ve been writing mostly in Python ever since that time. As the scale and complexity of the projects has increased, Python was always able to keep up with our needs.

What other programming languages do you know and which is your favorite?

I used to be a big fan of C, but I haven’t done much with it in a long time. I use bash quite a bit for automation, mixing bash and Python as needed. I’ve done a little with JavaScript, but I wouldn’t really call myself knowledgeable there — I tend to stay on the backend of web development systems.

What projects are you working on now?

I spend most of my time working on OpenStack these days. When I joined Dreamhost a couple of years ago it was specifically to help them get involved in OpenStack development. I’m at HP now, doing basically the same thing. I was just elected to my third 6-month term as the project lead for the Oslo program inside of OpenStack, where we work with the application developers to identify common code that can be spun out into libraries to make sharing easier. We manage libraries to standardize configuration, database access, messaging, and many other aspects of building large-scale distributed applications. It can be challenging to create APIs that meet the needs of all of the other projects, but when we get it right it’s very rewarding.

I presented a history and status update for Oslo at the most recent OpenStack conference: http://doughellmann.com/2014/11/11/taking-the-long-view-how-the-oslo-program-reduces-technical-debt.html

When I’m not working on OpenStack, I still spend some time on virtualenvwrapper, though it’s mostly maintenance at this point. I also maintain a few Sphinx plug-ins that I’ve created over the years, and I’ve contributed to Tinkerer, a blogging engine built with Sphinx.

Last year I started building a tracing post-execution debugger called Smiley (https://github.com/dhellmann/smiley). I created the project as an experiment to see what I could do with the idea of recording program state during execution and  providing tools to study it afterward. The current version proves out the basic concept, and my next step is to rework how I handle the amount of data it is collecting to improve performance.

Which Python libraries are your favorite (core or 3rd party)?

My favorites tend to change based on the project I’m working on. I get a lot of mileage from itertools in the standard library, but there are a few other workhorses like multiprocessing and sqlite3 that I rely on heavily. I don’t do a lot of web development, but when I do I use either Pecan or Flask. I’ve been re-learning SQLAlchemy and Alembic lately and finding them to be easy to pick back up after being focused on other areas for a few years.

Is there anything else you’d like to say?

Thanks for inviting me to participate in this interview series! I’ve been following the other posts, and it’s always interesting to learn more about the members of our community.

Thank you!

Previous PyDevs of the Week