PyDev of the Week: Timothée Mazzucotelli

This week, we welcome Timothée Mazzucotelli (@pawamoy) as our PyDev of the Week! Timothée is the author of mkdocstrings.

You can see what else Timothée has been up to by visiting Timothée’s  showcase.

Let’s spend a few moments getting to know Timothée better!

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

My name is Timothée Mazzucoteli, @pawamoy on the web.

I love horror movies, horror stories, horror/survival games, really anything that relates to horrific stuff! I listen to “Nintendo Chill” as well as deathcore playlists. enjoy simple moments in life, like spending time with my significant other, walking around with my cats, and celebrating friendship around beers with my friends.

I discovered (X)HTML and CSS when I was around 15 years old, learning on a website called “Site du Zéro”. Then in high school I had the best math teacher ever, and thanks to him I went to learn Mathematics and Computer Science in college. Mathematics were *super hard*, but I got to enjoy Computer Science more and more, so for the second and third year I chose Comp.Sci. (you had to choose between the two). I discovered GNU/Linux (Ubuntu), OCaml, C, and many interesting parts of Computer Science, but mostly fell in love with the shell (Bash).

Why did you start using Python?

At the end of the third year in college, I asked a teacher if he had an apprenticeship for me (for the next two years), and he did. That’s how I started working with Python and Django, developing a website for a medical project called GenIDA. I worked on this project for four years. I was the only “IT” person, had no mentor, and a full-stack role: it was hard. But I learned a lot, and started publishing my first open source projects (Django apps) on GitHub.

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

My favorite language is Python, but I also love shell scripting. It doesn’t look like it, but you can do *a lot* with it. It’s my first love, and I miss it (full on Python these days). I was able to write libraries in sh/Bash/Zsh to add stack traces, profilers and debuggers to my toolbelt! These projects are on hold because I need to implement a `ZSH_XTRACE_FD` feature in Zsh (similar to the Bash equivalent) to improve debugging/profiling/coverage abilities, but Zsh uses a mailing list and I’m having a hard time feeling comfortable with this workflow :sweat_smile:

What projects are you working on now?

I’m mostly working within the MkDocs ecosystem, writing/maintaining plugins and Markdown extensions (mkdocstrings, Griffe, markdown-exec, etc.). When I need to refill my batteries I get some fun working on my own developer tools (git-changelog, duty, my project template copier-pdm), testing out new tools, or writing small posts on my website/blog.

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

That has to be Jinja2 and Loguru. Loguru is so incredibly easy to use, and gives a beautiful output. Jinja2 is the base of many of my projects and ideas, I couldn’t do without it. I’m also super thankful for the `ast` module in the standard library. And HTTPX when I need to send network requests!

How did the mkdocstrings project come about?

Once upon a time, I wanted Sphinx to add entries in the table of contents for each auto-documented class, function, attribute, etc. It wasn’t possible, maintainers wouldn’t have the capacity to implement the feature before long, and I couldn’t wrap my head around Sphinx’ code base. At the same time, FastAPI got super popular, and when I saw its documentation pages, as well as Pydantic’s, I thought: “This is pretty, I want that.” It was not the first time I had seen MkDocs and the amazing Material for MkDocs theme, but this time it clicked. I found mkautodoc, by @tomchristie, but Tom didn’t have a lot of time to spent on it either, reviewing PRs or implementing features, so I decided I would create my own “autodoc” plugin for MkDocs.

What challenges do you face as an author of a popular open-source package?

Maintaining/developing popular open-source projects is a tremendous amount of work, and often I miss out on other things I could do in life. I enjoy open source a lot, but sometimes it manifests more as an obsession rather than a passion. It can easily become unhealthy. It’s hard to find the balance sometimes.

But the biggest challenge is happening right now: I quit my job to work on open-source full-time. I couldn’t stand working for others anymore, on projects that don’t really interest me. So I’m taking a bet that the community will be here for me and my projects, funding me so that I can actually get the time to work on these projects (and also get a decent life).

Is there anything else you’d like to say?

The Python ecosystem and community are amazing, and I’m very thankful to be part of it 🙂

Thanks so much for doing the interview, Timothée!