PyDev of the Week: Brian Curtin

This week, we have Brian Curtin (@brian_curtin) as our PyDev of the Week. He is a core developer of the Python language and the primary editor of the Python Software Foundation’s blog. Let’s spend some time getting to know more about Brian.

briancurtin

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

I’m from Chicago, then went off to college outside of Pittsburgh to study computer science, came back to Chicago, and recently moved to San Antonio. Baseball has been a pretty big part of my life as a fan, player, and umpire. I’ve been to ton of games, played up through college, and have been umpiring since I was 11, having called college games for the last 6 years. When I’m not writing code or doing baseball stuff, I train as a competitive weightlifter. 

Why did you start using Python?

Funny story: My father was a UNIX hacker at Bell Labs who then moved into finance, and he got into Python toward the end of the 90s. He would occasionally get requests from book publishers to do technical reviews and received an advanced copy of Alan Gauld’s “Learn to Program Using Python” in 1998 or 1999. I did something requiring a punishment, so I had to read the book, run some of the code on dad’s laptop, and write a page or two report on it that he sent back to the publisher along with his writeup. They gave him $200 for that, which he ended up giving me, and I bought an awesome baseball bat. That book was my first exposure to any programming, so my first exposure to Python was technically a punishment. What a great punishment.

As for why I started using it for real was in 2004, Python was used for a section of a college course on different types of programming languages alongside Prolog and Java, so I got to learn some basics. The following summer I had an internship that involved converting a bunch of Excel files into a database with a web front end, so I got to know pywin32’s win32com package and did a bunch of other text processing.

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

Most of my college courses were taught in C++, and then my first job out school was a big C++ environment. That same job had some C# GUI tools that I got to work on, which I really enjoyed.

Through working on CPython I’ve written a bunch of C, which would be my favorite to work with behind Python, and most of that C work I’ve done was on Windows. I still get weird urges to pull out my Windows laptop and fire up Visual Studio to hack on Win32 things, like a small project I made a while ago to enable the interpreter to write its crash dumps for postmortem debugging.

What projects are you working on now?

Too many, but I’m mainly working on two things.

At Rackspace I’m working with a couple of people to build out the OpenStack SDK, a new project to improve the experience for contributors, vendors, and consumers of OpenStack clouds. Right now that landscape is a bit fragmented, and we’re hoping a fresh take will allow us to build something that’s easier for everyone to build awesome stuff. It’s all Python and 100% open at https://github.com/stackforge/python-openstacksdk, and my first time doing a project for my day job in collaboration with other companies.

The other is a project I’ve wanted to sit down and work on for a long time, but I’ve started and stopped many times, and I’m finally making time for it. Major League Baseball’s Advanced Media group makes a ton of game data available, such as speeds and coordinates of every pitch thrown since 2008. I wrote all of the scraper and parser stuff, threw it all into a database, and now I’m just toying with the data to see what I can find and then build some tools around it at https://github.com/briancurtin/gd. As an umpire, I’m really interested in seeing what I can pull out of all of this data.

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

I’ve made most of my living within the standard library. itertools or probably anything with Raymond Hettinger’s name on it are my favorites. Things like configparser, argparse, and unittest are three things a lot of people seem to look to third parties for, but they’ve all worked just fine for me. One with a permanent spot in my heart is zipfile. I was using it for something and realized it didn’t support context managers, so that was my first non-documentation contribution to the standard library. I don’t think I’ve used it since then, though.

One third-party library I’ve been getting a lot of use out of lately has been sqlalchemy, for my baseball project. It just makes things so much easier and has been great to learn — everything I’ve looked into has been really well documented, which is pretty refreshing.

Thanks for joining us!

Previous PyDevs of the Week