This week we welcome David Wolever (@wolever) as our PyDev of the Week. David is the co-founder of PyCon Canada and Akindi.com – a small company that’s making multiple-choice bubble sheet tests a little bit less terrible. He is also the author of the nose-parameterized project and the pprint++ project. You can also check out what other projects he contributes to on Github. Let’s take a few moments to get to know David!
Can you tell us a little about yourself (hobbies, education, etc):
I’m a long-time Python fan and startup founder from Toronto, Canada. I dropped out of software engineering at the University of Toronto when I realized that I was interested in building software, not proving runtime bounds of graph search algorithms (although I’m incredibly grateful to the people who do enjoy that), and I’ve been working with small startups ever since.
I’m the CTO of my company, Akindi, makes Scantron-style multiple choice bubbles sheets a little bit less terrible.
In 2012 some friends and I started PyCon Canada, and I’m incredibly excited that it’s going to be held in Montréal this year (get your tickets now, because they’re going to sell out: https://pycon.ca)
Outside of computers, I’m really into knots (top three: alpine butterfly, jug sling hitch, chain sinnet) and motorcycling.
I tweet at https://twitter.com/wolever
Why did you start using Python?
I started using Python around 2003 to hack on an open source curses-based MSN Messenger client called Pebrot
What other programming languages do you know and which is your favorite?
I write quite a bit of JavaScript at my day job, and I’m embarrassingly proficient in Bash. I’ve also written a nontrivial amount of code in C, C++, PHP, and Go.
My favourite language, though, is SQL. I take an unhealthy amount of joy from working with SQL (and, specifically, Postgres).
The next language I invest in will be something with a strong, static, type system. Maybe Flow? TypeScript? I’m not sure yet. But I’m tired of all the time I waste on issues the computer should have detected for me.
What projects are you working on now?
My main project is my company, Akindi. Our product is a Scantron-style multiple-choice bubble sheet grading system that’s less terrible than anything else on the market. (Un)fortunately we’ve grown enough that I don’t get to do much coding day-to-day, though.
As far as open source projects go, I’ve got a couple little ones that I’m proud of:
- git-blast, which shows git commits sorted by last commit date
- parameterized, a parameterized testing library that works with every testing framework
- pprintpp, a drop-in replacement for the pprint module, but it’s actually pretty
Which Python libraries are your favorite (core or 3rd party)?
ohh… that’s a tricky question. A few that come to mind, though:
- gevent: I love gevent’s implementation, and the API it exposes is easily the best concurrency API that exists for Python. It’d be awesome if there was a similar API for threading and multiprocessing.
- pathlib: is really nifty, and I haven’t regretted using it yet.
- pandas: oh gee is Pandas ever great. I smile every time I get to use it.
- pdb++: I love debugging with pdb, and pdb++ makes it much nicer
Where do you see Python going as a programming language?
That’s a fantastic question, and my honest answer is that I’ve got no idea.
I hope, though, that the effort to build clean, usable APIs will continue. Python’s APIs are steadily getting better… but I still have to check StackOverflow each time I need to convert a datetime to a timestamp or visa versa.
What is your take on the current market for Python programmers?
It’s annoying! Because everyone wants to hire them, which is making really difficult for me to hire them 😜
Is there anything else you’d like to say?
str.partition is incredibly useful and almost unheard of. Everyone should use str.partition!
Thanks for doing the interview!
Wow till now I did not realized that nose-parameterized was created by one dev! What a piece of puzzle!
Great Interview! Thanks !