PyDev of the Week: Dane Hillard

This week we welcome Dane Hillard (@easyaspython) as our PyDev of the Week! Dane is the author Practices of the Python Pro, an upcoming book from Manning. He is also a blogger and web developer. Let’s take some time to get to know Dane!

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

I’m a creative type, so many of my interests are in art and music. I’ve been a competitive ballroom dancer, and I’m a published musician and photographer. I’m proud of those accomplishments, but I’m driven to do most of this stuff for personal fulfillment more than anything! I enjoy sharing and discussing what I learn with others, too. When I have some time my next project is to start exploring foodways, which is this idea of exploring food and its cultural impact through written history. I’ve loved cooking (and food in general) for a long time and I want to get to know its origins better, which I think is something this generation is demanding more from industries as a whole. Should be fun!

Why did you start using Python?

I like using my computer engineering skills to build stuff not just for work, but for myself. I had written a website for my photography business in PHP way back in the day, but I wasn’t using a framework of any kind and the application code was mixed with the front-end code in a way that was hard to manage. I decided to try out a framework, and after using (and disliking) Java Spring for a while I gave Django a try. The rest is history! I started using Python for a few work-related things at the time and saw that it adapted well to many different types of tasks, so I kept rolling with it.

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

I use JavaScript fairly regularly, though it wasn’t until jQuery gave way to reactive paradigms that I really started enjoying it. We’re using React and Vue frequently now and I like it quite a bit for client-side development. I’ve also used Ruby in the past, which I find to be quite Python-like in certain ways. I think I still like Python best, but it’s easy to stick with what you know, right? I wouldn’t mind learning some Rust or Go soon! My original background is mainly in C and C++ but I can barely manage the memory in my own head so I don’t like telling a computer how to manage its memory when I can avoid it, but all these languages have their place.

What projects are you working on now?

At ITHAKA we’ve been managing an open source Python REST client, apiron, for a while now. We just released a feature where I got to explore some metaprogramming, which was stellar. It ended up reducing boilerplate people have to write, which is also stellar. I also built a new website as a bit of a portfolio and to centralize some of my online presence. It’s written in Vue, but was my first chance to explore vue-router and couple of other libraries, along with a headless CMS for blogging.

The biggest amount of my free time definitely goes to thinking about and writing the book I’m working on, which introduces people new to software development to some concepts important in collaborative software, in the context of Python. I’m hoping it will help people just graduating, switching disciplines, or who want to augment their work with software! The book is in early access and I’m chugging away on new chapters as we speak.

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

The requests library is one of the more ubiquitous libraries, and it’s what we built apiron on top of. I’ve started using pytest a bit in place of Python’s built-in unittest, and I like the ways it simplifies existing tests while also providing tooling for doing more complex things with fixtures. There’s a great package, zappa, for deploying Django apps (or anything WSGI-based, I believe) to AWS Lambda. Look into that if you’re spending too much on an EC2 instance! For image manipulation, Pillow is great. One that I’d like to try out more soon is surprise, which helps you make recommendation systems akin to what Netflix or Hulu uses to recommend movies. Too many others to name here!

How did you come to author a book?

I don’t know how it works for most authors, but in my case the publisher, Manning, reached out to me—probably after seeing the blog posts I’ve written online. Presented with the opportunity, it was difficult to figure out if I really felt ready or qualified to do a book, which I still ask myself often if I’m being honest. I try to frame it to myself as an opportunity to help others, so even if I don’t produce something perfect I hope that I’ll still be able to say I did that much!

What challenges did you have writing the book and how did you overcome them?

Finding time and balancing it with other priorities is the primary struggle for me, as I imagine it is for many authors. The uncertainty I mentioned earlier is another one. Something that surprised me was how easy it is to use overloaded terms in the context of programming; many concepts have similar names and many English words can be ambiguous for untrained readers! My editor fortunately keeps these at bay, but I slip up often! Teaching is hard. The best way I’ve found to mitigate issues like this is to automate where I can.

Is there anything else you’d like to say?

If you’re out there thinking about getting into programming or writing a book or anything really, and you’re fortunate to have the means to do so, get to it! I’ve found that I don’t know how I feel about something until I really examine it, flip a few switches, find out how it works under the hood. Sometimes you’ll find you don’t like something as much as you thought, but maybe it uncovers tangentially-related things you want to explore. The most important part is getting started!

Thanks for doing the interview, Dane!