This week we welcome Jaime Fernández del Río as our PyDev of the Week. He is a core developer of NumPy. Let’s spend some time getting to know him a bit better!
Can you tell us a little about yourself (hobbies, education, etc):
I’m originally from Madrid (Spain), where I earned my Mechanical Engineering degree. I worked in Germany for a few months, but eventually moved back to Spain, to Barcelona, where I met my wife Eva, and where our two children, Lucas and Gabriela, were born. For the past four years we have been giving the American dream a try in San Diego, courtesy of my employer for the past 15 years, Hewlett-Packard.
I used to be very active, having played rugby for several years at the club level, and trained and raced for long distance triathlon for a few more. In the crazy department, I was an avid barefoot runner, and used to commute to work on a fixed gear bicycle. These days, between work, family, and my involvement in open source, I can’t seem to find the time or motivation to exercise. But I am still delusional about one day completing a no wetsuit, fixed gear, barefoot Ironman.
Why did you start using Python?
When I joined HP’s Large Format Printing lab, around 2004, I hadn’t written a line of code in 8 years. I was told I should learn a scripting language, my choice of Perl or Python. I of course chose Perl! For a couple of years I was the most unapologetic Perl fundamentalist, sneering with contempt at all the poor souls around me that had wrongly chosen Python.
What made me give Python a chance was, of all its nice features, arbitrary precision integers: with a friend from work we started working through Project Euler’s problems, and big ints make your life much easier there. A hundred problems later, I had turned into the unapologetic Python fundamentalist I have been for almost 10 years now.
What other programming languages do you know and which is your favorite?
The first code I ever read or wrote was ZX Spectrum’s BASIC, probably when I was 8 or 9. In high school and university I took courses or worked on projects using Pascal and Lisp, and I have already mentioned my short affair with Perl. While I could probably still make sense of a simple program in any of those, writing anything that actually works would be a serious challenge.
The first language that really stuck with me was C, after a course I took at a local night school as a teenager. I still have a bunch of late 80’s and early 90’s C and C++ books (Herbert Schildt anyone?) that I taught myself the language with.
Python now predates all the code that I write: when I write C or C++ code, it either comes with Python wrappers, or is directly a Python module using the C API. But while Python is a true pleasure to work with, it doesn’t even come close to the warm fuzzy feeling that comes with writing some clever code in C, preferably involving pointer arithmetic.
What projects are you working on now?
I have been a NumPy core developer for about a year now, and it takes most of the time outside of work that I spend coding. I may do the occasional small contribution to SciPy, Pandas or the like, but NumPy clearly dominates. A lot of it now is reviewing and merging other people’s code, but I have a small list of projects that I would like to find time to work on myself. The one on top is about making better sorting algorithms available.
Which Python libraries are your favorite (core or 3rd party)?
I fell in love with NumPy in the summer of 2012, and we are still living a torrid romance. It has a tremendously clever syntax that lets you express and run, in a few lines of Python code, operations that would require ten times the code in C to get comparable performance. And when dropping down to C is unavoidable, it provides the machinery to wrap your code so that it is seamlessly available from Python. I don’t think I would survive going back to the horror of developing Python-wrapped, number-crunching software without it.
Thanks so much for doing the interview!
The Last 10 PyDevs of the Week