Mike Driscoll: PyDev of the Week: Mariusz Felisiak

This week we welcome Mariusz Felisiak (@MariuszFelisiak) as our PyDev of the Week! Mariusz is a core developer of the Django web framework and a maintainer of the django-request package. You can follow Mariusz over on Github to see what he’s been up to. Let’s spend some time getting to know Mariusz!

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

Few facts from my life. I’m a software developer with over 11 years of experience in designing and implementing web applications. I graduated in Computer Science in 2010. I defended my PhD thesis related with numerical algorithms in 2018. I’ve done this after few years of coping in the same time with open source activities, daily job and PhD studies. It was a really intense time.

I’m always eager to contribute to open source projects which takes a large part of my free time, or at least it took before my daughter was born 🙂 I have been in love with Python and Django for 10 years. From 2017 I’m a member of the Django Core Team and the Django Software Foundations. In the middle of March I’m starting as a Django Fellow so Django will become my daily work! The funniest thing is that I should have more “free-time” 🙂 I’m a huge fan of open source and communities that stand behind them, that’s why I’m trying to be as involved as possible.

Outside of the tech world I’m a speedway fan who spends free-time on traveling and winter mountaineering.

Why did you start using Python?

I started my professional career from ancient Oracle’s tools e.g. Oracle Forms & Reports. In 2009, we decided to write all new apps in a more modern framework, finally Python and Django were chosen. I had a sketchy knowledge of Python, so I’ve learned Python and Django in the same time 🙂 and I’ve never looked back.

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

I know SQL, PL/SQL, Java, JavaScript, HTML, CSS, C and C++. I probably also know how to write “Hello World” in few other programming languages. C and C++ are my favorite since I used them heavily in my studies and PhD.

What projects are you working on now?

I spend most of my time on daily work and Django itself. I’m also maintaining django-request package. In my daily work I maintain and develop RPR platform that connects healthcare stakeholders with global payer network. In Django, I’m mainly involved in the Django ORM.

What non-Python open source projects do you enjoy using?

I would say that vim is in the first place because I use it for writing code. Probably I’m old fashioned but that’s all I need. I don’t use any IDE 🙂

How did you end up becoming a Django core developer?

I worked for almost 10 years with Oracle databases and in the same time I used Django heavily. It seems that is not a common combination. When in 2015 Django folks posted a request for help in maintaining of the Oracle back-end and related CI infrastructure, I decided that is the best moment to help.

I was really surprised with such a friendly welcome, as a person that nobody knows I started to be responsible for Oracle’s CI infrastructure. Contributing to Django became a part of my daily routine. Checking new tickets, finding bugs, optimizations, small clean-ups, reviewing PRs etc. In February 2017 Django devs invited me to the Core Team which was really unexpected. I’ve never taken into account that I could become part of such a smart collection of people. It wouldn’t be possible without help from the entire Django community and especially from Tim Graham, Shai Berger, and Simon Charette. Thanks!

Is there anything else you’d like to say?

Believe in your dreams and be involved!

Thanks for doing the interview, Mariusz!

Planet Python

Mike Driscoll: PyDev of the Week: Maria McKinley

This week we welcome Maria McKinley (@twiteness) as our PyDev of the Week. Maria is a Senior Software Engineer at the Walt Disney Company and will be a speaker at PyCascades 2019. She is also teaching the Python Certificate Program at the University of Washington Continuing Education. Let’s spend a few moments getting to know her better.

http://www.mariakathryn.net/Blog/Blog

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

I have a BS in Physics from the University of Washington, and taught myself how to code while working in Neuroscience labs at the same University. I got to work on some amazing research projects, while discovering how much I enjoyed writing code. In October 2015 I started working at the Walt Disney Company as a Senior Software Engineer. I also teach Python, both at the University of Washington and within Disney. And I’m a mom. All of that keeps me pretty busy, but I also try to set aside time for reading, exercise, playing boardgames, and art.

Why did you start using Python?

While I was working in the Neuroscience labs, I often did both software development and system administration. A few years ago, I was running a mail server, and trying to automate some administrative task related to spam. It wasn’t a terribly important or frequent one, so every once in a while I would work on automating it with a Bash script. After a few months, someone told me Python was good for sysadmin, so I tried it. In five minutes, I was able to get a script running, doing the task that had alluded me for so long. I was hooked.

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

Python is my favorite, and I’ve ben using it pretty exclusively for the last five years or so. I have used Matlab, Javascript, C, C#, C++, Actionscript, Igor, and PHP enough to have a basic understanding. I wouldn’t say I know them all anymore, but I did at one point to varying degrees. Just like a foreign language, if you don’t use it you lose it. I can still read them all, though, so there’s that. I taught myself basic when I was young, and I still remember having to change a bunch of the goto statements when I wanted to add something in the middle. That was hell. Python is better. 🙂

What projects are you working on now?

At the moment, I’m mostly working on teaching, and preparing a talk for PyCascades. I have dreams of playing around with Blender more, but that is going to have to wait for a couple of months. I have a couple of projects at work, as well. Those are REST APIs for backend SysOps colleagues, mostly.

What non-Python open source projects do you enjoy using?

Linux. Okay, I guess I have to go with a Python one, Blender.

How did you end up teaching Python in a university?

While I was at the university, I figured out that since I was self-taught, I did not know what I did not know. So one of the things I did to start figuring out where the holes were was to started a programming group at the university for secluded-in-a-lab-somewhere software developers to get together to learn from each other. The people teaching Python at the university found out about it, and asked me to post about openings they had. So, I did, and then applied myself.

What do students struggle with the most when learning Python?

I wish there were one thing that students struggle with most that we could just fix. Part of it depends on whether they are new to programming or not. People who are new to programming have an entirely different set of problems from those coming from a different language, and honestly, when taught together they can both get frustrated. I would say one of the biggest issues for beginning programmers is mindset. They get frustrated because they can’t write code the first time or that works, not realizing that that is true for experienced programmers, as well. So much of programming is trial and error, and that is not emphasized enough. If you get frustrated when things don’t go right, you will be frustrated most of the time as a developer, especially in the first few years.

How can the Python community make this better?

I think every class or tutorial for beginners should begin by encouraging students to embrace troubleshooting as a fun challenge or game. It is all about learning from your mistakes, and realizing that making mistakes is actually one of the best ways to learn. Teaching is also a great way to learn, so help your fellow students!

Is there anything else you’d like to say?

Super looking forward to adaptation of Good Omens to a television series. That book has a special place in my heart.

Thanks for doing the interview, Maria!

Planet Python

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!

blog

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