These are the presentations I've developed most recently, plus my personal favourites - the presentations that have been the most fun to develop and present, and which have been most popular with audiences.

Things Senior Developers Know

Senior developers aren't just juniors with more experience, there's a qualitative difference that stems from hard won experience. I interviewed some of the best developers I know and distilled this presentation out of the responses.

Read more »

Becoming a Better Developer

In this talk I pass on some of the things I've learnt about being a better developer. One of my most popular talks, I've given this to multiple audiences, including Ignite NZ 2016.

Read more »

Patterns and Antipatterns of Unit Testing

Building on my experience working on some relatively long lived codebases, this presentation talks about some of the things that work and some that don't when it comes to unit testing.

Read more »

The Pragmatic Programmer

Unusually for a technical book published in 1999, The Pragmatic Programmer remains thoroughly relevant to the modern developer. I present a review of this book, looking at how it is relevant to the modern developer.

Read more »

Semantic and Immutable Types

Semantic Types carry meaning and Immutable Types can't be changed. Both are proven ways to reduce defects and make your code easier to understand.

Read more »

TechEd and Ignite Presentations

TechEd and Ignite are Microsoft's premier annual conferences for developers and IT professionals. In 2011 I made my debut as a TechEd speaker, an experience I thoroughly enjoyed. Here are details of the presentations I gave primarily at TechEd and Ignite.

Single Line Solutions

A presentation I delivered at Microsoft TechEd New Zealand 2012, Single line solutions in .NET has a focus on the little features of .NET, improvements added in each version of the framework to make our lives as developers easier.

Read more »

Turbocharge your productivity with Visual Studio

Visual Studio is much more than a mere syntax highlighting text editor. At Microsoft TechEd New Zealand 2012 I highlighted some of the ways it helps developers get the job done.

Read more »

Lesser Known Design Patterns

Introducing the audience to five design patterns often overlooked by those new to the use of design patterns, this presentation for TechEd 2011 was also delivered to both the Wellington and the Palmerston North .NET User groups.

Read more »

In 2016 gave my Becoming a Better Developer presentation at Ignite, the successor to TechEd

Codecamp Presentations

Codecamps are free single-day technical conferences run by the local community. Here in New Zealand there are annual code camps in Auckland, Wellington and Christchurch. The Auckland codecamp is often timed to coincide with TechEd (now Ignite) These are some of the presentations I've contributed. Most of these were also presented at the Wellington .NET User Group.

Static Analysis for the Win

We all know that the earlier we find a bug, the cheaper it is to fix. Shouldn't we therefore being doing everything we can to identify bugs as early as possible?

Read more »

Continuous Integration

A short presentation giving an introduction to Continuous Integration and some tips for getting started.

Read more »

Effective C#

With each new edition of the C# language (and the associated .Net framework), new features give us new ways to work.

Read more »

Writing Maintainable Code

One core skill that every developer should cultivate is the ability to write Maintainable Code - code that can be easily understood..

Read more »

I've also delivered my talks Becoming a Better Developer and Things Senior Developers Know at multiple codecamps.

.NET User Group Presentations

Since 2009 I have become a regular speaker on a variety of topics. The central theme that drives many of my presentations is that of Developer Maturity - increasing the value of delivered code, ethical conduct and so on. In addition regularly speaking at the Wellington .NET User Group, I have spoken at the Palmerston North .NET User Group, the Christchurch .NET User Group and at Code Camps in Christchurch, Auckland and Wellington.

Maintainable Code

A presentation I delivered to the Wellington .NET Users Group Code Camp 2009, with the overall theme of how can we make our code easier to maintain.

Read more »

Smart Code

Smart Code is about writing code that is obviously correct - code that is faster to write and easier to read. While the presentation covers a number of different techniques, the key focus of the presentation is to work on writing code smarter, not harder.

Read more »

Towards Maintainability

How can we make our code easier to maintain? This presentation explores this with a particular focus on tools and processes we can adopt to further this goal.

Read more »

Towards Supportability

Useful code is going to spend far longer in production than in development. In this presentation the focus is on the long term *care and feeding* of our systems once development is complete.

Read more »

Visual Studio: Working Smarter, not Harder

A collection of hints and tips for working smarter and faster with Visual Studio 2010 and .NET 4.0.

Read more »

Build Automation with NAnt

What's involved in your current project in going from source code in development to working code in production? Start automating your builds. NAnt is one good tool for this automation.

Read more »

Other Audiences

On rare occasions, I've been asked to speak to other groups - sometimes recycling another presentation for a specific audience, sometimes doing something new.

Unit Testing 101

A beginners introduction to unit testing, based on Roy Oscherove's book Art of Unit Testing. Presented to both Software Quality New Zealand and to Statistics New Zealand.

Read more »

FSIS, The Authorised Biography

At the ITx conference, in October 2014, I spoke on the lessons learnt from the development of FSIS at the Reserve Bank of New Zealand.

Read more »

Geek Communication

In June 2014, presenting to the first cohort of the Enspiral Devacademy talking about the nature of "geeks" and how to communicate effectively with them.

Read more »