PyDev of the Week: Mike Pirnat

This week we welcome Mike Pirnat (@mpirnat) as our PyDev of the Week! Mike is an organizer for PyOhio and an active member of the Python community. You can catch up with Mike on his website. Let’s spend some time getting to know Mike!

Mike Pirnat

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

Sure! I grew up in a small mountain town in southwest Colorado and moved to Cleveland in the mid-90s to study computer engineering at Case Western Reserve University. A major highlight of my college days was having a radio show for a couple of years. I met my wife there too, so that turned out pretty well. I also enjoyed being part of the team that launched the original online version of the Encyclopedia of Cleveland History. After graduation, I worked for IBM for a little bit, then spent 19 years in the ecard group at American Greetings—mostly in engineering and a few years on the management side—and I’m now happy to be a backend engineer at Zapier. Along the way I discovered that public speaking is pretty fun, wrote a small book, and became a conference organizer.

These days I enjoy a little bit of video gaming, a lot of Dungeons & Dragons, doing day hikes in Cleveland’s lovely metroparks, neglecting my photography processing backlog, and aggravating and embarrassing my 12 year old daughter. And it’s a total “white guy in my early 40s” cliché, but my best hobby decision in recent years was getting myself a guitar and starting to play. I’m not great, but I love it, and it’s definitely paid huge dividends for my mental health in these turbulent times. Whatever kind of instrument you’re interested in, I can guarantee you’re not too old to start!

Why did you start using Python?

I took a web dev job with American Greetings in 2000 and had to learn Python in order to work on their ecard sites. I was really into Perl at the time and spent probably six months or a year being grumpy about how Python didn’t feel like it was measuring up to what I was used to doing with ease in Perl. Then at some point I tried to read some of my old Perl code and my attitude changed quickly. It was a weird time to be into Python, though, as it wasn’t in demand from employers and I worried that I was hurting my career by focusing on it. I’m glad to see that’s changed quite a bit!

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

I’ve done a bunch of plain Javascript (of the late 90s-to-mid-2010s variety), and enough HTML and CSS to be dangerous. I’m okay at SQL. I read Java pretty proficiently but haven’t spent any serious time writing in it and frankly don’t think I’d enjoy it. I was into PHP for a year or two around the same time as my life as Perl guy. For a while I was doing some C and C++. Way back in the early 90s I wrote a lot of LPC, which is a C-like language for programming MUDs, short for “Multi-User Dungeons” — think “World of Warcraft” meets “Zork” meets IRC/Slack. I was also a huge, huge fan of HyperCard and its HyperTalk scripting language; it was just the most amazing, empowering platform, and you could do so much in it with so little! I liked Pascal but never used it outside of a university setting. I did some assembly programming in college too and found it challenging but oddly satisfying; I’ve really enjoyed the Advent of Code puzzles that touch on this area. My first language was BASIC on the Apple II, which is a very poor language compared to the riches we have today, but which started me on the whole programming thing in the first place, so I will always remember it fondly.

But Python is my programming soul mate, and I’m pretty happy to be in a committed long-term relationship with it.

What projects are you working on now?

My coding focus right now is on a project called dndme, which is a terminal app written in Python with Prompt Toolkit that I’ve written to help me run Dungeons & Dragons game sessions. It’s basically a REPL for managing encounters—keeping track of combatants, turn order, hit points, that kind of thing—but I’ve found value in adding things like sunrise and sunset, calendaring, and moon phases. This project was the genesis of my “Dungeons and Dragons and Python” talk that I gave this spring at PyTennessee and last fall at PyGotham.

My other big programming-adjacent focus is serving as the program chair for PyOhio. I’m really proud of how PyOhio has grown over the years, and it’s been an honor and a privilege to shape the lineup of talks in 2018 and 2019. I’m hoping we’ll be able to do something this year, but there’s just so much uncertainty right now, and the health and safety of our community definitely comes first for us.

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

Hands-down, Requests and BeautifulSoup have been amazing friends. I’ve gotten so much mileage out of them! Dateutil was a great pre-Requests favorite. Prompt Toolkit is a more recent favorite; it’s been really nice to use its command history and auto completion in my D&D tooling; I’m glad to use Attrs in this project too. I’m very glad that Django and Flask exist, and I’ve enjoyed working with them both. I’ve also had a blast messing around with a Python-based tool called FoxDot, which lets you live code electronic music. I’m also really digging Black in my professional life, as it eliminates any stylistic nitpicking that might bog down code reviews and lets us really focus on what matters.

In the standard library, I’ve got a real fondness for the collections and itertools modules, though I sometimes don’t feel smart enough for all that itertools offers. Before Requests came along, urllib and httplib were heavy-hitters for me. It’s probably not a very popular opinion, but I also kind of like the logging module.

How did you get started organizing conferences?

I had helped to found and organize our local Cleveland user group, ClePy. At one point we, along with some other Ohio Pythonistas, tried to put together a pitch to bring PyCon to Cleveland. When it didn’t work out, a bunch of us started talking about holding a regional conference. I owned a copy of Illustrator, so after we arrived at the PyOhio name, I made a logo and a few variants. This was not long after my daughter was born, so my schedule wasn’t really conducive to much organizing beyond that. Over the next few years I did a fair amount of speaking at PyCon, CodeMash, and eventually PyOhio, and found it interesting to compare the experiences and what worked well and what didn’t. I gradually became friends with a number of PyCon and PyOhio organizers, and as my PyOhio attendance became more regular, I started bringing my camera gear with me and volunteering as a photographer for the event. When planning for 2018 rolled around, a colleague and dear friend was chairing PyOhio and asked me to head up the program committee. I jumped at the chance and haven’t regretted it at all.

Do you have any advice on conference organizing for those who would like to start one?

It’s a lot of work. You’re basically taking on a second job, even if it’s only part-time. You probably won’t be paid, and if you do your job well, none of your attendees should notice. You will need to love it and have the right motivations. But it’s also incredibly, amazingly satisfying to watch it all come together. There are a lot of good things in my life that have come from attending and speaking at conferences, so being able to contribute to that platform for others can be a great way to lift others up as well and let the next generations have those meaningful experiences and career boosts.

This year, in light of current events, I don’t know if I would try to start a new conference—at least not an in-person event. I’m intrigued to see what happens as different groups experiment with virtual conferences, so maybe that’s a direction to explore right now. I certainly wouldn’t count on being able to get much in the way of sponsorship for the next few months. But eventually? The need for real, human connection around things that we’re interested in isn’t going to go away, so I expect conferences—even if they change dramatically—will make a comeback when we’re on the other side of this. We’ll need motivated organizers and volunteers to help make it happen.

Also: have a solid code of conduct, and a good process around handling any issues that may occur.

Is there anything else you’d like to say?

It feels strange to be doing this interview with everything going on in the world right now. This is a really weird, difficult time, and the future is uncertain. The mathematics of exponential viral growth are cold and cruel, so I’d like to call on everyone reading this to be otherwise. Take care of each other. Seek help if you need it; it is okay to be overwhelmed. Let people know you care about them—don’t skimp on “I love you”s. Above all, I hope you stay safe and healthy.

Thanks for doing the interview, Mike!