
I started out as a Systems Administrator working with Solaris, Windows NT, Linux and xBSD systems in the late 90's. I quickly realized that my best days involved software developers asking for something interesting - figuring out how to build a web cluster was much more interesting than fixing printers and blackberries. This got me more interested in what we'd call Operations or DevOps today.
My natural leadership abilities led me to director roles early on. In the last ten years of my career I've been the CTO of three innovative organizations, and I've learned a lot from the each of them. I also fell in love with developing software. In my last two roles, over the last six years, I've built large scale web applications in .NET, and learned several other languages including JavaScript, Ruby, Scala, PHP, Perl and Python along the way.
I'm a Software Developer, specializing in .NET, though I also work in JavaScript, Scala, Python, and Ruby. Microsoft awarded me the MVP award in 2013 for my work in the ASP.NET and IIS community. I have a lot of interest in mobile software development, and I've published one of my side projects in the Apple app store. I've led and built teams of developers and helped transform sleepy software companies in to agile software success stories.
It all started when I was seven years old, my father brought home an Atari 800XL, an early 8 bit computer. It came with the keyboard and used your television as a monitor. When it booted up, it went straight to the BASIC programming language. I spent many many hours programming at a young age - I developed a primitive membership database application, typed in games from programming books, simple graphics programming, and even sound programming.
One project came together after realizing that the Atari "paddle" controller that came with the Atari game system could be used with the computer; ATARI BASIC could read the paddle's position and the status of the trigger. The paddle, which was essentially a primitive wheel, would report its position as an integer between 1 and 228. The trigger would either supply a 1 or a 0. The Atari sound system, happily, took four arguments; and the one for "pitch" took a number between 1 and 255.
Of course, once I realized that I could read the paddle position value and feed it to the pitch parameter, and read the trigger position to select distortion, I had whipped together a musical instrument in about an hour. It was amusing and expressive, but otherwise a musical failure.
I love the technology community - I'm a big believer in hack nights and user groups. I've presented technical topics at the North Toronto .NET User's Group, founded Toronto Code Retreat, a polyglot group focused on pair programming and fundamentals.
Though my wife and I live in Toronto, Ontario, I have family in Western Texas, New Mexico, San Francisco, Kansas City, London (UK) and Leeds.