PyDev of the Week: Philip House

This week we welcome Philip House (@PhilipHouse2) as our PyDev of the Week! Philip is one of the authors behind PEP 526 – Syntax for Variable Annotations which was provisionally accepted into Python 3.6. Philip also writes a blog and is involved in the development of several 3rd party Python packages which you can check out on Github. Let’s take some time to get to know him better.

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

I graduated from Northwestern University in 2015 where I studied computer science for my degree program. During my time there, I was mainly interested in learning about how the web and distributed computing works. Some of my favorite work in undergrad was doing research on and building crowdsourcing and social computing systems. I was particularly curious about learnersourcing – solving problems with a crowd of motivated learners.

From internships and personal projects in college, I built up experience building web applications and data-intensive projects. When I graduated, I went to work as a platform software engineer where I worked with building API’s and highly available distributed services with a mixture of Python and Java.

I’m currently working on a startup with some former classmates in the industrial IoT space.

When I’m not sitting in front of a computer, I really enjoy camping with friends and playing old-school Gamecube games.

Why did you start using Python?

I first started used Python when my friend and I found a primer for Python 2.7. I read it cover-to-cover, but didn’t use the knowledge for awhile because of my stint with PHP. I started using Python again when I wanted to build more complex web applications in college. I discovered Flask on Github and committed myself to using Flask for my next few projects, and along the way learned how powerful Python could be as a server-side scripting language.

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

I started learning Java at one of my internships where I worked on a really large codebase and learned some really meta Java. Java was my first real experience with a compiled language and I really enjoyed the advantages it has being statically typed. If I’m working with a large, at-scale application, I would most likely choose Java as my go-to language. That being said, recent things in Python are changing my opinion. golang has also been capturing some of my interest as of late.

What projects are you working on now?

Currently I’m working on two small projects, both in Python 3. The first is some data analysis and storage for the pro Super Smash Bros. circuit. I’m doing some manual work recording stats from games, and writing scripts and analysis methods to derive interesting trends and numbers.

My second project is related to personal finances. I’m building a small accounting tool that integrates well with Google Spreadsheets to help me see and understand where exactly my money is going.

Outside of that, I write and blog about whatever I’m learning at the moment and I try to help out with the typeshed project.

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

Currently I’m a huge fan of mypy and typeshed. One of my old-coworkers presented the tool to me about 7 months ago, and I’ve been hooked since. Using mypy and typeshed allows for you to add optional static typing to your Python code. It helps reduce bugs, increase readability, and overall just make coding in Python a little better. The best of all, it’s optional, so you can use it where it makes the most sense. I can’t recommend using it enough.

Is there anything else you’d like to say?

Major props to O’Reilly and all the other publishers that been publishing tech books that taught me how to code, and thanks for having me here!

Thanks for doing the interview!