CV

December 15th, 2011

Gregory V. Wilson

gvwilson@third-bit.com
http://third-bit.com
@gvwilson

Employment

2011-present: Software engineer, Side Effects Software Inc.
Working as part of a team of eight designing and building a new web application for the makers of the world’s leading procedural animation tool while editing and publishing The Architecture of Open Source Applications, a collection of essays on the design of large software systems.
2010–2011: Independent contractor.
Creating and running Software Carpentry, an online open license course in computational skills and software development for scientists and engineers; editing Making Software, a collection of chapter-length summaries of evidence-based results in software engineering; supervising three MSc theses at the University of Toronto (Michael Conley, Alecia Fowler, and Zuzel Vera Pacheco) while an Adjunct Professor in the Department of Computer Science.
2006–2010: Assistant Professor in the Department of Computer Science at the University of Toronto.
Teaching graduate and undergraduate courses; developing a Professional Master’s degree in Computer Science; helping to reorganize the undergraduate software engineering curriculum; supervising and co-supervising graduate students in Computer Science and Medical Biophysics; editing a collection of essays on software design called Beautiful Code; on the editorial board of Computing in Science and Engineering and Doctor Dobb’s Journal (until 2008). Supervised six MSc theses at the University of Toronto (2009: Samira Abdi Ashtiani, Jeremy Handcock, Carolyn MacLeod; 2010: Aran Donohue, Jason Montojo, Rory Tulk).
2004–2006: Independent contractor.
Wrote Data Crunching: Solve Everyday Problems Using Java, Python, and More (Pragmatic Press, 2005); led development of a web-based portal for managing undergraduate team programming projects while an Adjunct Professor at the University of Toronto; created a course on basic software development skills for the Python Software Foundation; contributing editor with Doctor Dobb’s Journal.
2000–2004: Software engineer, Select Access team.
Design, implementation, documentation, and testing of Select Access, an access control and authorization product, using Java, C++, XML, and LDAP. The product started life as Nevex Software Technologies, was acquired by Baltimore Technologies, and became part of Hewlett-Packard in Sept. 2003. I was also a contributing editor with Doctor Dobb’s Journal, and an Adjunct Professor in Computer Science at the University of Toronto, where I developed a new core course on software design (CSC207) and supervised a series of undergraduate projects.
1998–2000: Independent contractor.
Organized and ran the Software Carpentry project for Los Alamos National Laboratory; worked on a next-generation security product called SelectAccess for Nevex Software Technologies; taught software engineering and Python at Los Alamos National Laboratory and elsewhere; editorial work for Doctor Dobb’s Journal; developed tutorials and documentation for a parallel C++ numerical library at LANL; wrote a children’s picture book called Three Sensible Adventures (Annick Press, 1999).
1996–1998: Software engineer, Visible Decisions Inc.
Team lead for In3D Studio, an IDE for building 3D data visualization tools using Microsoft Windows and MFC, during three release cycles. Major responsibilities included project management, testing the In3D library, design and implementation of a property interface for In3D’s classes, and construction of a C++ code generator.
1995–1996: Scientist, Centre for Advanced Studies, IBM Toronto.
Co-developed ABC++, a C++ library for parallel and distributed computing; principal investigator of Voyager project; edited a book on C++-based parallel programming systems; organized fifteen workshops for CASCON’95.
1992–1995: Post-doctoral researcher.
Worked at the University of Oregon, University of Alberta, Australian National University (Canberra), Vrije Universiteit (Amsterdam), and University of Toronto. Taught graduate and undergraduate courses on parallel programming and participated in local research projects while writing one book on programming massively-parallel computers (Practical Parallel Programming, MIT Press, 1996) and editing another (Parallel Programming Using C++, MIT Press, 1996).
1986–1992: Software engineer, Edinburgh Parallel Computing Centre.
Developed and parallelized large scientific applications for the Centre’s industrial sponsors; wrote and maintained the GFX graphics package for Meiko Scientific’s parallel computers; supervised graduate and undergraduate theses; created and ran the Centre’s Summer Scholarship Programme; produced a quarterly newsletter; developed an entry for the 1989 World Computer Chess Championships while completing Ph.D. part-time.
1985: Software engineer, Design Interpretive Division, Bell-Northern Research.
Developed a real-time interface to a 3D digitizer for use in an office automation system prototype.
1984–1985: Software engineer, Miller Communications Ltd..
Developed signal processing software.
1975–1983: Part-time and summer jobs.
Worked as a librarian’s aide, groundskeeper, NSERC USRA (1982), and tour guide.

Education

1993: Ph.D. in Computer Science, University of Edinburgh.
Thesis was Structuring and Supporting Programs on Parallel Computers.
1986: M.Sc. in Information Technology (Knowledge Based Systems), Dept. of Artificial Intelligence, University of Edinburgh.
Thesis was An Implementation of a Connection Method Theorem Prover for S5 Modal Logic. Shared Howe Prize for best thesis in year.
1984: B.Sc. in Mathematics and Engineering (First Class Honours), Faculty of Applied Science, Queen’s University, Ontario.
Top student in graduating class.

Awards

  • Winner of ComputerWorld Canada’s “IT Educator of the Year” award, 2010.
  • Co-winner with Andy Oram of 2008 Jolt Award for Best General Book (for Beautiful Code).
  • University of Toronto Computer Science Student Union Teaching Award, 2004.
  • Shared Howe Prize (best M.Sc. thesis in Artificial Intelligence), University of Edinburgh, 1986.
  • Commonwealth Scholarship, 1985–86.
  • University Medal, Queen’s University, 1984 (top student in graduating class).
  • Co-winner of A.B. Lillie Prize, 1984 (top student in Mathematics).
  • Queen’s University Provincial Scholarship (1980–1984).
  • Dean’s Scholar, Faculty of Applied Science, Queen’s University (1982–1984).
  • Jeffrey Scholarship, Department of Mathematics, Queen’s University (1983 and 1984).
  • Dean’s Scholar, Faculty of Arts & Sciences, Queen’s University (1981).
  • British Columbia Provincial Scholarship, 1980 (stanine 9 out of 9 on examinations).

Funding

  • Grants and in-kind support from Indiana University, Michigan State University, Microsoft, MITACS, Queen Mary University of London, Scimatic Software, SciNet, SHARCNET, and the UK Met Office to support development of Software Carpentry.
  • MITACS grant, 2009, to run the Software Carpentry course for graduate students from across Canada and study its impact on their productivity.
  • MathWorks grant, 2008–09, to study how scientists use computers in their research.
  • Instructional Technology Courseware Development Fund award, 2007.
  • Instructional Technology Courseware Development Fund award, 2006 (with Prof. Jennifer Campbell).
  • IBM Eclipse grant, 2005 (with Prof. Steve Easterbrook).
  • Python Software Foundation grant, 2004–06, to develop Software Carpentry course material.
  • Instructional Technology Courseware Development Fund award, 2004 and 2005 (with Prof. Karen Reid).

Technical Books

Papers and Articles

  • Jordi Cabot and Greg Wilson: “Tools for Teams: A Survey of Web-Based Software Project Portals”. Doctor Dobb’s Journal, October 2009.
  • Greg Wilson: “How Do Scientists Really Use Computers?” American Scientist, Sep/Oct 2009.
  • Jo Erskine Hannay, Hans Petter Langtangen, Carolyn MacLeod, Dietmar Pfahl, Janice Singer, and Greg Wilson: “How Do Scientists Develop and Use Scientific Software?” Proc. Second International Workshop on Software Engineering for Computational Science and Engineering, May 2009.
  • David Matthews, Greg Wilson, and Steve Easterbrook: “Configuration Management for Large-Scale Scientific Computing at the UK Met Office”. Computing in Science and Engineering, Nov/Dec 2008.
  • Greg Wilson: “Those Who Will Not Learn From History…” Computing in Science and Engineering, 10(3), May 2008.
  • D. Winter, B. Vinegar, H. Nahal, R. Ammar, G. V. Wilson, and N. J. Provart: “An ‘Electronic Fluorescent Pictograph’ Browser for Exploring and Analyzing Large-Scale Biological Data Sets”. PLoS ONE 2(8): e718, 2007.
  • Jorge Aranda, Steve Easterbrook, and Greg Wilson: “Requirements in the wild: How small companies do it”. Proc. 15th Int’l Conference on Requirements Engineering (RE’07), October 2007.
  • Karen L. Reid and Gregory V. Wilson: “DrProject: a software project management portal to meet educational needs”. Proc. 38th SIGCSE Technical Symposium on Computer Science Education, Cleveland, Ohio, 2007.
  • Greg Wilson: “Where’s the Real Bottleneck in Scientific Computing?” American Scientist, Jan.-Feb. 2006.
  • Paul Gries, Volodymyr Mnih, Jonathan Taylor, Greg Wilson, and Lee Zamparo: “Memview: A Pedagogically-Motivated Visual Debugger”. ASEE/IEEE Frontiers in Education (FIE 2005), Indianapolis, Indiana, 2005.
  • Greg Wilson: “Open-source offers solutions for science software education”. Nature, Vol. 436, pg. 600, July 2005.
  • Greg Wilson: “Top Ten Data Crunching Tips and Tricks”. O’Reilly OnLamp.com (www.oreillynet.com), June 9, 2005.
  • Keir Mierle, Kevin Laven, Sam Roweis, and Greg Wilson: “Mining Students’ CVS Repositories for Performance Indicators”. Proc. International Workshop on Mining Software Repositories (MSR05), Saint Louis, Missouri, 2005.
  • Karen L. Reid and Gregory V. Wilson: “Learning by doing: introducing version control as a way to manage student assignments.” Proc. 36th SIGCSE Technical Symposium on Computer Science Education, St. Louis, Missouri, USA, 2005, 0097-8418.
  • Greg Wilson: “Extensible Programming for the 21st Century”. ACM Queue, November/ December 2004-05.
  • Michelle Levesque and Greg Wilson: “Open Source, Cold Shoulder”. Software Development, November 2004.
  • Greg Wilson: “XML-Based Programming Systems”. Doctor Dobb’s Journal, March 2003.
  • Gene Amdur, Andrew Flint, Irving Reid, and Greg Wilson: “SelectAccess: Extensible Network Access Control”. Doctor Dobb’s Journal, Spring 2002.
  • Pete Beckman and Greg Wilson: “Open Source Meets Big Iron”. Doctor Dobb’s Journal, June 2000.
  • Gregory V. Wilson: “High-Performance Programming for Computational Scientists”. Keynote address in Pollack et al (eds.), Proc. High Performance Computing Systems and Applications ’99, Kluwer, 1999.
  • Peter Webb and Greg Wilson: “MATLAB as a Scripting Language”. Doctor Dobb’s Journal, January 1999.
  • Greg Wilson: “Is the Open Source Community Setting a Bad Example?” IEEE Software, Vol. 16, No. 1, January 1999.
  • Mauricio de Simone and Greg Wilson: “The Active Expressions Library”. Doctor Dobb’s Journal, August 1998.
  • Brent Gorda and Greg Wilson: “Building and Running Online Auctions”. Doctor Dobb’s Journal, October 1997.
  • Roel van der Goot, Jonathan Schaeffer, and Gregory V. Wilson: “Safer Tuple Spaces”. COORDINATION 1997, pp. 289-301, Berlin, Germany, 1997.
  • Eshrat Arjomandi, William G. O’Farrell, and Gregory V. Wilson: “Smart Messages: An Object-Oriented Communication Mechanism for Parallel Systems.” Proc. 2nd USENIX Conference on Object-Oriented Technologies and Systems, Toronto, June 1996.
  • Gregory V. Wilson: “What Should Computer Scientists Teach to Physical Scientists and Engineers?” IEEE Computational Science & Engineering, Summer 1996, Fall 1996.
  • Gregory V. Wilson, Brent Gorda, and Paul Lu: “Twelve Ways to Make Sure Your Parallel Programming System Doesn’t Make Others Look Bad”. IEEE Computer, 27(10), 1994.
  • Gregory V. Wilson, Jonathan Schaeffer, and Duane Szafron: “Enterprise in Context: Assessing the Usability of Parallel Programming Environments”. Proc. CASCON’93, 1993.
  • Gregory V. Wilson: “Using Opportunistic Combining Networks to Reduce Contention in Multicomputers”. Proc. PARLE’92, Paris, France, June 1992. Published as Lecture Notes in Computer Science 605, Springer-Verlag, 1992, 3540555994.
  • Sole or joint author of over 130 other articles and book reviews in academic journals, popular science magazines, newspapers, and trade publications, including Doctor Dobb’s Journal, IEEE Software, New Scientist, and The Independent.

Fiction

  • Greg Wilson: Bottle of Light. Scholastic Press Canada, 2008.
  • Greg Wilson: “Controlled Release” On Spec, 19/4, Winter 2007.
  • Greg Wilson: “…But With a Whimper” On Spec, 19/3, Fall 2007.
  • Greg Wilson: Three Sensible Adventures. Annick Press, 1999.

Courses Taught

Capstone project courses, University of Toronto, Fall 2002–2010.
Supervised over 150 undergraduates working alone or in small teams on almost 100 real-world projects, of which more than half were for clients outside the Computer Science department. In Fall 2009, 45 students from 14 universities worked in distributed teams on 8 open source projects; in Winter 2010, another 45 students from 12 universities worked on 6 such projects.
Software Carpentry, Summer 1998–present.
This intensive short course on software development for scientists and engineers using open source tools was originally developed for Los Alamos National Laboratory, and later offered at the Space Telescope Science Institute, the Bettis Atomic Power Laboratory, and the University of Toronto (as “CSC2125: Topics in Software Engineering”, Fall 2005 and Winter 2007).
Computer science consulting course, Winter 2008–Fall 2009.
Graduate students (in “CSC2125: Topics in Software Engineering”) and undergraduate students (in various courses) went through the entire software consulting lifecycle in small teams with real clients. In Winter 2008, 45 students worked on 25 projects; in Winter 2009, 40 students worked on 22 projects; and in Fall 2009, 24 students worked on Government 2.0 projects using data from the City of Toronto and elsewhere.
CSC407: Software Architecture, Summer 2006–Winter 2007 (3 times).
An advanced undergraduate course on software architecture and software design.
CSC309: Web Programming, Summer 2005.
Covered the usual topics, from CGI through Java frameworks on the server side to basic CSS and Javascript on the client side.
CSC302: Engineering large Software Systems, Winter 2010.
Examines issues in larger-scale software development using design-oriented methodologies.
CSC301: Introduction to Software Engineering, Fall 2007–Winter 2009 (4 times).
An introduction to software engineering, focusing on small teams and agile development processes, which I helped design.
CSC207: Software Design, Summer 2003–Winter 2004, Summer 2006 (4 times).
An introduction to software development tools and methods, which I helped design.

Other Achievements

  • Member, Python Software Foundation, 2010–present.
  • Mentor for Google’s Summer of Code, 2005–present (9 students); organized a series of articles on successful projects for Doctor Dobb’s Journal, 2005.
  • Supervised or co-supervised 9 M.Sc., 6 Afstudeer, and over 50 undergraduate theses at the University of Edinburgh, the Vrije Universiteit (Amsterdam), and the University of Toronto.
  • Recruited, trained, and supervised 60 students while coordinator of Edinburgh Parallel Computing Centre’s Summer Scholarship Programme.
  • Ultimate frisbee, 1991-2003 (Toronto “C” Division championship team 2002).
  • Competitor in 6th World Computer Chess Championship, Edmonton, 1989.
  • Judo at Queen’s University, Takahashi Dojo (Ottawa), and the University of Edinburgh.
  • Member, Queen’s University Bands, 1980-83 (lead stick 1982).
  • PADI Open Water Diver certification (1998).
  • Bronze Cross, RCLSS (qualified lifeguard).
  • Past or current member/volunteer with the Canadian National Institute for the Blind, the Sierra Club, Amnesty International, OXFAM, the Bruce Trail Association, and the Green Party of Canada.

References available upon request.

  1. No comments yet.