PyDev of the Week: Moshe Zadka

This week we welcome Moshe Zadka (@moshezadka) as our PyDev of the Week! Moshe is a core developer of the Twisted project and he is also a co-author of Expert Twisted from Apress Publishing. He is also the author of a self-published book, from python import better. You can find additional information about Moshe here where he includes links to his Github, Instagram and blog.

Let’s take a few moments to hear what he was to say.

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

I am originally from Israel, and I currently live in the Bay area with my wife and my two kids (5yo and 3yo). Until I got married and life got too busy, I used to perform as Dr. Scott in a Rocky Horror Picture Show shadowcast. I intend to get back into performance once the kids are older!

I started my life as a mathematician, published a paper (“Orbifolds as Diffeologies”), but then got into the software development world, and ended up as a DevOps Engineer.

Why did you start using Python?

In 1998 I wanted a language with good XML support. Python had great XML parsing libraries, and all other languages with good XML parsing libraries were ones I could not imagine using. I ended up really enjoying the aesthetics of the language, and the conceptual simplicity.

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

“Know” is such a nebulous term. Let’s limit it to ones I’ve used professionally — Java, C, C++, JavaScript, Perl and PHP. Python is definitely my favorite, but if I had to choose among the others — I guess it would be C. C is a bad language, but it somehow is just good enough to hold the weight of the world on its shoulders.

What projects are you working on now?

Twisted will always be a project I’m involved with, in some capacity, I suspect. I’ve definitely contributed patches and reviews recently. NColony is my Twisted-based process supervisor, which is a weird hobby of mine (and has been for a while) — it is a 3rd system, after writing a couple of Twisted-based process supervisors which were not open source. Middlefield is my platform for custom developer tools, which I built because I love building developer tools!

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

attrs is the one Python library I could not live without. After getting used to it, it is impossible to imagine writing a class with way too much boilerplate again. I also love automat — it is “Finite state machines for Python, done right!”

What top three things have you learned contributing to open source projects like Twisted?

  • People come and go (and that’s ok)
  • The mistakes you made ten years ago will come back to haunt you.
  • It is important to be humble and friendly online.

What is your motivation for working in open source?

Different things have different motivations. I think I started contributing to core Python because it seemed all the cool people were doing it, and I really wanted to be cool. I started contributing to Twisted because a bunch of my friends were doing something awesome, and it was fun doing it with them. I started NColony because I didn’t like any of the alternatives, and I needed a process supervisor.

How did you get involved with writing a book on Twisted?

I wish I could say this was part of a big master plan, but the truth is that APress wanted a book about Twisted, and the editor realized he would have better luck asking people for a handful of chapters and stitching them into a book and asked me if I had an idea for a chapter to contribute. I ended up picking another chapter from another co-author when he realized he signed up for too many, and found myself an official co-author on the book!

What have you learned from that experience?

Working with publishers is interesting. I’ve had mixed experiences with all of them, but at least with APress I really felt like I had a supportive environment. I also learned, viscerally, something I only knew cerebrally before (by way of reading Cory Doctorow’s blog) — that the only real way to take notes for yourself for a future book is to write a blog for others. This way the notes are actually readable when you need them!

Is there anything else you’d like to say?

I will use this platform for raising an issue which I think we, as a global society, are failing at — doing open source sustainably. We are relying on a small number of overworked volunteers, or sometimes on one or two companies paying a small number of people, for our most critical infrastructure. I don’t know a solution, but I do know it’s a problem, and I think we need to acknowledge it publicly and have an open conversation about the solutions.

Thanks for doing the interview, Moshe!