PyDev of the Week: Reinout van Rees

This week we welcome Reinout van Rees (@reinoutvanrees) as our PyDev of the Week! Reinout is the creator / maintainer of zest.releaser. He has a nice website that includes a Python blog that you might want to check out. I would also recommend checking his Github page to see what projects he’s a part of.

Why did you start using Python?

I’m from the Netherlands, which of course gives you a slight advantage when programming Python. By education, I’m a civil engineer. I *did* take all the available programming classes, but most of it was of course traffic engineering, construction calculation and water engineering and so on.

In 2000 I ended up in a EU research project at the end of my study which was basically a mix between civil engineering and internet programming. Just what I needed. I used some Java libraries to do XML processing (which was hip at that time), but couldn’t get something to work in time for an important demo.

So… I tried out Jython. Calling Java code with a Java Python interpreter was way easier and I got the demo finished in time. So *I started using Python by necessity and because I accidentally tripped over it*.

After discovering Python halfway 2000 I started using it more and more during my PhD work. Zope got popular then. I visited many of the early Europython conferences. I started using Plone quite soon. And when I had to find a real job after my PhD I quite by accident ended up at a Plone company, doing real programming for money.

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

Well, Python is by far the language I used most. I used to know Pascal quite well. Turbo Pascal 6 and later Delphi 1. If you call XSLT 1.0 a programming language: I’ve used that for two years. A bit of Bash, of course. A bit of Javascript.

A favourite? I haven’t programmed it in ages and I never did much with it and it is terribly unreadable and I only wrote one useful program with it, but…. APL! “A Programming Language”. Keywords in that language are dots, slashes, greek letters and weird symbols. If I remember correctly, something like “+/A” would return the sum of vector A. I probably have the syntax wrong. But I sure had some fun with that 3.5″ floppy disk with a demo copy of IBM APL 2.0!

What projects are you working on now?

Since 2010 I work for…. a civil engineering firm (2/3 of the company are water experts) that does a lot of Python/Django programming (1/3 of the company are programmers). That’s an impossible perfect combination for me as a civil engineer who became a programmer. Especially as it is only 30 minutes cycling from my home. Pure bliss.

Well, work? At the moment mostly behind-the-scenes work. Setting up a new Jenkins instance, figuring out how we should use Docker, writing automatic monitoring tools, zabbix integration, mentoring new programmers, some sysadmin stuff, updating buildout recipes for python 3, re-building our central login site, etc.

So everything from hard thinking on a docker strategy to simply having fun with a quick monitoring script. And keeping track of what happens with Python packaging and Django.

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

Let me mention one of my own first. zest.releaser. I started it already in 2008. And I still use it every time I make a release of some Python package: it updates the version number, records the release date in the changelog, tags it and optionally uploads it to pypi. All those things I’m too lazy to do by hand. And many others like and use it, too. That’s a fun open source project to maintain, especially as my brother is the co-maintainer.

A nice core Python library? I always appreciate “tempfile“. Always handy to create a tempfile or a temporary directory in a safe way. I use it quite a lot. It simply does what you need it to do.

Is there anything else you’d like to say?

Well, I didn’t talk about my hobbies yet. I skipped that in the first question because I was too busy talking about Python 🙂

Hobbies? Reading history books is nice. What I also like is my model railway at home. I’ve taken over a small part of our attic and I’m modeling a single track German railroad situated in 1970 there. That’s something different than programming (though I do have a few Arduinos in use here and there). Landscaping, electricity, painting, everything. Here’s a photo from a 20cm wide and 2m long module spanning the staircase to give you an idea. Google for “Eifelburgenbahn” if you want to see some videos totally unrelated to Python!


Thanks for doing the interview!