I was born in 1963, and grew up on Vancouver Island, where two inches of rain is considered a light shower. I completed a Bachelor’s degree in Mathematics and Engineering at Queen’s University in 1984, then worked in Ottawa for a year and a half before moving to Edinburgh to do an M.Sc. in Artificial Intelligence, which I completed in 1986.
I spent the next six years working as a programmer in the Edinburgh Parallel Computing Centre; my responsibilities included parallelizing scientific applications, editing the centre’s newsletter, and running its summer intern program. I also worked on a Ph.D. in Computer Science, which I completed in 1992, and started writing for the popular press. These experiences have shaped my career and research interests ever since.
Between 1992 and 1995, I wrote a book called Practical Parallel Programming while doing post-doctoral work at the University of Oregon, the University of Alberta, Australian National University, the Vrije Universiteit, and the University of Toronto. In 1995, I took a post at IBM’s Centre for Advanced Studies in Toronto; fifteen months later, I joined a business data visualization startup. Between those two jobs, I experienced first-hand most of the things that can go wrong in both large and small software teams.
I went independent in 1998, working primarily for Los Alamos National Laboratory. I also wrote my first children’s book, Three Sensible Adventures, and started playing the saxophone and Ultimate frisbee (though not simultaneously). I also became involved in open source development, particularly the Python community.
Between 2000 and 2004, I was part of the development team for an identity management and access control product called Select Access. Originally a startup, the team was acquired by Baltimore Technologies, and then by Hewlett-Packard. I also became a contributing editor with Doctor Dobb’s Journal during this time, and an adjunct professor in the Department of Computer Science at the University of Toronto, where I supervised undergraduate programming projects, and created a new second-year course on software tools and design.
After leaving HP in 2004, I put the training course I had developed at Los Alamos online, wrote another book called Data Crunching, and taught several other courses at the University of Toronto. I became a professor in Computer Science at U of T in May 2007, a post I held until April 2010. In that time I published another children’s book (Bottle of Light) and two more programming books (Practical Programming and Beautiful Code, which won a Jolt Award in 2008), supervised several MSc theses and Google Summer of Code projects, run some cross-country undergraduate capstone projects, helped create a new M.Sc. in Applied Computing, and was named ComputerWorld Canada’s “IT Educator of the Year” for 2010. I also met the woman I’m now married to, which probably ought to have gone at the start of this paragraph…
Since leaving academia in 2010, I have rebuilt the Software Carpentry course, edited a book on evidence-based software engineering (Making Software), another on software architecture (The Architecture of Open Source Applications), and a children’s book on science called And Then… More importantly, on March 31, 2007, my wife Sadie Lewis and I became the proud and happy parents of Madeleine Erica Wilson, the most wonderful little redhead in the whole wide world.