Mapping the Journey

Stunning view from the top of Pike's PeakCreative Commons photo by "ishrona". Click to see the original.

This article originally appeared in Canadian Developer Connection.

It’s been just over four months since I joined Microsoft, and it feels like both a brief moment and a very long time. Although I’ve been a developer evangelist/advisor before, my experience has largely consisted of independent contracting, small companies and startups, so my experience here at Microsoft has been like a trip through “the looking glass”. So much has changed in a few months, and yet I’ve only just begun.

The conferences I’ve already attended – PDC 2008, TechDays 2008 for Calgary and Vancouver, and most recently, TechReady 8 – as well as the EnergizeIT cross-Canada tour that we’re gearing up for have reintroduced me to the scale and scope of Microsoft’s tools, platform and tech. All told, they spread pretty far and wide, like the (pardon the pun) vista pictured above, from the smallest embedded systems to the giant data centres we’re building to support our cloud computing platform.

It’s a lot of ground to cover. I’m sure that most of Microsoft’s evangelists, with the exception of a few super-geniuses among us, know a little bit about most Microsoft tech and pick a few areas of specialization. Now that I’ve had a chance to go through the orientation process and get some exposure to some of the company’s facets (it’ll be a long time before I see them all), it’s time for me to pick a few areas to become quite good at; areas which play to my strengths and interests.

For the past six years, I lived in the world of open source, the LAMP stack, PHP, Python and Ruby on Rails, a world built on the web. Prior to that, I lived in the Microsoft world, which was built on desktops, as evidenced by the original mission statement, “A PC on every desktop and in every home”. My plan is to take my experience in both worlds and apply it towards the goal of helping drive Microsoft development on “non-traditional” platforms – the web, mobile and gaming – by both Microsoft “lifers” and people who wouldn’t normally consider working with Microsoft tech.

With that in mind, the particular areas where I’ll be concentrating my efforts will be:

  • ASP.NET MVC: A radically different paradigm for web development  using .NET, with all the MVC goodness of DRY, convention over configuration, separation of concerns and test-driven development, coupled with the performance of .NET.
  • Silverlight: Rich internet application development backed by .NET and great development tools.
  • Windows Mobile: There may be a lot of confusion about this one, but there’s also a lot of potential and many opportunities.
  • XNA: A great framework for developing games for Windows, XBox 360 and Zune.

As I explore these, I’ll be blogging all the way, turning my experiences into tutorials, “quick starts”, “how to’s”, and other informative articles, all with the intent of helping you get up and running with these technologies quickly. My goal is to give you enough knowledge to start experimenting on your own, because I think the best way to learn to build is to build to learn.

It’s going to be a fun journey, and I hope you’ll follow along.