# Tuesday, January 6, 2009

Tomorrow is the first day to the annual CodeMash conference in Sandusky, OH.  Billed as the finest software conference in an indoor water park, CodeMash is a great way to learn about .Net, Java, Ruby, Python and a host of other technologies.

For me, however, CodeMash marks the beginning of a year of community involvement.

In January 2008, I had recently changed jobs.  After almost a decade with the same company, I left to reduce travel and spend more time with my family.  My prior employer was a good company, but it was difficult for me to get involved in the development community because

  1. Constant travel kept me from attending local user groups.
  2. Constant travel made it difficult to meet developers near my home.
  3. The company had a culture with a strong internal community, so most employees didn't need to seek that from the outside.
  4. I didn't know what I was missing.
  5. I didn't know how to get involved in the community.

As it turned out, my new employer was (and is) very active in the software development community - a major reason I was drawn to them.  Several of them were on the board at CodeMash and many spoke at the conference; In fact, employees of my new overlords frequently spoke at, ran and organized conferences and user groups across the Midwest. 

I ended up meeting a lot of my new co-workers for the first time at CodeMash.

I also met a lot of other folks in the development community - many of them from Michigan.  It was a great experience because I had a chance to exchange ideas with a lot of smart people and to see how they share their knowledge.  I'm still humbled by the lengths to which some of these people go to contribute to the community.

Meeting so many bright people who were anxious to share ideas was an inspiration to me.  IN the months following CodeMash, I became far more involved in two local user groups; I developed and delivered talks to a variety of audiences, including 3 different user groups, a conference and a couple Microsoft events; I created an account on Twitter and used this medium to exchange ideas and pleasantries with a number of people; I used LinkedIn to connect with people and, inspired by Jeff Blankenburg's Contribupendence Day, I recommendations with bright people I know.

At this year's CodeMash, I expect to meet more bright people and I expect to be inspired by them.  But I also expect to meet up with those who inspired me last year.

Tuesday, January 6, 2009 9:54:09 PM (GMT Standard Time, UTC+00:00)
# Sunday, November 30, 2008

I often meet people who tell me they wish they could speak in front of a crowd, but they fear doing it because they know they are poor at public speaking.  These people are both right and wrong.

Ten years ago, it would have been unthinkable for me to stand in front of a group of professionals and speak to them about how to do their job better.  But these days, this is a frequent occurrence for me.

Thinking back on those days, I recall that the main thing keeping from even attempting public speaking was the sheer terror of being alone in front of a group.  I knew this at the time, but I also recognized that public speaking was a deficiency in my skill set. 

So I set out to address this deficiency. 

I found opportunities to speak publicly - safe opportunities where the risk of failure was low.  My children were in elementary school, so I volunteered to read aloud to their class.  I volunteered to read aloud at church service.  I put together technical presentations and delivered them at work. 

As my confidence grew, I began to speak at local user groups. 

Eventually, I was comfortable enough to take a job as a trainer, where I had to stand in front of a classroom full of strangers and pretend to be an expert on various topics.

Today, I seize every opportunity to speak to a technical group.  In the past year, I’ve spoken at Day of .Net, DevCares, ArcReady, three different user groups, and at a number of different companies.  I love the rush that comes with delivering a good presentation.  I love when a talk is well received and people tell me so.

Along the way, I learned a few things.

The hardest part of public speaking is overcoming the fear of public speaking.  But much of that fear is unfounded.  We are afraid because we know that our presentation will be less than perfect.  We're right about the imperfection but we're wrong about the importance of perfection. 

Most audiences don't demand perfection.  I've been on both sides of the stage and I think I understand what most people expect from the speaker.

  1. They expect the speaker to be familiar with the material he is presenting.  He should do more than just read PowerPoint slides.
  2. They expect the speaker to communicate the main points of the presentation.
  3. They expect the speaker to be enthusiastic about his topic and convey that enthusiasm to the audience.

If a speaker does those three things, most people will be satisfied.  Notice that perfection is not on the list.  A speaker may have many flaws.  If he uses poor grammar or stumbles over some points and needs to repeat them or shows that he is nervous, the audience will forgive him as long as he delivers some information enthusiastically.

I'm not suggesting that public speakers should ignore any flaws in their presentation style.  If you present a lot, I recommend that you record yourself, critique your performance and strive to improve each time.  But these things aren't catastrophic and shouldn't paralyze us into avoiding speaking.

If you want to get started in public speaking, start with something small and safe, such as a presentation to a group of co-workers.  Choose a topic that you are passionate about.  Allow yourself to make mistakes, but focus on the three main points above.  Record at least the audio of your presentation and listen to it to determine how you can improve it. 

Many technical user groups offer members the opportunity to speak for 5-10 minutes on a topic before or after their meeting.  Check if your local group does this or is interested in starting.  It's a good way to practice presenting in front of strangers.

As you gain more confidence, seek out larger groups to present to.  Your initial nervousness should lessen and you can focus on improving other parts of the presentation.

Good luck.

Sunday, November 30, 2008 2:27:35 PM (GMT Standard Time, UTC+00:00)
# Wednesday, November 26, 2008

Below are the slides from my Organizational Dynamcs presentation at the November 25 Microsoft ArcReady event.

Organizational Dynamics
View SlideShare presentation or Upload your own.
Wednesday, November 26, 2008 3:55:37 PM (GMT Standard Time, UTC+00:00)
# Monday, November 24, 2008

This Tuesday, November 25, I will speak at the ArcReady event at the Microsoft office in Southfield, MI.  My topic is Organizational Dynamics.

Microsoft Architect Evangelist Brian Prince will also be there, delivering a presentation on Mastering the Soft Skills

I'd love for you to attend.  The event runs from 9:00 - 11:45 AM.  It's free but you must register in advance.

You can read details of the event and regsister for it here

Monday, November 24, 2008 11:32:11 AM (GMT Standard Time, UTC+00:00)
# Monday, November 10, 2008

The slides for my MEF presentation are now available on Slideshare.  I have embedded it below.

I delivered this presentation at the ann arbor Day of .Net in October and at a Sogeti grok talk in November.

I just signed up for Slideshare and I like the concept but it doesn't seem to support any of the animations or transitions in my slides.  I may need to go to a video sharing service for more dynamic slideshows.

Managed Extensibility Framework
View SlideShare presentation or Upload your own. (tags: mef .net)

Monday, November 10, 2008 12:23:06 PM (GMT Standard Time, UTC+00:00)
# Thursday, October 23, 2008

Saturday I had the pleasure of speaking at the ann arbor Day of .Net

The event drew presenters and attendees from Michigan, Ohio and Indiana, demonstrating what an impressive software development community we have here in the Midwest.

My friend Nino drove up Friday night to stay at my place and we met other out-of-towners for dinner Friday night.

I delivered a presentation on Microsoft's Managed Extensibility Framework ("MEF").  The presentation was well-received.  The audience had many questions about the technology afterwards and I noticed a few people from the audience posting on Twitter about MEF in the days following the event.

A new job and a tight project deadline kept me from working on my presentation until a couple days prior to the event.  The good news is that I had presented on MEF three times in the past.  The bad news was that the API had changed radically since I developed my original presentation.  So I not only had to expand the presentation to fit the time allotted, I had to completely rewrite my demo to match the current API.  I was up most of Friday night and missed all the morning sessions of the conference to finish on time for my 1PM presentation.   Luckily I finished successfully and the demos went off without a hitch.  

I discovered a blog entry by Brad Abrams that helped immensely.  Brad wrote a set of samples using MEF that I loved for their simplicity.  Don't tell Brad, but I borrowed liberally from his samples to populate one of my demos.

After my presentation, I was able to settle in and enjoy the conference.  I attended two sessions, both in the same room which suited my tired body.  Jennifer Marsman showed a bunch of new features in .Net 3.5.  Next Brian Prince discussed the role of an architect on a project.  I've heard Jennifer and Brian speak many times in the past, so I knew they would be good and I was not disappointed.

I did have time to poke my head into a few presentations long enough to snap a photo or two.  If you heard a clicking coming from the doorway, that was me.

After the event, many of us met at a local watering hole for some food, drink and fellowship.  My new employer Sogeti was kind enough to spring for the food and drinks.  I was well worn down but it was great to reconnect with people who share many of my passions.

I actually volunteered to be something called a "Venue Coordinator" for this event.  But, as this was the fourth time the event was held, the folks at Washtenaw Community College knew everything that needed to be done and delivered to perfection.  I ended up doing no work for this role, so I may volunteer as venue coordinator next year as well.

I took some photos at the event, which you can see here.

I also put together a slideshow with a Warren Zevon soundtrack that you can see and hear below: 

Thursday, October 23, 2008 6:11:42 PM (GMT Daylight Time, UTC+01:00)
# Thursday, September 25, 2008

Saturday October 18 is the next ann arbor Day of .Net.

I'll be delivering a presentation on Microsoft Managed Extensibility Framework.  It should be quite different from the talk I gave last week on this subject because the API recently changed (which means I have some work ahead of me).

This makes the fifth Day of .Net I've attended and the second one at which I've presented.

The other speakers make up an impressive list so I'm excited to be part of this event. 

This event is free but typically fills up so you will need to register in advance if you plan to attend.

Click the image below to get more information and to register.

Day of .Net October 18, 2008 - Be there!

Thursday, September 25, 2008 2:40:28 AM (GMT Daylight Time, UTC+01:00)
# Monday, September 22, 2008

As promised, here are the slides for the presentations I delivered last week in Toledo, Southfield and East Lansing

Microsoft Distributed Cache (aka "Velocity")

Microsoft Managed Extensibility Framework


Monday, September 22, 2008 2:26:18 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, September 17, 2008

Today I start a new job. 

My last employer and I parted ways about a month ago when they decided to close their Michigan office.  I've been extremely busy since then - interviewing; writing articles; preparing and delivering presentations; attending DevLink; and spending time with my family.  I even managed to sneak in a California vacation last month. 

After weeks of interviewing, I ended up with four job offers.  I chose Sogeti primarily because of the people I met.  They have hired a number of very bright developers in Michigan during the last year and the prospect of working with them excites me.  I didn't choose the highest offer or the shortest commute (although these were both factors, of course).  I chose the position that I felt would benefit me the most in the long term.  I tried to see myself a year after working for each company and I believe I chose the one that would enhance me the most professionally.  I relish the idea of learning from people smarter than me.

I'm nervous for the unkown but excited for the challenge.

Wednesday, September 17, 2008 11:57:13 AM (GMT Daylight Time, UTC+01:00)
# Tuesday, September 16, 2008

I will be speaking at three different user groups this week.  If you are in the area, please come out and listen and say 'Hi' afterward.

I will be delivering two presentations each night:

Extending your Application with the Managed Extensibility Framework

Microsoft Managed Extensibility (MEF) framework allows developers to add “hooks” into their application to make it extensible at runtime.  These hooks allow you or a third party to extend your application dynamically in the future.  In this session, we will review the MEF tool set and build an extensible application and then extend that application using MEF.

Using Microsoft Distributed Cache to speed your application

Retrieving data from a disc or a database can be a time-consuming operation.  Data that is accessed frequently can be stored in an in-memory cache, which can speed up its retrieval considerably.  Microsoft Distributed Cache (aka “Velocity”) provides a framework for storing and managing cached data.  In this session, we will discuss how to use this framework in your application and demonstrate some code that implements this framework.

Tuesday, September 16, 2008 5:39:13 PM (GMT Daylight Time, UTC+01:00)