PyDev of the Week: Steve Dower

This week we welcome Steve Dower (@zooba) as our PyDev of the Week! Steve is a core developer of the Python language itself where he produces the Windows builds and installers. He also works for Microsoft. He has a blog that isn’t updated that often but it is interesting nonetheless. You can see some of the things he is working on in the open source world via Github. Let’s take a few moments to get to know Steve better!

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

I studied mechatronics and software engineering and computer science in Australia, then moved out to the US in 2012 to take a job at Microsoft. Since then I’ve been one of the most annoying people at Microsoft, telling people they should be using Python and trying to give them all the excuses they need, and it’s been really exciting to start seeing that pay off. We now have thousands of people actively using Python here, teams are defaulting to building Python libraries for their tools (sometimes even before they write the .NET versions!), we have a vibrant community with meetups and internal conferences, and everyone seems to be talking about Python.

Why did you start using Python?

One of my summer jobs while I was studying was for a startup designing medical diagnosis devices. They had this amazing custom MATLAB-like app for controlling their prototype, and all its scripting was in Python. So I spent a summer driving pumps and motors and reading sensors using Python, then went back to university and never really looked back!

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

I’ve been developing for a long time now (I won’t say how long, but I will say I already knew assembly language before starting university), so I’ve encountered a lot of languages. I actually really enjoy C++, particularly template metaprogramming, because like Python it lets the library developer do a lot of magic that the user never has to know about. One of my favourite examples of this is pybind11 – the amount of code that is generated for such simple declarations is amazing. Similarly, the Enum class added in Python 3.4 has some very impressive magic behind it that you don’t have to know or care about when simply using it.

What projects are you working on now?

I wish I could talk more about them, but release and disclosure dates are all over the place. These days, I’m working with a lot of teams at Microsoft to help them improve their Python prowess, whether that’s by doing design and code reviews for them, contributing or bootstrapping projects, or finding the “gaps” in our shared tools (continuous integration, for example) and just making sure they’re filled. Our plan is to make sure you can always find them all from https://aka.ms/python

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

I’m a library developer at heart, so anything that lets me write more powerful libraries is off to a good start. I’m a huge fan of Cython and pybind11, and while I don’t get to use them often enough I also really like the BeeWare tools, particularly Briefcase for packaging apps into platform-specific installers. I can also never lose my love for requests, without which there’s no way I’d ever try and write against any REST API.

Do you have any favorite code snippets that you have submitted or seen in the source?

We do deep code scanning for Intellectual Property reasons whenever we use or distribute open source software, mostly just to make sure that all the code that is claimed to be covered by the license is actually covered by that license. One of the most common problems detected here is code that has been copied from StackOverflow (while it was still Creative Commons licensed) into a library and relicensed apparently without permission (pro tip: if you get permission, add a comment stating that). Every time Python goes through one of these scans, we find code snippets that are allegedly taken from StackOverflow, but on further investigation the code on StackOverflow has actually been taken from Python, and often was written a decade or more earlier! Those are my favourite, because it reminds people of just how long Python has been around, and it really gives a strong sense of awe whenever I contribute to such a powerful and influential project.

How did you become a core developer for the Python language?

Mostly good timing, to be honest. I was interested in helping out with Windows support and the installer in particular at exactly the same time that the primary Windows expert was looking to retire. So when I started approaching core developers I already knew at PyCon with a plan to modernise and improve the installer, they were quite happy to let me do that and evaluate it as a contribution. I also moved the Windows build to a newer and more stable C Runtime, which was one of the biggest issues to that point, and was able to use my influence around Microsoft to make sure the right tools and compilers were available for Python, which let us significantly simplify the setup instructions in the developer guide.

Is there anything else you’d like to say?

It’s such a privilege to be a part of the Python community, and to be in a place where I can help that grow. I don’t think there is any other technical community quite like it in the world. I’d also like to publicly thank Guido for everything he’s contributed to the language throughout his time as BDFL, and wish him the best possible retirement.

Thanks for doing the interview, Steve!