PyDev of the Week: Benoît Bovy

This week we welcome Benoît Bovy (@benbovy) as our PyDev of the Week! Benoît is a contributor to Xarray-related libraries like Xpublish and Xoak. You can see what else he is working on over on Github.

Let’s spend some time getting to know Benoît better!

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

I’m an independent software developer living in Belgium. I studied geography & geomatics, then with the help of computational models I spent a few years and a PhD trying to better understand how the shape of the Earth surface evolves over geological time scales. I’ve always been passionate about natural (Earth) science and programming, so it felt pretty obvious to me that I was going to follow this path. However, I’ve never really felt in my element as a researcher in academia. Those last eight years have thus been a slow transition from doing research to building software. It was also during that time that I started contributing to open-source software, mostly within the Python scientific ecosystem. I guess that I can call myself a “research software engineer” now. It’s very exciting to see this new community growing rapidly. I’m still working with research institutes and universities (as a freelance), but not only. Besides computers, science and landscapes, I’m also passionate about music. I’m playing in a band called Roscoe. We played a good number of gigs in Belgium, France, the Netherlands, Canada… and we are now recording our 3rd album. I’m very excited about that!

Why did you start using Python?

I remember well the first script that I wrote in Python, it was almost 15 years ago! I wanted to automate some complex workflows run in a GIS software (Idrisi), which was possible through a few programming languages using Microsoft’s COM technology. Among the examples shown in the documentation, I picked the one written in Python because it looked the easiest to me. At that time Python wasn’t very widespread, and Numpy was just at its beginning. My thesis advisor didn’t take me very seriously when I showed him my script. Looking at how Python and its broader ecosystem have evolved since then, I’m glad that I picked that Python example in the first place.

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

I discovered the joy of programming using BASIC when I was still a spotty teenager. That was fun! During my graduate-level studies, I took some programming courses introducing Pascal, Java and C, but I didn’t really spend much more time digging those languages. I developed some websites using languages like PHP and Javascript, but somehow the Javascript ecosystem still scares me.

I’ve also spent quite some time reading Fortran code for my work. I actually find modern Fortran very nice for scientific computing and pleasant to read, although it still suffers from the absence of a consistent ecosystem/community around it (some people seem to work hard to fix that: https:// fortran-lang.org/). Recently I started using C++ for more serious work, and although it may be painful, I’m enjoying it! I was motivated by the Xtensor library, which is great for people that are already familiar with Numpy. Julia is probably next on my list.

What projects are you working on now?

I maintain a set of software tools for landscape evolution modelling. Those tools range from core libraries of domain-specific numerical algorithms to high-level, interactive visualization components based on Jupyter widgets. I’m also working on Xarray-simlab, through which I’d like to show all the potential of libraries like Xarray, Dask, Zarr, etc. for developing and exploring computational models within a powerful, interactive and scalable environment. I think that this potential has not been fully exploited yet. I’m also contributing to other, Xarray-related libraries like Xpublish and Xoak. I haven’t made substantial contributions to Xarray itself since quite a while, but I’m going to do contribute again in the forthcoming months (there are some exciting challenges in Xarray’s roadmap).

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

I don’t really have one favorite library. I’d say that the whole Python scientific / PyData ecosystem is my favorite library. It is amazing to see how all the pieces of this ecosystem integrate with each other and the huge capabilities that they provide altogether. For almost any problem I’m pretty sure that I could find one or more existing packages that would save me a lot of time. On the flip side, I’m increasingly worried about how hard it might be for new users to find their way around within this rich, complex and sometimes messy ecosystem. When we’ve been in it for a long time, it may be difficult for us to realize it. Fortunately, there is a helpful community and great initiatives like Pangeo that are trying to make sense of all those connected tools.

What motivates you to work in open source?

Many things! There is a lot of skilled people working in open source from who we can learn. I also realized that reading mature codebases written by many people is incredibly instructive for writing better software. This is simply not possible to get that with closed source (unless maybe for those who are working within the biggest software companies, which nowadays contribute to open source anyway). What also motivates me is that the contributions we make (even the smallest ones) may eventually have a great impact. That said, I haven’t really experienced the overwhelming side of working in open source yet, like the maintainers of very popular projects may feel it.

Is there anything else you’d like to say?

Thank you for this interview, Mike! I enjoyed answering your questions!

Thanks for doing the interview, Benoît!