I am available to speak at conferences, user group meetings or private events. This page contains a list of some of the presentations that I have done before, but I am comfortable speaking on any of the topics covered in my blog.

Schedule me to speak at your event! Use my contact form.

Advanced Regular Expressions in .NET

Duration: 30-60 Minutes Level: 300 - Advanced Keywords: .net framework, language features, regex, regular expressions

Not all regular expression engines are created equal. They all have differences and nuances. The .NET regex engine has some amazing advanced features that make it one of the most powerful implementations in existence today. Not all problems should be solved with regular expressions, but after this talk you will have to think harder to… Read more »

Clean JavaScript: Tame the Unicorn

Duration: 60 mins Level: 200 - Intermediate Keywords: clean code, javascript, pattern, strict mode, tdd, unit testing

Are you promiscuous with your JavaScript code? Strewing functions and commands here and there? Nested closures, manual obfuscation, global functions… all of these ‘natural’ JS conventions seem to be at odds with readable, maintainable code and SOLID development principles. In this session we will take a look at why JS seems to be so difficult… Read more »

Deep Dive into Garbage Collection in .NET

Duration: 60 mins Level: 300 - Advanced Keywords: .net framework, .net internals, c-sharp, garbage collection, memory management

Garbage collection is something you should never need to think about. You write your code, it just does its thing, right? Come and find out! This talk will do a few things for you, including 1) help you to better understand garbage collection in general, one of the defining characteristics of all “managed” languages, 2)… Read more »

Design Pattern Abuse

Duration: 30-60 Minutes Level: 100 - Beginner Keywords: anti-pattern, architecture, clean code, common misunderstandings, pattern

There is a right and wrong way to use design patterns. In my experience, this has been a surprisingly controversial topic. Don’t believe me? Come with your experiences and opinions. I’ll bring mine and we’ll have some great conversation. By the end of the session, we should all have a little more respect for how… Read more »

JavaScript You Never Knew Existed, But Cannot Live Without

Duration: 60, 90 or 120 mins Level: 300 - Advanced Keywords: closure, ecmascript5, javascript, strict mode

If you can answer these questions, you may not need this presentation: If everything is an object, why does “2.toString()” throw an error? What is the value of function(a,b,c){ return a+b+c; }.length? What is hoisting? How can you implement private members in a JS object? Does JS have inheritance? Is there such a thing as… Read more »

Learn Every Programming Language

Duration: 60-120 mins Level: 200 - Intermediate Keywords: functional, language features, object oriented, procedural, programming concepts

There are many reasons to continue learning. Getting a raise, sharpening your existing skills or even finding deeper fulfillment. Whatever your reason, one of the best ways software developers can achieve their goals is to learn new programming languages! This presentation will describe a methodology that has helped me learn more than 60 programming languages… Read more »

Sniffing Out Success: Identifying Smells and Anti-Patterns in Your Code

Duration: 60, 90 or 120 mins Level: 200 - Intermediate Keywords: anti-pattern, c-sharp, code smell, pattern

This presentation reviews some of the most common and dangerous code smells and anti-patterns supported by some debate about why they should be avoided. There are many examples and a lot of interactive discussion to help illustrate the virtues of identifying anti-patterns in our code and how to fix them. Learn cool new terms like… Read more »

Stop Re-Inventing the Wheel: JavaScript Design Patterns

Duration: 60 Level: 200 - Intermediate Keywords: clean code, javascript, pattern

In the last 20 years, software developers have written billions of lines of JavaScript code. Believe it or not, some design patterns have emerged! If that’s the case, then why haven’t we heard more about them? Why don’t we use them? In this talk we will discuss why JavaScript design patterns aren’t more prevalent and… Read more »

Testable JavaScript in Action (Hands-On Workshop)

Duration: 4 or 8 hours Level: 200 - Intermediate Keywords: clean code, javascript, tdd

Do you like the idea of Test-Driven Development (TDD) for the web, but don’t know where to start? Do you think clean code is awesome, but struggle to picture it in your JavaScript? In this 3-hour workshop, we will build a website from the ground up, proving that a test-driven process and clean design principles… Read more »

Troubleshooting Software in Production

Duration: 60 mins Level: 100 - Beginner Keywords: .net framework, disposable, errors and exceptions, memory management, performance, threading, troubleshooting

It is inevitable (hopefully rare) that the software we write does not behave well after it goes into production. In this session we will discuss some proactive and reactive methods and tools that can be used to troubleshoot software issues when you do not have the same luxuries normally afforded to troubleshooting during development or… Read more »