Well it’s that time of year again.  Time to write the performance review.  While working out at the gym this morning I had a thought… What if I shared my self-evaluation performance review with you?  After all, you are very important to my success and what you think matters… a lot.  So here we go, here is my FY2010 self-evaluation (WARNING: this is going to sound like boastful arrogance but what can you say? It is a performance review)

I joined the AppFabric Developer Platform team in October after having been the technical evangelist for WF/WCF/AppFabric for a couple of years.  I am now in my 12th year at Microsoft.

Events

PDC2010

I got the job of revealing in public for the first time our plans for the next release in my PDC10 session Windows Workflow Foundation Futures.  This session went over really well and everything worked perfectly.

Tech-Ed Europe 2010

Just a few weeks later I was off to Berlin for Tech-Ed Europe 2010 where I did three sessions Using Workflow and Windows Server AppFabric in your Applications, WCF: The Unified Services Programming Model for SOAP, REST, Data and RIA Communication and a repeat of the Windows Workflow Foundation Futures.  The first two went great and the repeat of Workflow Foundation Futures was a complete disaster.  I got lost in the lower levels of Hades as I tried to find the room where my session was and got there late.  (I should have left much earlier) and then to add insult to injury the demo gods poured out their wrath as demo after demo failed inexplicably.  Experienced presenters know better than to fall into these traps and I take full responsibility for this epic fail.  Fortunately we had a good video from the PDC10 session so hopefully everyone has long since forgotten this one.

Tech-Ed North America 2011

The final event of the year was Tech-Ed North America where I presented Building State Machine Workflows with Windows Workflow Foundation.  The session went great the eval scores were terrific and my demos all worked perfectly until my laptop hosed up but I was done with the main demo anyway.

225241_10150187476109375_694379374_6591398_6013741_n

For events and presentations I’d have to say aside from the one disaster I think I had a pretty good year.

Code Libraries / Samples / Labs

One thing I love to do is to learn knew things.  I am a Kinesthetic learner.  That means I love to learn by doing.  You can talk to me all day long but I really don’t understand you (or maybe believe you) until I prove it and write some code.  Funny thing is that I have found things (even in our own product) that nobody else seemed to find because of this.

Microsoft.Activities / Microsoft.Activities.UnitTesting

Of all things I’ve done this year perhaps this is my greatest achievement.  And the funny thing is that nobody asked me to do this work.  Granted, when you are employed by someone you typically do only what you are asked to do.  I am somewhat of a rebel so I do what I think needs to be done even if nobody is asking me to do it.  Sometimes this gets me into trouble but my instincts were that Workflow needed better support for unit testing and the ability to stub workflows.  I started creating this library back when I was an evangelist but I took it out to CodePlex and over the next few months kept revising it over and over again.

Recently I decided that we needed to figure out how to deliver workflow activity libraries via NuGet.  I asked around but nobody was able to devote any time and effort to the project so I spent 3 days of struggling with PowerShell and the arcane Visual Studio Extensibility API until I succeeded in delivering these projects as NuGet packages you can read about how I did it here.

Task API / Workflow Episodes

I found when I was working with WorkflowApplication that I wanted something from the API that just wasn’t there.  I wanted an API that would allow me to run an episode of work.  I also wanted to be able to run that episode of work synchronously or asynchronously using a very simple Task API.  I created a design proposal and got feedback from some people inside and outside of Microsoft.  Then I wrote the code and shipped it in Microsoft.Activities.  I don’t know if anyone uses it or not but it is so cool and simple I just love it.  Look at this code.

// Using Microsoft.Activities extension
// Run until the host is waiting for a bookmark named "State2"
host.RunEpisode("State2");

The extension method RunEpisode will run the workflow until it completes, aborts times out or goes idle with a bookmark named State2.  That saves a lot of code!

Hands On Labs

Being Kinesthetic I love hands on labs.  I think they are the best way to learn any technology so I’ve invested quite a bit in building better hands on labs.  I pay a lot of attention to detail in the lab code and try to write the best possible code in all parts of the labs including parts that have nothing to do with WF or WCF.  I was the first to pioneer hands on labs delivered right inside of Visual Studio using the Feature Builder power tool in the Hands On Lab: Introduction to Windows Workflow Foundation (WF4).  And I also included videos for each exercise to help you if you get stuck.

I also delivered a the Windows Workflow Foundation (WF4) - Introduction to State Machine Hands On Lab which includes unit tests that verify each exercise as you go (another first as far as I know).  I spent a great deal of time to correctly architect the MVVM pattern with a WPF client app in the lab and the other day one of the lab testers wrote to me

I don't know who wrote the WPF stuff, but whoever it was really knew what they were doing. I love all of the code returning Task<T>, etc. I wish I saw more code of this quality elsewhere online... hopefully people are looking at these and learning from them.

Guess who wrote that code?  Me!  (I know I’m sounding quite arrogant here but I worked hard on that code!)

Sample Code

I’ve built a bunch of samples and I deploy them on the new MSDN Code Gallery (see my samples).  Among my favorites here are the WCF WebHttp REST Entity Service, Windows Server AppFabric / Workflow Services Demo - Contoso HR and  Windows Workflow Foundation (WF4) - Exploring State Machine .

endpoint.tv / AppFabric.tv / blog

I started podcasting for Microsoft in January of 2005 with the patterns & practices live podcast followed by ARCast, ARCast.tv, endpoint.tv and now AppFabric.tv.  This year I’ve released 83 episodes of endpoint.tv with over 1.3 million views (thanks for watching!).

I used to be a lousy blogger.  Now I’m happy to say that I love to blog and with 69 blog posts this year I’ve moved up into the top 200 bloggers on MSDN.  Given that I blog about Workflow and WCF and not something more widely used like ASP.NET I’d say that is pretty good.

Areas for Improvement

I have to say I feel pretty good about the past year.  Of course I can always improve on some things.  I’ve been told my biggest areas of improvement have to do with doing a better job of helping my team internally.  Of course there isn’t much I can share with you about that. 

I' am curious to hear from you.  What can I do to improve in FY11?  How can I help you more?  Be more effective?

This blog post might be my worst idea ever, on the other hand it could be a really great idea.  I suppose the end result is up to you.  Yes I work for Microsoft but ultimately you are my customer so you could say I work for you.  At the end of the day if you use our products and if you find the samples, labs, code, blogs and videos that I create helpful then I feel pretty good about that.

Ron Jacobs
http://blogs.msdn.com/rjacobs
Twitter: @ronljacobs http://twitter.com/ronljacobs


Blog Post by: Ron Jacobs