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.
Many older talks can also be found on my Archived Talks page.
BASHing at the CLI
The Command Line should be a developer's best friend, but many times it sits there, sad and lonely as we use to call other programs. Behind that unassuming little blinking cursor is an entire world of productivity, just waiting to be strung together. There is even an entire scripting language hidden underneath that is just waiting for you to use it! Let's investigate BASH, the shell that's syntax is universal across almost all systems (and find out why your Linux scripts do not always work on OSX).
Given at:
- Midwest PHP 2018, September 3rd, 2018 ( Joined.in Comments , Slides )
Coming to Terms with OOP In Drupal
Given at:
- php[world] 2016, November 17th, 2016 ( Joined.in Comments , Slides )
Deploying Containers with Rancher
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.
Given at:
- Day Camp For Developers, July 29th, 2016 ( Joined.in Comments , Slides )
Docker For PHP Developers
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.
Given at:
- PHP Detroit, July 26th, 2018 ( Joined.in Comments , Slides )
- php[tek] 2018, May 29th, 2018 ( Joined.in Comments , Slides )
- php[world] 2017, November 14th, 2017 ( Joined.in Comments , Slides )
- Madison PHP Conference 2017, September 22nd, 2017 ( Joined.in Comments , Slides )
- php[tek] 2017, May 22nd, 2017 ( Joined.in Comments , Slides )
- Sunshine PHP 2017, February 2nd, 2017 ( Joined.in Comments , Slides )
- ZendCon 2016, October 18th, 2016 ( Joined.in Comments , Slides )
- Pacific Northwest PHP 2016, October 16th, 2016 ( Joined.in Comments , Slides )
- Nomad PHP EU, April 21st, 2016 ( Joined.in Comments , Slides )
- Lone Star PHP 2016, April 7th, 2016 ( Joined.in Comments , Slides )
- Sunshine PHP 2016, February 4th, 2016 ( Joined.in Comments , Slides )
Failing at Scale
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.
Given at:
- Pacific Northwest PHP 2016, September 16th, 2016 ( Joined.in Comments , Slides )
From Docker to Production
Congrats! You and your coworkers love Docker. Docker has become an increasingly helpful tool when it comes to devops. We can now build smaller, more robust local development setups with the promise of mirroring production. One thing that still plagues many situations is how to get those containers into production and update them over time. We will explore different tools for setting up, configuring, and maintaining containers as they go live.
Given at:
- Sunshine PHP 2017, February 4th, 2017 ( Joined.in Comments , Slides )
- ZendCon 2016, October 19th, 2016 ( Joined.in Comments , Slides )
How We Got Here, A Brief History of Open Source
We all have a journey, a journey that shapes who and what we are. Ideals, hopes, dreams, and a constant stream of decisions helps make us who we are. The same is true of the idea of Open Source. The journey and story of Open Source has shaped the software landscape in the present and will continue to shape the direction of software into the future. As developers we should know this tale, this history, the important chapters that helped found the ideals of Open Source, and understand why PHP is one of the last truly Open Source projects still around.
Given at:
- Madison PHP Conference 2018, November 3rd, 2018 ( Joined.in Comments )
- php[world] 2016, November 16th, 2016 ( Joined.in Comments , Slides )
Licensing And You
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.
Given at:
- Midwest PHP 2015, March 15th, 2017 ( Joined.in Comments , Slides )
- Nomad PHP US, September 19th, 2014 ( Joined.in Comments , Slides )
Migrating Modules to Drupal 8
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.
Given at:
- php[world] 2015, November 19th, 2015 ( Joined.in Comments , Slides )
OOP Is More Than Cars and Dogs
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!
Given at:
- Midwest PHP 2017, March 17th, 2017 ( Joined.in Comments , Slides )
- Madison PHP Conference 2015, November 14th, 2015 ( Joined.in Comments , Slides )
- php[tek] 2015, May 20th, 2015 ( Joined.in Comments , Slides )
- Lone Star PHP 2015, April 17th, 2015 ( Joined.in Comments , Slides )
Single Page Apps with Drupal 8
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.
Given at:
- php[world] 2015, November 20th, 2015 ( Joined.in Comments , Slides )
Six Languages in 60 Minutes
Every developer has their favorite language. Yours is probably PHP. Any well-rounded developer should be at least a bit familiar with multiple languages, even if they do not use them day-to-day. New languages can help put a different perspective on problems, and there are times where PHP might not be the best pick.
There are a plethora of languages out there which can be used for web development, but also server-side scripting, tooling, general app development, or anything under the sun. Why choose a compiled language over dynamic? What are some quirks of different langauges? In sixty minutes, we will look at Go, C, Python, Bash, C#, and Lua and compare them to PHP. Break out of your shell and learn a few new languages you might want to add to your skillset.
Given at:
- php[tek] 2018, May 31st, 2018 ( Joined.in Comments )
They Are Watching You
Humanity has seen an explosion of technology over the span of almost no time. We have gone from computers being mechanical devices for crunching trajectories to computers making decisions on whether or not we are dressing fashionably. We have also seen an explosion of services that resolve around massive amounts of data about ourselves. At the same time we see developers working on Tor, ad blockers, privacy tools, and ways to keep your data yours. Programmers just like us are building these systems. What are our moral obligations to the technology that we are building? Strap on your tinfoil hat and [REDACTED]
Given at:
- Midwest PHP 2018, March 10th, 2018 ( Joined.in Comments , Slides )
WTF Is Rancher?
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.
Given at:
- Nomad PHP US, July 29th, 2016 ( Joined.in Comments , Slides )
You Were Lied To About Optimization
Many know of the famous quote, "Premature optimization is the root of all evil," but most people do not know the full quote or understand the context in which optimization is considered evil. As with anything in programming optimization is evil, maybe. Stop using excuses for slow code, and start to think about the places and tools that you can use to optimize. Thankfully there are are many different tools like xhprof, Valgrind, and others to help us out and properly optimize our code for those times when we need to dig deep into our code.
Given at:
- Sunshine PHP 2018, February 10th, 2018 ( Joined.in Comments , Slides )
- Madison PHP Conference 2016, October 1st, 2016 ( Joined.in Comments , Slides )
You Were Lied To About Optimization
Many know of the famous quote, "Premature optimization is the root of all evil," but most people do not know the full quote or understand the context in which optimization is considered evil. As with anything in programming optimization is evil, maybe. Stop using excuses for slow code, and start to think about the places and tools that you can use to optimize. Thankfully there are are many different tools like xhprof, Valgrind, and others to help us out and properly optimize our code for those times when we need to dig deep into our code.
Given at:
- Sunshine PHP 2018, February 10th, 2018 ( Joined.in Comments , Slides )
Your Inner Sysadmin
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.
Given at:
- Lone Star PHP 2015, April 16th, 2017 ( Joined.in Comments , Slides )
- Midwest PHP 2015, March 14th, 2015 ( Joined.in Comments , Slides )
- Sunshine PHP 2015, February 5th, 2015 ( Joined.in Comments , Slides )
- Madison PHP Conference 2014, September 13th, 2014 ( Joined.in Comments , Slides )
- Lone Star PHP 2014, April 25th, 2014 ( Joined.in Comments , Slides )
- ZendCon 2012, October 24th, 2012 ( Joined.in Comments , Slides )
Zend Expressive in 15 Minutes
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.
Given at:
- Nomad PHP US, March 25th, 2016 ( Joined.in Comments , Slides )