This week we welcome Nick Coghlan (@ncoghlan_dev) as our PyDev of the Week. Nick is a core developer of the Python language. He also write a pretty intense Python blog. Let’s take some time to hear what he has to say.
Can you tell us a little about yourself (hobbies, education, etc):
By training, I’m a computer systems engineer, and my first full time job was writing digital signal processing software for the Australian Defence Force’s national high frequency radio network. I now work for Red Hat, aiming to make Fedora a better platform for building cutting edge open source applications (especially in Python!).
My main current pastimes involve helping to improve the sustainability of the Python Software Foundation and CPython core development. I’m actually working to scale back the number of different Python community activities I’m involved with in order to regain time for entirely “just for fun” activities, like playing cricket.
Why did you start using Python?
My original test software for the DSP code in my first job was a really simplistic C program that was letting far too many bugs through to the next level of integration testing. Python’s unittest module and the SWIG wrapper generator gave me everything I needed to write a new, far more sophisticated, test harness that did a much better job of ensuring the DSP software was working as intended.
What other programming languages do you know and which is your favorite?
There’s a much longer list of languages I’ve learned well enough to read, and I’m currently working on a blog post offering suggestions on other programming languages folks may want to consider studying as aids in understanding various aspects of the way Python works.
What projects are you working on now?
The main project I’m working on now is Fedora’s Software Component Pipeline, which aims to make it easier both to develop Fedora itself, and to develop other applications that use Fedora as the base operating system. The specific piece I’m currently building is a project called RepoFunnel, which is aimed at making it easier to mix and match components from different software repositories using the Pulp content management system.
As a member of the Fedora Environments & Stacks working group, I’m also helping to consider ways in which we might redesign Fedora’s package review process to make it more incremental with multiple stages of review, rather than a single all-or-nothing review gate.
Which Python libraries are your favorite (core or 3rd party)?
As a backend focused developer, Tom Christie’s Django REST Framework is one I love for the sheer amount of knowledge regarding designing REST APIs that it captures, as well as the incredibly helpful browsable HTML version of the API it provides by default.
In the standard library, I love the fact that we ship a disassembler by default in the dis module, as I really enjoy making it easier for folks to poke around in CPython’s internals.
Is there anything else you’d like to say?
One of the best pieces of advice I ever received is “Health, relationships, career, community, in that order”, and as far as a personal priority list goes, I think it’s a pretty good one.
Python has a vibrant, resilient, global ecosystem, so we don’t want anyone to sacrifice their own interests for the benefit of the community. Unfortunately, when we’re passionate and excited about community projects, it’s really easy to overcommit ourselves, and nobody except us can see the whole picture for where our time and energy is going. If we’re feeling burned out by our community involvement, the best thing we can do is to step back and say “I can’t sustainably do this any more”. And if we suspect someone we know is burning out? We can explicitly remind them that it’s always OK to stop volunteering time and energy we don’t have to spare.
Thanks so much!
The Last 10 PyDevs of the Week