Ph.D. in Computer Science
Co-founder of Software Carpentry and The Architecture of Open Source Applications
ACM SIGSOFT Influential Educator of the Year
Co-winner, Jolt Award, Best General Book
Member, Python Software Foundation
Author or editor of over a dozen books on programming and two for children
2021-09-13: IQ and Personality Tests
2021-09-10: Managing Research Software Projects Curriculum
2021-09-07: Managing Research Software Projects Workshop
2021-08-24: Textbooks (Alone) Are Not Enough
2021-08-18: Software Design Webinar
2021-08-05: Software Design Rules
2021-07-23: Software Design for Data Scientists
2021-07-22: Whatever Happened to TidyBlocks?
2021-07-22: I Hope They Would Have Liked It
2021-07-18: What Everyone in Tech Should Know About Teaching and Learning
2021-07-17: Software Engineering's Greatest Hits
2021-07-05: Beneath Coriandel
2021-06-30: That Seems Simple to Me
2021-06-25: A Proficiency Test for Research Software Engineers
...or follow me on Twitter
Smalls & Wilson (2021): Ten quick tips for staying safe online
Lin et al (2020): Ten quick tips for making things findable
Nederbragt et al (2020): Ten quick tips for teaching with participatory live coding
Denny et al (2019): Research this! Questions that computing educators most want computing education researchers to answer
Sholler et al (2019): Ten simple rules for helping newcomers become contributors to open projects
Wilson (2019): Ten quick tips for creating an effective lesson
Brown & Wilson (2019): Ten quick tips for teaching programming
Current and Recent Projects
A textbook for a semester-long course on building research software and running research software projects.
A book about teaching programming for people with technical backgrounds but no formal training as educators.
A non-profit organization dedicated to teaching basic software and data skills to researchers world-wide. I co-founded its predecessor, Software Carpentry, and was its first Executive Director.
Essays describing the architectures of fifty open source projects of various sizes, many written by those projects' creators.
Brief reviews of empirical research results in software engineering and computing education of particular relevance to practitioners.
Teaches software design by re-implementing common software engineering tools in Node.js; currently in beta.
A student's guide to team software projects that covers everything from using Git to running meetings; currently in beta.