PyDev of the Week: Yusuke Tsutsumi

This week we welcome Yusuke Tsutsumi as our PyDev of the Week! Yusuke is a web developer for Zillow and has been working on open source projects for several years. He has a blog where you can learn more about him as well as various programming languages. You can also check out what projects he’s been contributing to over 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 grew up in Seattle, and love the pacific northwest. After a bit of dabbling in music in high school, I landed on electrical engineering in college. I studied analog and biomedical systems (EKGs are still one of the coolest devices I’ve ever learned about). I also ended up learning about embedding systems, which, paired with some experience in college helping improve a content management system, helped me land a position at Zillow where I work today.

At work I contribute to the tooling and infrastructure used for continuous delivery, testing and monitoring, which is certainly my passion. At home, I love to read, hike, and bicycle around the city.

Why did you start using Python?

Python wasn’t an intentional choice: I joined a development team at the University of Washington that worked primarily in Plone, which was written in Python. I recall my first project was writing a Plone plugin, after only a couple CS courses. I had no idea what I was doing! After that, I picked up an internship where I was free to use whatever tools I wanted, and I chose Python. The awesome community and libraries of the language helped me tackle all the problems that were thrown at me. From automating deployment processes, to building distributes web services, Python has been a great tool.

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

I’ve dabbled in a few. I’ve done game development in C# and Java, front end work in Javascript, and a bit of lisp when I was hacking my Emacs setup. I’ve been doing a few side projects in Rust, which I’m really enjoying. It’s hard to find a language that has a strong community, developer-friendly design principles, and great performance. Combined with CFFI, Rust can be integrated with Python as well. I think the two systems are powerful complements for each other: using Python for the expressive syntax and rapid prototyping, and Rust to handle situations where high performance is key.

What projects are you working on now?

In Python, I’m primarily improving transmute-core (http://transmute-core.readthedocs.io/en/latest/), a library that provides schema validation and generates API documentation using Python’s typing module. We’ve built out integration with popular web frameworks like Flask and aiohttp, and are continuing to improve pieces like adapters for more web frameworks.

Last year, I made the decision to stop using Emacs and adopt Atom (atom.io) as my text editor of choice. It’s always been a dream of mine to build a text editor that combines the modal editing power of VIM, the extensibility of Emacs, and focuses on eliminating using the mouse. I’ve been building an atom plugin called chimera (https://atom.io/packages/chimera) which extends atom into the editor that makes that dream a reality.

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

In the standard library, I’m a huge fan of asyncio. Event-driven programming paradigms work well with Python’s interpreter constrained by the GIL, enabling significant gains in memory utilization and scales extremely well in the face of long network connections. I did some benchmarking to illustrate that there is a significant performance improvement as well (http://y.tsutsumi.io/aiohttp-vs-multithreaded-flask-for-high-io-applications.html). Python3.5 was the turning point for me, because the async story was just so compelling. I knew I had to not only use it at home, but move mountains to make it a viable option for my company as well.

3rd party, I have a lot of appreciation for Fabric (http://www.fabfile.org/). The interface was well designed, and the technical complexity to achieve stable SSH connections and command execution is enormous. I like libraries that help you solve large problems, and fabric has enabled execution of massive orchestration using the power of Python.

Is there anything else you’d like to say?

A little random, but as you know, I was not a computer science major. I really respect those who have a degree in the field: it’s tough, and requires a lot of hard work and dedication. I played a lot of catch up my first few years to match my peers.If you are interested in software and do not have a degree, sometimes the job market can be tough. If you find it difficult to land your first job, don’t lose hope. In my experience, the way to getting into the industry is to get really involved. Go to local meetups, blog like crazy, and write code and contribute to open source constantly. Coding is one of the few professions where ability is really the only requirement. So if you have the skills, the next step is to get yourself out there.

Thanks for doing the interview!