About Me

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, where I experienced first-hand many of the things that can go wrong in software development projects.
I left that company in 1998 to become an independent contractor, working primarily for Los Alamos National Laboratory. I also wrote my first children’s book, Three Sensible Adventures. Between 2000 and 2004, I was lucky enough to be 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 developed an open source course on software development for scientists and engineers, wrote a book on data crunching, and taught several other courses at the University of Toronto. I became an assistant professor in Computer Science in May 2007. More importantly, on March 31, 2007, my wife Sadie Lewis and I became the proud and happy parents of Madeleine Erica Wilson.
Family
Sadie Lewis and I are the proud parents of Madeleine, the most beautiful little redhead in the world:

Writing
- Bottle of Light (Scholastic Press, 2008—unfortunately, only available through schools)
- “Those Who Will Not Learn From History…” Computing in Science & Engineering, May/June 2008.
- Beautiful Code (O’Reilly, 2007; edited with Andy Oram)
- “Software Carpentry: Getting Scientists to Write Better Code by Making Them More Productive“. Computing in Science & Engineering, November/December 2006.
- “Where’s the Real Bottleneck in Scientific Computing?” American Scientist, January 2006.
- Data Crunching (Pragmatic Bookshelf, 2005)
- “Extensible Programming for the 21st Century” ACM Queue, December 2004.
- “Open Source, Cold Shoulder“. Software Development, November 2004.
- Three Sensible Adventures (Annick Press, 1999)
- Parallel Programming Using C++ (MIT Press, 1996; edited with Paul Lu)
- Practical Parallel Programming (MIT Press, 1995)
- Past, Present, Parallel (Springer-Verlag, 1991; edited with Arthur Trew)
