I graduated from the University of North Texas with my BA in English lit (minor in music) in 1995. I was functionally prepared to do not much of anything, but I managed to learn a few things about computers and websites and databases, and pretty soon I was making a living as a programmer.
As my skills improved, I slowly started working on larger projects with bigger companies. In 1999, my wife and I moved to Boston, MA, and I was pretty thrilled to get hired on at boston.com, the Internet site for the Boston Globe and one of the properties of New York Times Digital. This was the first time my work was seen by hundreds to thousands of people per day, and it felt pretty great. I built couple of projects there I really enjoyed, including mp3.boston.com, a site for local bands to share music and promote themselves, as well as an arts and entertainment calendar for the ae.boston.com site.
I left boston.com for a gig at Cold Spring Harbor Laboratory to work in a bioinformatics lab. I was a bit disappointed to go from deploying my code across many servers to having just one machine that had to serve both development and production roles, and my user base dropped to dozens or hundreds of people using my software. I consoled myself that I was at least contributing to scientific research, and one of my favorite activities to do at conferences was to count how many of the posters had images produced by my CMap program to display comparative maps.
I moved from CSHL to the University of Arizona in 2014. I was definitely interested to move more deeply into research computing, and my first task was to create the iMicrobe site from the smoldering ruins of the CAMERA project. It went well enough, but the site has never had much funding or exposure, and we still have just dozens of users. I was really hoping to scale my work up to positively affect hundreds or even thousands of people.
In the last several years, I’ve had the opportunity to teach in the classroom, and I’ve found that I really enjoy helping non-computer-science students learn to program. It’s fun to teach practical computing skills to people who really have a need to learn them. I’ve started to think how well education scales. If I could teach a few dozen people each year to program better, then I’ve multiplied my knowledge by that many people who then go on to possibly amplify their skills and pass on their knowledge.
Still, this requires personal interaction and so doesn’t scale quickly. I’ve wanted to write something big since college, but I never could figure out what it would be. Finally I decided I would try to write something to do with computers, and that turned into Tiny Python Projects. I’m really excited about this because I think books scale. I can write this once, and potentially hundreds of people can read it.
I know I have a limited amount of time to be productive. I’m starting to stare down 50, and I think that remaining a production programmer is not the best use of the last part of my career. It’s corny to say, but I really want to do the most amount of good I can with whatever time I have.
I hope this book helps improve the state of software development even just a little bit. I have in mind several other books I’d like to write and courses I’d like to design and teach at the university. Education scales, and I think this is my chance to make a bigger contribution than I ever have.