This week we welcome Terry Peppers (@club_is_open) as our PyDev of the Week. Terry has been a very active member of the Testing in Python group and is quite active as an organizer for PyCon USA. You can get a feel for what projects interest him over on Github. Let’s take a few moments to get to know Terry better!
Can you tell us a little about yourself (hobbies, education, etc):
I am the Vice President of Engineering for Leapfrog Online based in Evanston, IL.
I went to Loyola University, Chicago and have a degree in Psychology, English and Sociology.
I like to run, read, cook and spend time with my family. My current guilty pleasure is the first person shooter Destiny by Bungie. I play on the PS4 and have been playing for a really long time. My best Destiny/Python crossover was playing with Python core committer, Brett Cannon!
Why did you start using Python?
I’m not a classically trained computer scientist. From the age of 11, though, I had been a bit of a dabbler in a bunch of different programming languages; I have had a lot of phases of learning/struggling Bash, Perl, PHP and even Ruby. A lot of the time I felt like those languages were programming me and I wasn’t programming with them, which was frustrating.
One of my first real software engineering tasks was doing browser automation for testing, which is really fancy way of doing screen scraping. I had been using a library in Ruby and was really struggling with its performance. Our Senior Software Engineer on staff at the time, Jason Pellerin, looked at my code and said, “I bet it would be easier if you did this in Python.” And while the learning curve was similar to other languages I knew, I finally felt like I was fully leveraging a language and its capabilities. Python really just fit my brain.
What other programming languages do you know and which is your favorite?
I’ve spent a lot of time with JavaScript over the last 5 years and have come to appreciate it as a language. It’s powerful. It’s quirky. It’s everywhere. And it’s a little misunderstood. I think JavaScript gets kind of an uneven rap because the mass proliferation of frameworks has forced it into the programming spotlight.
Go is the other language that I’ve been dabbling in, recently. On of my mentors, Michael Manley, originally described it as the alternate history of C++. I like that you can be productive with it right away. I like that it has some syntactical Pythonic similarities. And, I think that for systems level programing challenges it’s a really strong choice.
What projects are you working on now?
The deep dark secret is that I’ve taken the management pill these days, so all of my projects are team based for me right now. My team has done a great job working on our apprenticeship program. We’ve made it a point to focus our energies on an intensive 5 week plan for our Associate Software Engineers so that they feel welcomed, productive and knowledgeable in very short order.
Which Python libraries are your favorite (core or 3rd party)?
I don’t have a favorite, per se, but I have one that I love to hate: re. I was actually writing some code the other day where I needed ‘re’ and I got stuck on the whole “… wait, is this re.match or re.search …” Someday, I’ll submit a patch to the docs for a slightly more explicit answer.
Where do you see Python going as a programming language?
I think Python will continue to grow as an academic language to teach individuals programming. I think Python will continue to be an incredibly powerful tool for data science. I think Python will continue to be a great tool for web and software development.
I used to think more combatively about the future of the language that I love. I used to think that it was under threat or under siege from other languages. In retrospect, that was a very sophomoric way of looking at the ecosystem. The reality is that the pragmatic notion of “use the right tool for the right job” rewards languages and frameworks that are successful at solving problems and being easy to use. Python, I think, will always be able to help people solve problems and be very approachable as a language.
What is your take on the current market for Python programmers?
I used to describe the market for Python programmers as narrow but deep; this is a fancy way for saying that while there weren’t a ton of Python programmers on the market, the ones that you did find had deep expertise with the language itself. Over the last 5 years, I think the general market for programmers has changed and it’s caused me to revise my original “narrow but deep” categorization of the market.
Obviously, the market is strong right now for all technology related positions. Software is really eating the world as Marc Andreessen said it would. And because the market is strong, there’s huge demand for technical talent. Programming bootcamps teach as much Python as they do Ruby or JavaScript and really “right tool for the right job” means that we’re ensconced in more of a polyglot ecosystem anyway. So the real challenge is identifying, cultivating and training the talent you do find in ways that reward the individual, the team and your organizations.
If you’re committed to developing talent and you’re willing to challenge how your organization hires and onboards developers, I think it’s this kind of mindset that has altered my original concept of “narrow but deep” to more of “wider” view. If you can teach people who are willing to learn, you can develop even more Python developers that can develop other Python developers.
Is there anything else you’d like to say?
Embrace diversity. Monocultures are a dangerous thing. Diversity is critical to the ongoing success of any community, group or organization. The more you embrace the concepts around diversity the better off your community, group and organization are going to be in.
Thanks for doing the interview!