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?
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!