It is almost nine years since I first set foot in the US. It was through that experience that I rediscovered the joy in challenging myself and embracing change, something I had not so strongly felt since I first started singing in a band. So, while I had faced challenges before as a result of my own decisions, none had been bigger. Even though the opportunity had been provided by someone else, it had been my choice to take it and to see it through1.

It took me a while to settle in to my new home (or even to acknowledge it as home), but I eventually joined the developer community in Ann Arbor and the wider mid-west region. The interaction with other developers has continued to provide challenging opportunities and encourage positive change within my career, as well other aspects of my life. It was through the basic act of attending one local Ann Arbor .NET Developers Group meeting and the people I met there that I learned about CodeMash.


CodeMash v2.0.1.4 logo
The CodeMash conference – a community-organized event held annually in Sandusky, Ohio – never fails to provide unique experiences or challenges. My first CodeMash, CodeMash v2.0.1.2 was unique because I had never attended a developer conference before (or any other conference), and CodeMash v2.0.1.3 provided a completely new experience when, after attending a fantastic workshop on public speaking, I went on to win the PechaKucha contest.

This year, I was guaranteed yet another unique experience when I was accepted to be a speaker. I am extremely grateful to friends, mentors and others for their support and encouragement leading up to speaking at CodeMash v2.0.14. It was a wonderful honor that I thoroughly enjoyed, and while it changed my CodeMash experience with the added anxiety of speaking and subsequent release when my session ended, I would definitely do it again if the chance arose.

To those that attended my talk on AngularJS for XAML developers, thank you. I  hope that you found it valuable. If you were there or if you have an interest, you can find my slide deck and code on GitHub (Deck|Code).

I am very grateful to the volunteers that organize and run CodeMash each year, as well as the many friends and mentors that have guided my own CodeMash experiences and the many other experiences within the developer community. Without these people, I would not have had such amazing opportunities, nor would I have learned how important it is to challenge myself and strive for new experiences. It is always uncomfortable to embrace change, but the rewards of doing so are often worth the pain.

To close, I encourage you to challenge yourself this year. Make sure to let me know in the comments below how you will challenge yourself and perhaps we can follow-up at the end of the year.

  1. Of course, there were many times in the weeks between being offered the position and setting foot in the US when I considered changing my mind, including just after the plane doors closed 


I cannot praise the board members of CodeMash (@codemash) enough; this year was yet another excellent conference. Rather than focus on all the things I did at CodeMash this year, I want to focus on a single thread that made CodeMash special for me. I realise I'm a little late getting round to this considering the conference was in January, but I want to tell you about me winning the Pecha Kucha contest of CodeMash

Public Speaking 101

On the first day, I decided I was going to attend the Choose Your Own Application precompiler1 session in the afternoon, but I was unsure of how to spend my morning. After perusing the other precompiler sessions, I decided to check out Leon Gersing's (@rubybuddha) workshop on public speaking. Though I fully intended to ditch this class midway through to continue my day with Brian Genisio (@BrianGenisio) and Dennis Burton (@dburton), Leon's workshop was so compelling and enjoyable, I couldn't do it. His background in theatre coupled with his patient, consistent and insightful coaching style ensured that attendees became comfortable with speaking (and sometimes singing) in front of one another. Though I attended some great sessions, had some great conversations and ate some awesome bacon, this workshop was my favourite experience of CodeMash. I doubt there were few, if any people who left that workshop not intending to do more public speaking at some point.

During the class we were tasked with putting together a five minute presentation about anything at all and delivering it to the class for critique about our presentation style and habits. My choice of in-class talk had been a toss-up between something about building a raised bed and something about British slang. Given the potentially offensive minefield of the latter and the fact that I already had a blog of material about the former, I babbled about DIY for five minutes in class and gained an disproportionate level of confidence about my abilities in public speaking. Running off the high I had gained from delivering an impromptu five minute gardening lesson, I decided to enter the Pecha Kucha contest with a presentation on British slang. After all, why offend a small room of forgiving workshop attendees when you can offend a much larger room of conference attendees?

Pecha Kucha

Pecha Kucha is a presentation contest where you get 20 slides that auto-advance at 20 seconds per slide. It's a battle of timing, content and delivery. For those who attended last year, you may remember the Urinal Rules Kata slide deck from Mel Grubb, Jon Skeet's Coding in the Style of Glee or Leon Gersing and his Pecha Kucha on Love. I felt that all three of these had set the bar pretty high, so I stayed up till 4:00 AM on Wednesday night agonising over what to include in my slides. I had decided to focus on areas of British slang that might be common pitfalls for Americans. I also wanted to avoid anything that might be directly offensive to the non-British audience (my apologies to Jon Skeet and other Brits that were in attendance). By 4:00 AM, with my slide deck almost complete, I fell asleep.

The next morning, I submitted my presentation title, "The Dog's Bollocks", to the contest so that  conference attendees could vote. The plan was that presentations with the highest number of votes would get to present in the main hall just after dinner. I checked my tally over the course of the morning and noted that I was not getting many votes. This was probably because my title flew in the face of what we had discussed in class; titles should give an indication as to the subject of the talk.

As the day wore on, my late night caught up with me and  I decided to go for a nap sometime around midday. While I was asleep, my friends pimped my talk all over the Kalahari resort, so I awoke a few hours later to my phone buzzing with text messages to let me know I was presenting in the contest. I had less than an hour to finish my presentation, but with a few edits and some new slides, I did so. Once the deck was submitted and at the insistence of my friend, I performed a couple of rehearsals in our hotel room as he grinned back at me with the most disconcerting of smiles and then we headed off for dinner and the main event.

The Main Event

After dessert, all the contestants gathered near the stage and determined in what order we would present. I have no idea what that order was, just that I wasn't first, I wasn't last and Jon Skeet was after me (I know this because he cleverly borrowed a bit of my talk to end his own, for which I was really flattered). All the talks varied wildly in both content and delivery, leaving a somewhat difficult choice for the audience to make when voting. In the end, it was determined that I and Jessica Kerr (@jessitron) were the most popular entries and so, we had to contend with the battle deck in order to determine a winner.

The battle deck consisted of ten slides, chosen by Brian Prince (@brianhprince), that neither I nor Jessica saw before presenting them. In the end, my battle deck performance swayed the audience just enough and I won the contest. I thanked Leon Gersing, my public speaking coach of two days earlier, several times after I won as I would not have done so if I had not attended his workshop and nor if he had been participating instead of compering.

Ocular Proof

I've included videos of my main talk and my battle deck performance below. I recommend that you hunt down videos of the other performances if you can as there were some great ones (I'll add any that I find or that you send me).

Also, you may note (as others have) that "Pigs" is slang to both the British and Americans. Due to last minute edits, this one slipped through. What can I say? I was tired.

  1. CodeMash lingo for the first two days of the conference. 


It's like riding a unicorn over a double rainbow. CodeMash. All the way across the sky.
One of many CodeMash slogans on display

I went to CodeMash this year. I was one of the 1200 (or 1300 and something, after speakers and other people were counted). It was my first time attending this community-organised conference and I had a thoroughly enjoyable time. I would show you pictures but I neglected to take any as I was having far too good a time to remember that I'd brought a camera.

My wife and I1 arrived at the venue, the Kalahari Waterpark and Resort on Tuesday, the day before everything started with Wednesday's pre-compiler. Tuesday evening was spent meeting fellow mashers in the two resort bars, but ultimately led to a rocky start to Wednesday (breakfast was scheduled for 7am but I had forgotten to schedule bedtime accordingly).

My improvisation when the coffee cups ran out
My improvisation when the coffee cups ran out

At every meal during CodeMash, I enjoyed great food, nerdy conversation and copious quantities of caffeinated beverages with some fascinating people. Most of the time I dined with people I had never met, being sure to introduce myself and making a concerted effort to remember names (though, alas, I forgot a few). Although the pre-compiler day was overshadowed by a number of beverage-related issues varying from no coffee to no Mountain Dew to lots of coffee but no coffee cups (I improvised2), the remainder of the conference catering seemed to go without a hitch. This was in no doubt thanks to the CodeMash organizers and the amazing Kalahari staff.

Every evening after the sessions ended, a copious number of tempting options were available from the game rooms where D&D, poker and various other pastimes were enjoyed to Open Spaces3, from the bars, restaurants and water park to panel discussions. Attendees and CodeMash organizers alike would advertise a plethora of options to while away the hours until sleep was the only option. I was so exhausted after CodeMash that I slept for nearly a day when I got home.

What about the sessions themselves?


Going Independent

I'm not going independent, at least not anytime soon, but considering I have worked with many who are self-employed and might consider it for myself one day, it seemed prudent to learn more. Michael Eaton (@mjeaton) was the speaker for this session. He drew from personal experience and the experiences of those he knew (some of whom provided their own anecdotes) to outline the common practices and pitfalls that beset anyone trying to go it alone.

Michael's conversational style provided a great start to the conference and the information presented gave me a fresh perspective on the overhead, sales and productivity concerns of a business owner (apparently, if you manage 30 billable hours per week, you're doing well).  Even for someone under full-time employment like me, it provided useful details that will help me to continue supporting those who employ me.

HTML5 is here, and the Web will never be the same

Wednesday afternoon was spent with Brandon Sartrom (@BrandonSatrom) and Clark Sell (@csell5) learning all about markup, behavior and presentation with HTML5, javascript and CSS3. I am not a web developer, my acquaintance with HTML and its supporting technologies would probably make a professional sob, but this lab on the latest and greatest was fantastic. Each area of the HTML5 offering was presented with hands-on labs to sink ones teeth into. There was so much to cover that eventually time fell short, but I still have the labs on my desktop and be assured, I intend to complete them. This was a great stuff and the session so popular that we had to move rooms about an hour in. Apparently, this web stuff is a big deal. Who knew?


Unlike the pre-compiler format of half-day and full-day workshops and discussions, the remainder of the conference was split into concurrent hour long presentations, open spaces, gaming and other activities. The sheer number of distractions was sometimes overwhelming, making the act of choosing a distraction in itself to the point where a couple of times, I gave up and just took an hour long break.

On Thursday, we had our first keynote speech, Rethinking Enterprise, while munching away at the remnants of breakfast. The speaker, Ted Neward, had an energy that made sure everyone was awake. Although Ted's presentation style was ultimately controversial, I felt the points he made were valid, well thought out and thoroughly enjoyable to learn.

From the keynote, I swiftly headed to see the popular double-act of Jon Skeet(@jonskeet) and Bill Wagner (@billwagner) presenting C# async inside and out. It was a packed out double session. Some only turned up for the much more complicated second session and I'm sure probably left very confused and scared of both C# and async. However, I loved it. Not only did I witness Jon Skeet's passion for C# first hand, but I also learned a lot (a useful mutable struct?).

After the Skeet/Wagner show, I took a break to check on my wife and make sure she was having a good time. I actually had to persuade her to make an appointment in the spa as she was perfectly happy eating homemade gumbo and watching bad daytime TV in the hotel room. Once I'd convinced her to spend some money in the spa (what did I do?!), I headed back down to learn about usability testing with Carol Smith (@carologic), attended a vendor session from Robert Half Technology, and then headed to David Giard (@DavidGiard) and his presentation on data visualization.

I have to say that while I enjoyed all the talks and workshops I attended, David Giard's presentation on data visualization was by far in the top two sessions I attended. Not only did Mr. Giard give a great talk while very much under the weather, but the examples of good and bad data visualizations he presented were useful and clear. I came away with a new found appreciation for graphs and charts, and a new found skepticism of those who create them and their motives.

Thursday was rounded out by dinner, the hilarious Pecha Kucha competition, live music, impromptu free beer in one of the hotel rooms and a late night water park party just for CodeMash attendees. At least, those were the things I attended; as always there was far more going on elsewhere in the resort if one was so inclined to attend.


Friday started slow. The night had once again taken it's toll but breakfast was thankfully an hour later, which helped. I skipped the first session, opting instead to wander the vendor stands and show my appreciation for their support.

My first session of the day was Dealing with Information Overload delivered by Scott Hanselman. I really wanted to catch one of Scott's two presentations as I had seen him present at the San Francisco StackOverflow DevDays and really enjoyed his presentation style. Just as at DevDays in 2009, Scott gave a very enjoyable presentation packed with useful, necessary tips, tricks and lessons in how to deal with information and stay productive. I have already started to fold some of the techniques into my working day and intend to continue. Along with the Data Visualization presentation from Thursday, Dealing with Information Overload was in my top two talks of the conference.

Lunch followed with our second keynote speech, How We Got Here, And What To Do About It presented by Barry Hawkins. The keynote was excellent and the presenter only went up in my estimation when we spoke and I learned he was both an anglophile and a thoroughly nice chap4.

As lunch digested, I rounded out the conference with some C# Stunt Coding from Bill Wagner (and a little Jon Skeet when he got up to refactor Bill's code; thoroughly entertaining) and some applied F# from the crazy-shirted Gary Short (@garyshort). Both of these talks were wonderful and gave me some inspiration for some crazy and not so crazy things to try in the near future (both code- and fashion-based).

Friday night's raffle was entertaining, but I didn't win so I'm not saying anymore about it. I'm not bitter, but seriously, didn't win. I did, however, win a book from O'Reilly (@oreillymedia) just for singing a couple of lines to a song. O'Reilly had a large collection of books with them on their vendor booth and gave them all away to anyone willing to sing on video. I haven't seen that video surface yet, but I'm sure it will. Still, I now have a spanking new copy of Programming Android and they're not getting it back if they decide they don't like my pipes (but seriously, thanks for the book).

The End

Jafar hamming it up for the camera while the wife and I pose
Jafar hamming it up for the camera while the wife and I pose

And that was that. There was more partying and water park fun but the mashing was over. My wife and I enjoyed the remainder of our stay, including a few photos with Jafar, the Bengal tiger and then travelled home to pass out and catch up on sleep.

Congratulations to all who helped put this together and a hearty thanks to all the folks (speakers, staff, attendees and Jafar) that made my CodeMash experience. It was such a wonderful event to have been a part of and I hope I am fortunate enough to get a ticket next year.

  1. Yes, I took the missus. While I was learning and networking and totally not eating too much bacon or drinking, she was cooing at a Bengal Tiger cub or doing spa type things. 

  2. Okay, so I took at least one photo. 

  3. Open Spaces are free-form discussions on topics suggested by attendees where an open exchange of ideas, experiences, tips and other things can occur. 

  4. My assessment and conclusion of the latter was in no way swayed by learning the former…I swear.