Talks

Here is a list of the talks I have given, either at user groups or conferences. The newest ones are at the top. If you've attended one of my talks or have gone through the slides and have any questions, feel free to e-mail me.

Failing at Scale

Joined.in Comments

Given on September 16th, 2016 at PNWPHP 2016

Everyone wants their little application to grow up to be a strong, well-rounded, and useful set of code. We organize, we unit test, we market research, and then we push to production. All is good in the world until now you need two web servers, and multiple back-end servers, and more DB servers than you have fingers. Your code starts to act weird, there are errors in some places but not others. Fires, floods, and locusts all start to appear, and how do you manage it? Let's look at some real-life examples, along with some tools and tips, for managing those fires as your application grows.

Docker For PHP Developers

Joined.in Comments

Given on September 15th, 2016 at PNWPHP 2016

Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We’ll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.

Deploying Containers with Rancher

Joined.in Comments

Given on July 29th, 2016 at Day Camp 4 Developers

You have talked your development team and relevant people into using containers, and everything is going great. Now you need to deploy your app, but how do you do it? How do you manage multiple environments like Staging and Production? How do you get your container images where they need to go? Do you need a full stack of orchestration like Mesos or Kubernetes? Each application and deployment situation is different, but one tool can help small and medium-sized applications manage all these containers floating around. Follow along as we look at Rancher, a free and open source management software for your containers, which will provide you not only with server and container management, but deployment options as well.

WTF Is Rancher?

Joined.in Comments

Given on July 28th, 2016 at NomadPHP

If you have been working with Docker for a while, there are many different technologies you can use to deploy your containers. Many of them are quite powerful, but very hard to get set up. We’ll take a quick look at Rancher, one of the quickest and easiest solutions you can use to get up and deploy your containers across any number of hosts.

Docker For PHP Developers

Joined.in Comments

Given on April 21st, 2016 at NomadPHP

Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We’ll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.

Docker For Developers

Joined.in Comments

Given on April 7th, 2016 at Lone Star PHP 2016

Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We'll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.

Zend Expressive in 15 Minutes

Joined.in Comments

Given on March 24th, 2016 at NomadPHP

Micro-frameworks and routing frameworks are nothing new to the PHP ecosystem, but with the advent of PSR7 and the rise of middleware new doors have opened up. Zend Expressive, built using components of various libraries both of Zend and third party, is a new middleware-based framework that takes PSR-7 to heart. We’ll go through what PSR-7 and middleware are, how Zend Expressive is leveraging them, and how you can quickly build not only APIs but full micro-framework-based application.

Docker For Developers

Joined.in Comments

Given on February 4th, 2016 at SunshinePHP 2016

Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We'll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.

Single Page Apps with Drupal 8

Joined.in Comments

Given on November 20th, 2015 at php[world] 2015

It's no denying that rich Javascript applications (sometimes called single-page applications) are a big thing, but what if you want to leverage Drupal on the backend or have an existing site? Tools like Angular.JS and Backbone are great when you have an API, and with Drupal 8, APIs will be first-class citizens. I'll explore the parts of a single-page application and how to integrate it into either an existing or a new Drupal site, as well as the pitfalls that one must watch out for.

Migrating Modules to Drupal 8

Joined.in Comments

Given on November 19th, 2015 at php[world] 2015

Drupal developers have spent years writing Drupal 7 modules for their clients, and with Drupal 8 looming on the horizon, many of these will need to be upgraded so that clients can be upgraded. We'll go through step-by-step upgrading of a real-life module from Drupal.org from Drupal 7 to 8, and we will also introduce the new things developers will need to know.

OOP Is More Than Cars and Dogs

Joined.in Comments

Given on November 14th, 2015 at Madison PHP Conference 2015

When developers are introduced to Object Oriented Programming, one of the first things that happens is that they are taught that nouns turn into objects, verbs into methods, and Dog is a subclass of Animal. OOP is more than just turning things into classes and objects and showing that both Boats and Cars have motors, and that Dogs and Cats both speak(). Let's look at OOP in real world settings and go beyond cars and dogs, and see how to use Object Oriented Programming properly in PHP. Traits, Composition, Inheritance, none of it is off limits!

Single Page Apps with Drupal 7

Joined.in Comments

Given on October 21st, 2015 at ZendCon 2015

It's no denying that rich Javascript applications (sometimes called One Page Applications) are a big thing, but what if you want to leverage Drupal on the backend, or have an existing site? Tools like Angular.JS and EmberJS are great when you have an API, but Drupal 7 doesn't really have an API layer. I'll explore the parts of a one page application and how to integrate it into either an existing or a new Drupal site, and the pitfalls that one must watch out for.

Into the ZF2 Service Manager

Joined.in Comments

Given on October 20th, 2015 at Zendcon 2015

One of the most prolific parts of Zend Framework 2 is the Service Manager. Its many nooks and crannies dictate much of what happens inside our Zend Framework 2 applications and is incredibly powerful. Let's look into exactly what the Service Manager allows us to do and how we can take advantage of it for cleaner, and faster, code.

Getting Started with Aura

Joined.in Comments

Given on June 18th, 2015 at NomadPHP

PHP has come a long way since it's inception. What started out as an ecosystem of functions passed around on the internet eventually turned into a land of frameworks. These first frameworks were saddled with the problem of size, where if you wanted to use part of Zend Framework 1, for example, in your app, you pulled in the entire thing. Those days are gone now and frameworks are increasingly decoupled, but none so much as the Aura project. We'll dive into what Aura is and how we can use it as standalone libraries as well as for full stack development.

OOP Is More Than Cars and Dogs

Joined.in Comments

Given on May 20th, 2015 at php[tek] 2015

When developers are introduced to Object Oriented Programming, one of the first things that happens is that they are taught that nouns turn into objects, verbs into methods, and Dog is a subclass of Animal. OOP is more than just turning things into classes and objects and showing that both Boats and Cars have motors, and that Dogs and Cats both speak(). Let's look at OOP in real world settings and go beyond cars and dogs, and see how to use Object Oriented Programming properly in PHP. Traits, Composition, Inheritance, none of it is off limits!

OOP Is More Than Cars and Dogs

Joined.in Comments

Given on April 17th, 2015 at Lone Star PHP 2015

When developers are introduced to Object Oriented Programming, one of the first things that happens is that they are taught that nouns turn into objects, verbs into methods, and Dog is a subclass of Animal. OOP is more than just turning things into classes and objects and showing that both Boats and Cars have motors, and that Dogs and Cats both speak(). Let's look at OOP in real world settings and go beyond cars and dogs, and see how to use Object Oriented Programming properly in PHP. Traits, Composition, Inheritance, none of it is off limits!

Your Inner Sysadmin

Joined.in Comments

Given on April 16th, 2015 at Lone Star PHP 2015

One thing that most programmers do not take the time to understand is the servers that their application lives on. Most know a smattering of Apache configs, PHP configs, and basic information about the OS. This talk will deal with looking at tools that can help you quickly set up a server and how it can help you be a better developer. We'll look at tools like puppet for server management, OSSEC for log management, different command line tools, and nagios/monit for system monitoring.

Licensing And You

Joined.in Comments

Given on March 15th, 2015 at MidwestPHP 2015

As web developers, we all end up coming in contact with software we didn't write, be it to use in our own projects or to modify in some way to satisfy a need for ourselves or a client. We might even be distrubuting a library or an application. What we may not realize is that licensing is a very important idea which guides what we can and cannot use in our own software. We'll navigate the murky waters of Open Source Licensing and copyright as it relates to developers.

Your Inner Sysadmin

Joined.in Comments

Given on March 14th, 2015 at MidwestPHP 2015

One thing that most programmers do not take the time to understand is the servers that their application lives on. Most know a smattering of Apache configs, PHP configs, and basic information about the OS. This talk will deal with looking at tools that can help you quickly set up a server and how it can help you be a better developer. We'll look at tools like puppet for server management, OSSEC for log management, different command line tools, and nagios/monit for system monitoring.

Dockerize All The Things!

Joined.in Comments

Given on February 7th, 2015 at SunshinePHP 2015

Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We'll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.

Your Inner Sysadmin

Joined.in Comments

Given on February 5th, 2015 at SunshinePHP 2015

One thing that most programmers do not take the time to understand is the servers that their application lives on. Most know a smattering of Apache configs, PHP configs, and basic information about the OS. This talk will deal with looking at tools that can help you quickly set up a server and how it can help you be a better developer. We'll look at tools like puppet for server management, OSSEC for log management, different command line tools, and nagios/monit for system monitoring.

Static Sites with Sculpin

Joined.in Comments

Given on November 21st, 2014 at NomadPHP

We can build anything we want with PHP, be it a small little blog for ourselves to a giant world-spanning social media network. There are times though that we do not need all of the dynamic goodness that PHP brings and we just need a site that sits there. Sculpin is a static site generator that leverages the power of PHP and Twig to allow developers to quickly generate flat HTML sites, but completely automate the process of stitching all of that HTML together. We'll quickly run through getting started with Sculpin and the power that it provides.

Single Page Apps in Drupal

Joined.in Comments

Given on November 12th, 2014 at php[world] 2014

It's no denying that rich Javascript applications (sometimes called One Page Applications) are a big thing, but what if you want to leverage Drupal on the backend, or have an existing site? Tools like Angular.JS and EmberJS are great when you have an API, but Drupal 7 doesn't really have an API layer. I'll explore the parts of a one page application and how to integrate it into either an existing or a new Drupal site, and the pitfalls that one must watch out for.

Modernize Your Drupal Development

Joined.in Comments

Given on November 11th, 2014 at php[world] 2014

Drupal is a great system that allows you to just throw the core up on a shared host and start working. You can build modules and throw them up, and stuff works! But what happens on your long term projects, or projects where you have multiple people? How do you use version control in such a system? Or manage releases? Or updates? Drupal has many different tools to help with things like this, but it takes some foreknowledge and setup to get things working smoothly. Let's get our Drupal sites out of "production only" work and into proper development lifecycles.

Complex Sites with Silex

Joined.in Comments

Given on October 29th, 2014 at Zendcon 2014

Everyone knows that Silex is a great microframework for APIs and small sites, but what do you do when you want to build a large site, or your little tiny site has grown up? Silex has many different ways to let you build larger, complex websites that might still be too small for Symfony, but have outgrown the single page app it once was. We'll look at what Silex offers us, and different ways we can structure our site.

Don't Trust Your Users

Joined.in Comments

Given on October 28th, 2014 at Zendcon 2014

Some of the most common vulnerabilities in web applications are caused by applications not properly inspecting the data that users send in. PHP has an entire suite of tools to help inspected, filter, and sanitize data that comes from the user and other outside parties. Using built-in methods and extra tools you can protect your app from harmful data and users.

Licensing and You

Joined.in Comments

Given on September 23rd, 2014 at NomadPHP - September 2014

No matter how much work developers do in the open source world, they are confronted by a myriad of different licenses for things they want to use. GPL, MIT, BSD, Apache… these are just a few of the different licenses PHP devs deal with. What is the difference, and if you release your own code, which should you use? In 10 minutes we’ll give a high level overview of licensing, how it works, what to watch for, and the proper ways to use other people’s code.

Your Inner Sysadmin

Joined.in Comments

Given on September 13th, 2014 at MadisonPHP 2014

One thing that most programmers do not take the time to understand is the servers that their application lives on. Most know a smattering of Apache configs, PHP configs, and basic information about the OS. This talk will deal with looking at tools that can help you quickly set up a server and how it can help you be a better developer. We'll look at tools like puppet for server management, OSSEC for log management, different command line tools, and nagios/monit for system monitoring.

Your Inner Sysadmin

Joined.in Comments

Given on April 25th, 2014 at LonestarPHP 2014

One thing that most programmers do not take the time to understand is the servers that their application lives on. Most know a smattering of Apache configs, PHP configs, and basic information about the OS. This talk will deal with looking at tools that can help you quickly set up a server and how it can help you be a better developer. We'll look at tools like puppet for server management, OSSEC for log management, different command line tools, and nagios/monit for system monitoring.

Don't Trust Your Users

Joined.in Comments

Video

Given on February 8th, 2014 at SunshinePHP 2014

Some of the most common vulnerabilities in web applications are caused by applications not properly inspecting the data that users send in. PHP has an entire suite of tools to help inspected, filter, and sanitize data that comes from the user and other outside parties. Using built-in methods and extra tools you can protect your app from harmful data and users.

Enterprise Development on a Shoestring Budget

Joined.in Comments

Video

Given on September 9th, 2013 at Zendcon 2013

No matter what language you use, developing code is the same ñec, code, deploy, maintain. The "Big Boys" have teams to manage each task, but what happens when you don't? I.ll go over some different methods for maintaining internal and external programs that are cheap, open source, and make your life easier. PHP has a plethora of tools for us to use to effectively code and maintain our projects; and the best part is that they are generally inexpensive or even free. The trick is finding and using these tools effectively in a workflow that the developer can use.

PaaSing Your Code Around

Joined.in Comments

Given on September 8th, 2013 at Zendcon 2013

PaaS (Platform as a Service) is hot topic in the PHP world, with many different providers vying to run your code. I'll look at what it takes to get your code to run on the common PaaS services, and compare and contrast them on their offerings and performance

Drupal Development Tips

Joined.in Comments

Given on May 16th, 2013 at php[tek] 2013

Any PHP developer can develop modules for Drupal, but like any system newcomers, will have a learning curve that must be overcome before the system makes sense. With Drupal playing the role of both a CMS as well as a generic application framework, you have the power to build complex applications as well as small modularized code. We'll look at tools and practices to make Drupal development easier like the devel module, SimpleTest unit testing, and moving components back and forth with the Features module.

PHP and Node.js Together

Joined.in Comments

Given on May 15th, 2013 at php[tek] 2013

PHP isn't the only server side language that PHP developers are familiar with. You can utilize your Javascript knowledge to build server-side Javascript code using Node.js. Node.js can help bring real-time interactive features to your website or run background tasks along side your existing PHP code. We'll go over a bit of Node.js and the server side bits and then how to integrate it into your application.

Drupal Development Tips

Joined.in Comments

Given on March 3rd, 2013 at MidwestPHP 2013

Any PHP developer can develop modules for Drupal, but like any system newcomers, will have a learning curve that must be overcome before the system makes sense. With Drupal playing the role of both a CMS as well as a generic application framework, you have the power to build complex applications as well as small modularized code. We'll look at tools and practices to make Drupal development easier like the devel module, SimpleTest unit testing, and moving components back and forth with the Features module.

A Tale of Two Apps

Given on February 13th, 2013 at Zend Webinar

At one point in time, I was the technical lead on two different projects. One was an application we were purchasing from a vendor that was being written in Java (and had previously been written in .NET by another vendor, who then switched to Java, and then abandoned the project), and one was being built in-house with PHP on the IBM i. They were the same product for two different product lines that we offered, but time constraints forced us to build two products in tandem. In the end, the PHP application was completed and delivered to end-users in about 7 months from start to finish, while the former project languished. We'll compare the two projects in the tools and technologies that were used to integrated with the IBM i backend as well as programming.

Your Inner Sysadmin

Joined.in Comments

Given on October 24th, 2012 at Zendcon 2012

One thing that most programmers do not take the time to understand is the servers that their application lives on. Most know a smattering of Apache configs, PHP configs, and basic information about the OS. This talk will deal with looking at tools that can help you quickly set up a server and how it can help you be a better developer. We'll look at tools like puppet for server management, OSSEC for log management, different command line tools, and nagios/monit for system monitoring.

A Tale of Two Apps

Joined.in Comments

Given on October 23rd, 2012 at Zendcon 2012

At one point in time, I was the technical lead on two different projects. One was an application we were purchasing from a vendor that was being written in Java (and had previously been written in .NET by another vendor, who then switched to Java, and then abandoned the project), and one was being built in-house with PHP on the IBM i. They were the same product for two different product lines that we offered, but time constraints forced us to build two products in tandem. In the end, the PHP application was completed and delivered to end-users in about 7 months from start to finish, while the former project languished. We'll compare the two projects in the tools and technologies that were used to integrated with the IBM i backend as well as programming.

Zend Framework

Given on January 16th, 2012 at Northwest Ohio PHP User Group

A basic overview of Zend Framework 1, including the different components, how it runs, and how to build sample applications. It goes over the bootstrap cycle, the router, controllers, view system, and how to build a small application.

Getting Your ZCE Certification

Given on January 16th, 2012 at Northwest Ohio PHP User Group

This talk gives some basic information on what you need to know for the Zend Certified Engineer test.

Talking to the Database

Given on November 16th, 2011 at Northwest Ohio PHP User Group

A history of database connections in PHP, and the modern way to do it.

PHP Security

Given on September 20th, 2011 at Northwest Ohio PHP User Group

PHP has been given a bad wrap when it comes to security, even though most of the problem is with the developer, not the language itself. This talk goves over the OWASP Top 10 as it pertains to PHP, as well as looking at secure coding techniques.

PHP's Filter Module

Given on August 16th, 2011 at Northwest Ohio PHP User Group

Most attacks in PHP happen because the programmer building the application did not properly santize or filter input from users. We go over the Filter extension for PHP and how to use it.

PHP Templating Systems

Given on July 26th, 2011 at Northwest Ohio PHP User Group

PHP is a templating system, but what happens when you have to work with people that don’t know PHP, or you want to separate out PHP logic from presentation? Chris Tankersley will go over different template systems that are available, but from a framework perspective as well as stand alone.

CMS Shootout - Introduction to Drupal

Given on April 26th, 2011 at Northwest Ohio PHP User Group

NWO-PUG held a CMS shootout to go over the different CMS's. This is a basic introduction to Drupal and how it works.

Enterprise Workflows When You Aren't Enterprise

Given on March 15th, 2011 at Northwest Ohio PHP User Group

No matter what language you use, developing code is the same – spec, code, deploy, maintain. The Big Boys have teams to manage each task, but what happens when you don’t? We’ll go over some different methods for maintaining internal and external programs that are cheap, open source, and make your life easier.

Source Code Management Basics

Given on January 26th, 2011 at Northwest Ohio PHP User Group

A basic introduction to Source Code Management.

Intro To the SPL

Given on January 26th, 2011 at Northwest Ohio PHP User Group

The SPL was introduced with PHP 5. This talk goes over the various parts of the SPL (as it stood then) and when to use them.