Back when I was living in Canada, before I started working at Microsoft, I discovered that I really enjoyed writing. I was doing a lot of developer training, travelling around the US and Canada teaching week long courses covering Access, Visual Basic, Architecture, SQL, and more. I started to reach out to some publishers, pitching some technical book ideas and getting a few chapter and book assignments sent back to me from various places. I ended up writing a few books, but I eventually moved teams at Microsoft and took a job as a full-time writer. I would write small articles, explaining a concept, going through the code, and hopefully inspiring some folks to try it out for themselves. I don’t know how many articles I’ve written, but I do know that I used to try to write 1-2 a week. At the same time, I was actively blogging (first on a site called, but eventually moving to my own domain), with a similar focus on coding concepts, sample code and a ton of link sharing. Other than internal documents, this blog is my only real writing these days. I come up with book ideas from time to time, and I have many article ideas, but the combination of writing on my own property and not having to commit to something as large as a book means that a blog post every month or so is just about right.

My most recent print publication was a single ‘article’ in the book “97 Things Every Cloud Engineer Should Know”, a quick intro to the idea of scalability.


As I mentioned, I was involved in a lot of books, and I don’t have a full recollection of them all. I would receive a copy of every book, sometimes one in every language it was translated to, but I recently decided there wasn’t a lot of reason to keep them around and I took a few boxes of them into a local used bookstore. Hopefully they weren’t so old that no one will find them useful. Doing a bit of internet sleuthing, here is a list of the books I’ve written, starting with the most recent.

  • Zune For Dummies (with Brian Johnson and Harvey Chute) – 2007
  • Xbox 360 For Dummies (also with Brian Johnson) – 2006
  • Kickstart: Microsoft Visual Basic .NET 2003 (with Andy Baron, Erik Porter and Joel Semeniuk) – 2003
  • Teach Yourself Visual Basic .NET in 21 Days (with Kent Sharkey) – 2001
  • Exchange and Outlook: Constructing Collaborative Solutions (with Joel Semeniuk) – 2000
  • Word 2000 VBA Programmer’s Reference (with Felipe Martins) – 1999

I wrote a few chapters for many books as well, but I could only find a couple of those listed on Amazon. Essentially Wrox, SAMS, QUE, or another publisher would reach out and ask if I could write some section of a book. I remember doing 3 chapters on data access in Visual Basic for example, and they would just use that to fill gaps in another author’s book. The couple I could find…

  • Using Visual Basic 6*
  • MSCD Training Guide: Visual Basic 5*


Since it was my job, I wrote a lot of articles for the MSDN website, but I also wrote for a few other websites ‘on the side’ and I ended up writing quite a few for MSDN Magazine (a print publication, that was related to the MSDN site, but always felt like a bigger deal to be published in because they had more limited space). Unrelated to programming, I also signed up for a year or so, to write the Xbox Dad column on This was a series of articles about gaming with kids, which I was quickly becoming an expert in with my two children. Many of the articles I’ve written are now gone off the internet, which is sad, but part of the danger of publishing onto other people’s domains.

MSDN Articles (not in the magazine)

MSDN Magazine Articles

Turns out we have an author page for writers on the magazine, but here are some individual links as well

  • { End Bracket }: And Along Came 10… Introducing (, the Channel 9 answer for the technology enthusiast who isn’t necessarily a programmer. Duncan Mackenzie – December 2006
  • Visual Basic: Navigate The .NET Framework And Your Projects With The My Namespace The My Namespace is best described as a speed-dial for the .NET Framework. It provides an intuitive navigation hierarchy that exposes existing .NET functionality through easily understood root objects. Here Duncan Mackenzie explains it all. Duncan Mackenzie – Visual Studio 2005 Guided Tour (special issue in 2006)
  • Advanced Basics: A Match-Making Game in Visual Basic My four-year-old son has decided that he wants to be like his dad when he grows up. He is planning to work in my office, and write computer programs just like I do. But there is one problem—he thinks I write games. Duncan Mackenzie – October 2005
  • Advanced Basics: Creating A Breadcrumb Control Hansel and Gretel had the right idea when they followed the pebbles that glistened there like newly minted coins, showing them the way. ” The deeper you get into the forest or into your data, the more likely you are going to need help to find your way back out again. Duncan Mackenzie – July 2005
  • Advanced Basics: Remembering User Information in Visual Basic .NET Many applications need to store user-specific settings to be persisted between sessions. But how do you go about saving and restoring these settings in your Microsoft® . NET Framework-based application? It’s not all that easy to find the correct answer. Duncan Mackenzie – April 2005
  • Advanced Basics: Creating a Five-Star Rating Control I have to admit it; most of my Windows® Forms controls are an attempt to copy something that already exists. In my October 2004 column I showed you how to create a progress bar that mimicked the one shown during the Windows XP setup routine, and this month I’m at it again. Duncan Mackenzie – January 2005
  • Advanced Basics: Digital Grandma As a parent of a young child, I take a lot of pictures—many more than anyone would ever be interested in seeing. Well, anyone except my mother. This is her first grandchild and the one or two pictures I send to her each week only brush the surface of her grandmotherly needs. Duncan Mackenzie – November 2004
  • Advanced Basics: Building a Progress Bar that Doesn’t Progress In many situations, accurately estimating the length of a certain process (copying a large file, loading data from a server, retrieving files from the Internet) would be both difficult and inefficient. Duncan Mackenzie – October 2004
  • Advanced Basics: Data Binding Radio Buttons to a List Duncan Mackenzie – July 2004
  • Visual Basic: Navigate the .NET Framework and Your Projects with “My” The next version of Visual Basic, Visual Basic 2005, will include some powerful new features. One of the most interesting is the My language extensions: My.Application, My.Computer, My.Forms, My.Resources, My.Settings, My.User, and My.WebServices. The My language extensions take the idea of helper functions to a whole new level because they include so much functionality out of the box. Called “a speed-dial for the .NET Framework” by the author, the My extensions are a feature you won’t want to overlook. Duncan Mackenzie – May 2004

Gaming (Xbox 360)

Sadly, all of these have been removed from the Xbox site… I might try to track down my originals, so just leaving the list here for reference!

  • Xbox Dad Goes Adventuring – Time to go on an adventure with Indiana Jones.
  • Xbox Dad Checks Out Chessmaster LIVE – World class chess comes to Xbox LIVE with this new title.
  • Xbox Dad Discovers The Last Airbender – He joins Aang on his journey through the Earth Kingdom.
  • Xbox Dad Has a Party – It’s party time for Xbox Dad with Viva Piñata: Party Animals.
  • Xbox Dad Checks Out Xbox LIVE – Five great things about Xbox LIVE for your kids.
  • Xbox Dad Plays the Bee Movie Game – Barry B. Benson shows up in the Xbox Dad household.
  • Xbox Dad Goes to Hogwarts – Harry Potter mania has struck the home of Xbox Dad.
  • Xbox Dad Enjoys the Dish of Ratatouille – It’s a great family game, and great fun for everyone.
  • Xbox Dad Stays in Touch with Xbox LIVE Vision – Grownup boys and girls need to chat with Dad too.
  • Xbox Dad Games with the K-6 Crowd – What games are good to play with the really young ones?
  • Xbox Dad Plays Shrek the Third – The green guy is ok, but who can resist Puss-In-Boots?
  • Xbox Dad Honors Xbox Mom – Unlock the Good Husband achievement in your relationship.
  • Xbox Dad Shouts Cowabunga! – Teenage Mutant Ninja Turtles remain a family favorite.
  • Xbox Dad Meets The Robinsons – The first Family Game Night game is a Disney smash.