Mike Driscoll: PyDev of the Week: Lance Bragstad

This week we welcome Lance Bragstad (@LanceBragstad) as our PyDev of the Week! Lance is a core developer of the OpenStack project. You can find out more about his passions via his website or his Github profile. Let’s spend some time getting to know Lance!

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

In 2012, I graduated with a degree in Computer Science from North Dakota State University, located in Fargo (yup, like the movie). Since then I’ve become more and more passionate about open-source software. I spend most of my time in the OpenStack ecosystem.

Besides being passionate about open-source software, I’m an avid outdoorsman. My wife and I train for running events together. I also donate time as a volunteer firefighter for our community of about 700 people.

Why did you start using Python?

After I graduated college, I started working at IBM building an OpenStack distribution. Since OpenStack is written in Python, learning Python was a requirement, and that’s how I was introduced to the language. Despite being given the opportunity to use different languages in college, I never really experimented with Python. Using it in a new setting with a new job was an exciting learning experience.

What projects are you working on now?

Currently, I spend the majority of my time working within OpenStack’s authentication and authorization realm. There is a dedicated identity service, called keystone, along with several libraries that orchestrate authorization across OpenStack.

Since there are many ways to approach identity management, it’s interesting to work on the piece that handles all of that. Keystone can be used to manage users with MySQL. It can also be configured to use LDAP or even identity providers that issue SAML assertions or use OpenID Connect.

The other exciting part is that OpenStack services offer such a rich set of APIs to users. Since services consume authorization information from keystone, keystone has to support protecting all of those APIs, which presents an interesting set of problems to solve.

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

One library that comes to mind is pyca/cryptography. We used this library in keystone to implement a form of authenticated encryption, solving a significant scale and operations issue at the time. We looked around at some other options, but pyca/cryptography was a near perfect fit.

Before formally pulling it in as a dependency, I went through and read the source code and tests. The authors did a great job organizing functionality, and the tests were easy to parse. Despite the complexity involved in a topic like cryptography, it was refreshing to go through the code and see things laid out cleanly. Being able to clearly understand the intricacies of the library made solving a tough problem a little easier.

How did you get started with OpenStack?

I started working on OpenStack in January of 2012, shortly after Diablo was released and the community was busy developing Essex. I was wrapping up my undergraduate degree at NDSU, and we were entering our final semester before graduation in May. I was one of four members working on a capstone project. We were asked to find use cases to deploy Infrastructure-as-a-Service, primarily looking for people who would consume a private OpenStack cloud if we built one.

By the mid-term, we had the Diablo release deployed on three physical machines using crowbar, chef, and juju (fun fact: only two of the hosts had virtualizations extensions). We spent finals week putting the finishing touches on a brand new Essex deployment (including some marginally better hardware) shortly after it was released (2012 April 5).

Our deployment was primarily used by faculty and graduate students, fulfilling HPC use cases for research.

Where is OpenStack going in the future?

This is my own opinion, but I see OpenStack continuing to stabilize. I think we, as the OpenStack community, are getting better at working towards common goals, which is a challenge given the breadth of projects under OpenStack governance. I think this is exciting because it provides a consistent look and feel to our users, and improves the experience they have with the software we write.

For years contributors have poured tons of effort into features and functionality, especially within specific domains like networking, storage, or compute infrastructure. I think now we’re getting to the point where continuing to move forward means smoothing out usability between components.

I see a lot of truth in Robert Martin’s view that software design is a constant dynamic tension instead of a utopian endstate that is written once*. If you look, you can see we are making choices to simplify software across OpenStack. In my opinion, the tension is shifting from intense feature development to stability and simplicity for users and maintainers. It’s exciting to see these transitions happen when you’ve been involved with a project for a long time, and what they bring to everyone involved in our community.

* Uncle Bob talks about this extensively in his book Clean Architecture, which is a great read.

Thanks for doing the interview, Lance!

Planet Python

Mike Driscoll: PyDev of the Week: Kushal Das

This week we welcome Kushal Das (@kushaldas) as our PyDev of the Week! Kushal is a core developer of the Python programming language and a co-author of PEP 582. You can learn more about Kushal by checking out his blog or his Github profile. Let’s take a few moments to get to know Kushal better!


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

I am a staff member of Freedom of the Press Foundation. We are a non-profit that protects, defends, and empowers public-interest journalism in the 21st century. We work on encryption tools for journalists and whistleblowers, documentation of attacks on the press, training newsrooms on digital security practices, and advocating for the the public’s right to know.

I am also part of various Free Software projects through out my life. I am a core developer of CPython, and a director of the Python Software Foundation. I am part of the core team of the Tor project. I am a regular contributor to Fedora Project for over a decade now.

I co-ordinate https://dgplug.org along with a large group of friends and fellow contributors in various projects. We spend time together in learning new things and helping out each other on the #dgplug IRC channel on Freenode server. Feel free to visit the channel and say “Hi” to us.

I try to write about the things I learn regularly on my blog.

Why did you start using Python?

I started learning Python at the end of 2005. I wanted to write code for my new Nokia phone and Sirtaj Singh Kang suggested me to start learning Python for the same. While doing so I found that I had to write much less number of lines of code and also it was much easier to understand. I started talking more with the wider Python community over Internet and that hooked me into it more. As Brett Cannon said: “Came for the language, stayed for the community.” is true for many of us.

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

Through out my programming life, I kept learning a new language in every 8 months to a year. Before I started writing Python, I used to write C/Java/PHP based on what I was working on. Around 2009 I started spending time with functional programming, and loved Lisp a lot. I spent around a year to keep writing more Lisp and was trying to figure out how to use the ideas from there in my daily Python programming life. From 2013 I started writing Go and I do have many projects written in Go.

But, lately I am writing more and more of Rust. I really like the community and also the compiler 🙂

Just in case anyone wants to know how much we love Python in the family, our daughter is named “Py” 🙂

What projects are you working on now?

In my day job, I maintain SecureDrop project along with an amazing team of maintainers and community. SecureDrop is an open source whistleblower submission system that media organizations can install to securely accept documents from anonymous sources. It was originally coded by the late Aaron Swartz and is now managed by Freedom of the Press Foundation.

I am also working on various Python projects which will enable us to have a new Desktop client for the journalists on Qubes OS. Qubes Ansible is another project where I am trying to make sure that we can use Ansible to maintain our Qubes systems.

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

I think I use json module from stdlib and requests module as third party almost everywhere. IIRC my first ever Cpython patch was about adding tests for json module.

In the Python world there are many other amazing libraries which I use regularly, most of them are the product of our amazing community.

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

  • People are more important than any code.
  • Be nice to everyone.
  • Communication is the key tool for everything in this modern connection world. We have to do a lot more communication over writing than video/audio calls.

Is there anything else you’d like to say?

I would suggest new programmers to look into more number of upstream projects. We need help in various level in all of the projects, so there is a chance to contribute not only by code, but in many different ways.

Last, but least, I would love to mention my wife Anwesha, who is being from a complete different background, helped me to contribute more to the upstream projects and also herself started helping out projects as required.

Thanks for doing the interview, Kushal!

Planet Python

Mike Driscoll: 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!

Planet Python

Mike Driscoll: PyDev of the Week: Mike Müller

This week we welcome Mike Müller (@pyacademy) as our PyDev of the Week. Mike is the creator of Python Academy and has been teaching Python for over 14 years. Mike has spoken at PyCon for several years and was featured on the Talk Python podcast two years ago. Let’s take a few moments to learn more about Mike!

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

I studied hydrology and water resources and earned a five-year degree from Dresden University of Technology, Germany. After that I went on studying for a MS in the same field at The University of Arizona, AZ, USA. Then I continued my studies of water resources and was awarded a Ph.D. from the University of Cottbus, Germany. I worked in this field in consulting and research for 11 years at a research institute and four years at a consulting office.

In my limited spare time I do some calisthenics, i.e. bodyweight training to keep fit. Pull-ups are fun. 🙂

Why did you start using Python?

I started using Python for my Ph.D. thesis. The objective of the project was to develop a comprehensive water quality model for post-mining lakes. These are large water-filled holes that remain after surface mining and often have acidic or otherwise polluted water. I had to couple multiple numerical models, one each for groundwater, a lake, and geo-hydro-chemistry.

I assessed several programming languages and eventually chose Python. It was in early 1999; version 1.5.2 just had come out. The coupling worked out really well and I finished my Ph.D. so successfully, that I even got an award for it. I open-sourced the code (pitlakq.com), which is used by a few specialists in pit lake modeling around the world. I also teach courses about pit lake modeling with pitlakq once in a while.

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

I started with FORTRAN, as many scientists do. I also use C and C# when required and tried to learn some Haskell. Of course Python is by far my favorite. After all, I’ve been teaching it for more than 14 years.

What projects are you working on now?

I spend most of my time teaching Python, preparing, organizing, and delivering courses, mainly in Germany and other European countries, occasionally on other continents. I still do some scientific programming and work on my pitlakq model. Currently, I am engaged in a research project, developing a new groundwater model, that allows user-specified boundary condition with a plug-in system. Of course with Python. We are still in the early stages.

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

I spend a lot of time in Jupyter Notebooks. Lately, I started using Jupyterlab. I also use other scientific libraries such as NumPy and matplotlib. I enjoy using pylint, pytest, and openpyxl. The latter makes it easy to read and write Excel files.

How did Python Academy come about?

At the time, I had taught already lessons at a university and had given quite a few presentations. I used Python everyday and got more and more proficient in it. Then I saw a request for a Python trainer. I applied for it, got it, developed the course material, and delivered the training. This grew slowly over several years. In the beginning I only taught a few courses each year. The demand for training continuously increased so that I founded Python Academy to meet the demand.

Do you have any advice for others who would like to become trainers for a programming language?

Love what you do and get really good at it. You should literally dream in the programming language you teach. You should also enjoy digging deep into topics just because they are interesting. I think it is very important to be able to set yourself back to square one. You know all this deep magic about a language. But a student who is new to this language may be totally overwhelmed. So start from the beginning and explain even what seems obvious to you. You should not get tired of repeating yourself.

Is there anything else you’d like to say?

I am both surprised and very pleased about the success of the Open Source movement. In fact, my professional live would be totally different without it.
It feels good to contribute to this huge universe, increasing the world knowledge by a tiny bit.

Thanks for doing the interview, Mike!

Planet Python