Here is a list of talks that I can give at conferences, user groups or private engagements. If you are interested in inviting me to speak at your event or company meeting, please visit the contact page and drop me a note.

Continuous Delivery

One of the main tenets of Agile development is to deliver business value to the production environment early and often. That’s easy enough if you are delivering one small web app, but what if your application is composed of several web apps across multiple tiers with a large database and maybe even a few Windows services and scheduled tasks? Now you need a deployment system that is built to scale and allows you to automate all of these tasks to achieve consistency in your deployments. In this talk I will show you how to deploy a complex application to multiple environments with just the click of a button using TeamCity and Octopus Deploy.

Cross-Platform Mobile Apps with Ionic, AngularJS, and PhoneGap

Are you excited about all the mobile technologies available today but you can’t decide which language to learn? Is your company planning to build a mobile app but you can’t decide which platform to invest in first? The answer is simple: don’t choose! In this session I will show you how you can use the Ionic framework to build an app using just HTML, Javascript and CSS that will run like a native app. Along the way, I’ll point out various performance tips, helper libraries and design patterns to make your app experience awesome on all devices. Your app will be ready for submission to each platform’s app store and will install and run natively all from a single code base!

How to make Agile and Continuous Delivery work at YOUR company: Lessons Learned in the Trenches

Most developers would agree that an Agile development methodology and continuous delivery are way to develop applications. Convincing executives and business stakeholders can be difficult and without real buy-in your process is destined to fail. I’ve implemented these processes in companies ranging from large enterprises to tiny startups. In this session I will share some lessons learned in the trenches about how to get company wide buy in and how to make sure that your process works for the whole company not just the dev team.

Hybrid vs Native: Choosing a Mobile Strategy

In today’s mobile-first world almost every company has realized the need to connect with consumers on mobile devices. Now you, the developer, must figure out how to build it! Objective-C, Java, Xamarin, PhoneGap, Appcelerator, Icenium: there are so many ways to build a mobile app today, how do you choose? In this session I will cover the pros and cons of native app development and HTML5 hybrid app development to help you make the right choice based on the needs of YOUR app.

Awesomify Your Dev Environment [Docker + Vagrant]

"But it works on my machine!" Oh, that terrible feeling when the code that runs like a champ in your dev environment falls flat on its face in production. And you don’t know why.

A missing dependency?
Permission issue?
Wrong version of Node installed?

Don’t worry, there is a very nice solution to this problem: Make the dev environment match the production environment. In this session we’ll take a look at how to run our code in a Docker container to ensure dev and production are identical. We’ll start with an introduction to Docker and how it works and move on to running our NodeJS API in a container. We’ll also take a look at Vagrant for running and building these Docker containers at development time. When you leave this session you have a good understanding of what Docker and Vagrant are, how they make your development and production environments better, and how they work together.