Kirk Evans Blog

.NET From a Markup Perspective

Ten Years at Microsoft

Ten years ago today I swallowed the red pill.

Prior to joining Microsoft, I was an independent contractor.  I worked for a few companies before the dot-bomb hit in 2001, and I was forced to seek shelter with a few different companies full-time.  I decided in 2004 that I would go work with Microsoft for just a few years, build up my contacts, and then continue as an independent contractor.

The Leap of Faith

I joined Microsoft as a Developer Evangelist in Microsoft’s Communications Sector vertical.  I worked with companies such as Turner Broadcasting, Disney, Verizon, and AT&T to show them how to take advantage of developer technologies.  Back then, I was showing off the soon-to-be-released Visual Studio 2005 and the fledgling Visual Studio Team Foundation System.  My primary interests were XSLT, XML web services, and using things like Web Services Enhancements (WSE… yes, they actually pronounced it “woosy” and it make me and Scott Cate laugh pretty hard). 

I did some work with a partner to build a connector for Microsoft Content Management Server to connect it to Plumtree (remember way back then?).  It was kind of ugly if you looked at how it all worked (“web services” that were actually just strings sent over HTTP, usually malformed), but it worked.  It connected MCMS to Plumtree, and it was published as a Microsoft Download.

My boss asked me to help evangelize SharePoint, saying it had grown in popularity and we were getting a lot of requests to show it off.  Maybe I could do something with SharePoint 2003.  Well, I did some work with it, wrote some code, and then replied to him, “Hell no.  This sucks.”

I did a lot of BizTalk pre-sales work, writing solutions that took advantage of all my web services geekery.  I went into competitive situations against BEA, trying to show how BizTalk was a better solution than WebLogic.  One thing that WLS (this was around the 8.1 timeframe) did better than BizTalk was that it was lightning fast because it didn’t require durable messaging while BizTalk required every message be sent to the database.  Still, I had a lot of fun competing and building solutions that did way more than WLS 8.1 could possibly do, and I loved winning. 

My Love Affair with WCF and WF

Along came a new technology originally known as WinOE, and I was hooked.  Of course, WinOE later became known as Windows Workflow Foundation.  I started evangelizing Indigo (which became Windows Communication Foundation, WCF) and Windows Workflow Foundation (abbreviated as WF… it’s not WWF because we don’t want to fight pandas or wrestlers over the use of an acronym).  I loved how deep and geeky I could get with these, and I was able to present on these at TechEd Australia and TechEd New Zealand, showing some of the incredible things you could do with these amazing technologies.  Best yet, I had two options to compete against BEA and I was loving it. 

As much as I loved talking about WCF and WF (I was good at it, too… I could dazzle an audience with WCF and WF internals and build amazing stuff), developers just didn’t get it.  They kind of saw WCF (although it complicated the hell out of what you could do with a simple ASMX service or HttpWebRequest), but they really didn’t get WF.  They didn’t get how or why to build their applications using it.  Developers were still coming off the drunken Windows Forms days, looking at this new WPF thing and wondering if any of this stuff applied to them.

SharePoint Again?

My boss told me he needed someone to help with WF stuff with SharePoint 2007 because the sales people were having problems finding someone who knew anything about it.  Remembering my previous stint with SharePoint, I replied politely, “I’ll look again, but I’m pretty sure it still sucks.”

It did.  It still sucked.

This was 2007, there was no documentation, the APIs were littered with traps and holes that were prone to causing memory leaks and severe performance problems.  The platform was exploding, and you just kind of had to know a guy who knew a guy who figured out not to do something in a particular way.  But it had one redeeming quality… it had workflow, and I was hooked. 

I started to evangelize Visual Studio Extensions for Windows SharePoint Services (VSeWSS) and I recorded a few videos on Channel9.  I figured out how to deploy workflows with it, even to a 64-bit machine, and generally got the platform to suck a little less.  I was doing a lot of deep dive stuff on workflows and putting my esoteric knowledge on it to use.  I was getting to write a lot of code.

Fast Forward

Since 2007, I have been primarily focused on SharePoint.  Kicking and screaming along the way, I’ve been focused on SharePoint for almost 7 years.

I left DPE in 2011 to join Premier Field Engineering.  It was a fantastic group filled with deep geeky people who knew SharePoint in very deep ways.  I learned about things that I hadn’t really been exposed to while in DPE, such as Active Directory, DNS, SQL, networking, and all kinds of deep geeky stuff.  I was in my element.

Problem was, my developer skills were eroding. 

I identify myself primarily as a developer, and in PFE I was focused on infrastructure stuff.  It was nice to round out my skills, but at the cost of keeping current.  ASP.NET MVC, Web API, and a whole slew of JavaScript frameworks were suddenly the norm and here I was still looking at 14 year old ASP.NET Web Forms code in SharePoint.  The new app model was affording me to do get back into development, but I was still focused on helping customers who were using stuff we had already shipped years ago instead of doing what I really love… helping developers learn to use new technologies to solve problems.

Modern Apps

I am now an Architect in the Windows Azure Modern Apps Center of Excellence.  This job was tailor-built for me, allowing me to show developers the way to new technologies to solve new problems.  I get to learn a ton about Azure (I’ll be presenting three sessions on Azure at the SharePoint Conference this week), and I get to work with a lot of technology that I have completely ignored such as Windows 8 and Windows Phone development, iOS and Android development with Xamarin and PhoneGap, and building solutions with ASP.NET MVC and Web API that are deployed to Azure.  I am having a blast learning so many new technologies.  As I work with all of these technologies, my focus is no longer on furthering the SharePoint platform… it is now focused on helping developers understand Azure Platform as a Service.  I can do that with SharePoint apps a little but, but there is a much bigger world out there.  SharePoint becomes just a part of the overall cloud puzzle, the real opportunity is seeing how you can build solutions with Azure that might comprise some bit of Office 365 functionality with them.

Really?  Ten Years?

Ten years.  This was supposed to be a short stint, a 3-hour tour, just a pitstop until I built my contracting business up.  The job is too good, I have had way too many awesome opportunities, and I have made too many friends to leave.  I love this company, I love the technology, and I love that it has afforded me the opportunity to transform myself several times over during my career.  I have unlocked so many personal achievements (Microsoft Certified Master, speaker at TechEd, SharePoint Conference, Build, and 18 TechReady conferences, VSLive, and a slew of other conferences), I have done so many things thanks to this amazing company.  As I move on from SharePoint towards Azure, I am thankful that I have learned so much about the platform and specifically about architectural decisions when scaling.  I have learned, and truthfully, that is what I love about this job the most… the opportunity to continually learn and grow.

I fly out to Vegas today.  I have to go pack for what is likely my last SharePoint Conference.