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 before moving to Edinburgh to do an M.Sc. in Artificial Intelligence in 1985-86.
I spent the next six years working as a programmer at the Edinburgh Parallel Computing Centre while doing a Ph.D. in Computer Science (which I completed in 1992) and writing popular science articles. 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 several universities. I then took a post with IBM in Toronto for 15 months before joining a business data visualization startup. Between those two jobs, I experienced most of the things that can go wrong in both large and small software teams. On the bright side, I co-edited Parallel Programming Using C++ with Paul Lu.
I went independent in 1998, working primarily for Los Alamos National Laboratory, 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 with Python. Between 2000 and 2004 I was part of a computer security startup that was eventually acquired by Hewlett-Packard, a contributing editor with Doctor Dobb's Journal, 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 Software Carpentry course online and wrote Data Crunching. I became a professor in Computer Science at University of Toronto 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, set up a cross-country undergraduate capstone project program, 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), and in 2007 we became the proud and happy parents of the most wonderful little redhead in the whole wide world.
Since leaving academia in 2010, I have helped Software Carpentry grow into a program that helps several thousand scientists a year, and founded a non-profit foundation to oversee its future. I have also helped organize a two-day meeting of grassroots groups trying to improve inclusion and diversity in the tech sector, edited a book on evidence-based software engineering (Making Software) and a series on software architecture (The Architecture of Open Source Applications), wrote a children's book on science called And Then... and a YA fantasy called Still, and most recently turned the Software Carpentry instructor training course into a short book called How to Teach Programming (and Other Things).