PyDev of the Week: Jeremy Tuloup

This week we welcome Jeremy Tuloup (@jtpio) as our PyDev of the Week! Jeremy is a core developer of the Jupyter project. You can see Jeremy’s other contributions on his GitHub profile. Jeremy also occasionally posts articles on his website.

Let’s spend some time getting to know Jeremy better!

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

Hi, I am Jeremy, a Technical Director and Open Source Developer at QuantStack.

I hold a Master’s Degree in Computer Science and Engineering from INSA Lyon (France).

Prior to joining QuantStack, I was working in the video game industry. First at Ubisoft Massive in Sweden on casual and AAA games primarily on gameplay and game engine development. Then on mobile games at Wooga in Berlin, focusing on data tools.

As a hobby I really enjoy going for long runs, hiking for several days and weeks in the mountains. It’s a great way to disconnect for a bit and recharge batteries!

Why did you start using Python?

During my first internship I was mostly working with the Java programming language to develop mobile apps for Android.

On the side, I was interested in exploring a couple of different computer science topics. I felt like I needed a language that would let me express myself better. Python looked simple enough at first and very approachable. So I decided to learn it and it turned out to be a great choice!

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

Working a lot on front-end development, I also use TypeScript. The type system greatly helps reasoning about the code and catching errors quickly. Also, this is a great enhancement to JavaScript and makes working on large codebases simpler and more manageable.

What projects are you working on now?

As an open-source developer, my work is mostly focused on Project Jupyter. I help maintain several subprojects such as JupyterLab, Jupyter Notebook and Voila Dashboards.

Recently I have been focused on the Notebook v7 transition which will be based on JupyterLab components. Notebook v7 will be the next major version of the popular Jupyter Notebook. Notebook is one of the main pillars of the Jupyter ecosystem and it’s really exciting to work on this project!

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

This might not be a proper library per se, but I really want to give a shout-out to the Pyodide project. Pyodide can be seen more as a Python distribution than a library. It’s CPython compiled to WebAssembly, including a couple of popular data science packages such as numpy and pandas.

Since it’s compiled to WebAssembly, Pyodide can run in the browser, so you get Python running in the browser! This is what JupyterLite (see below) uses to offer an interactive data science environment running in the browser. While there is still some work to do upstream in CPython and in the packaging story (leveraging the conda forge infrastructure), this is already a great start and lays good foundations for the future.

How did you become a core Jupyter developer?

I have been a long-time user of Jupyter. I started to use Jupyter to track some personal reading habits geared towards online articles and blog posts. I wanted to know how many articles I could process in a given amount of time, and try to find some patterns.

Then I started to use Jupyter more at work for generating reports on how our game was performing while working at Ubisoft Massive. At my previous job we also had a Data Science team using JupyterHub and internal extensions to perform analysis on game performances.

Progressively I started submitting bug fixes to the upstream projects such as JupyterLab and Voila, and progressively learned more about the various projects and their codebases. Over time and after a couple of months of contributions, I started to get commit rights on a couple of projects, making me feel part of the Jupyter community even more.

Later I joined QuantStack and started to work full-time on these open source projects, making much bigger contributions and helping with maintenance and releases.

What parts of Jupyter’s core do you find most interesting and why?

The strength of Jupyter is the coherent set of standards and protocols around it.

I find very interesting the fact that we can innovate very fast while still building around that protocol. This is for example the case with the relatively new JupyterLite project, which runs a full Jupyter distribution in the browser including a Python kernel backed by Pyodide. This project is a great example of reusing existing work and components, and interfacing them in a different way to produce something useful and new.

Thanks for doing the interview, Jeremy!