Speaking

I love sharing knowledge and experience and find it to be a wonderful way to improve. If I want to communicate my internal thinking to someone else, it forces me to think through what I have intuitively done and identify precise concepts and rules that can be translated into words and images.

Apart from the blog posts on this site and the many chats and forums I participate in, I also try to improve as a conference speaker to add this communication tool to my belt as well.

Upcoming Talks

Uncommon (Ab)Uses of Composer

Composer is a hugely flexible tool that works reliably on all but the most obscure hosters/platforms. What's more, it provides a plugin system that lets you pull external code from a repository and have that code hook into the normal Composer execution flow. The logical conclusion is that Composer is used for much more than just pulling in dependencies.

We'll start this session with a quick look at the basic mechanisms that make Composer as flexible as it is. Then, we'll go through some of the more useful and/or exotic examples of how to use Composer for solving problems that it wasn't really meant to solve.

Past Talks

OOP Plugin Development Basics

Building WordPress plugins in an object-oriented way presents some particular challenges, due to the fact that the WordPress APIs you’re coding against are mostly procedural in nature.

In this session, we’ll go over a real-world plugin to see how the code should be structured, and how best to hook into the WordPress lifecycle when you want to take full advantage of the benefits of OOP PHP.

Demystifying the WordPress Bootstrap Process

The WordPress bootstrap process is only scarcely documented, with only a very select group of developers that truly know the ins and outs and historical reasons behind the individual bootstrapping steps.

This session presents a detailed overview of the exact execution flow that launches your WordPress site on each page request, giving you detailed insights into:

  • the order in which files are loaded
  • how & why the different global constants are set up
  • what functionality is “pluggable” and can be replaced by custom implementations
  • how the database is connected
  • how caching is set up
  • how localization is set up and loaded
  • how a multisite (network) is identified and loaded
  • how the Plugin API is initialized

The session will end with a presentation of a feature project that aims to re-design and improve the existing bootstrap process.

Controlling WordPress Through The Command Line — Introduction To WP-CLI

If you manage more than one WordPress website, you might have experienced situations where you needed to do the exact same operation on multiple websites. If you were clicking through the sites one-by-one and thinking that there should be a better way to manage what you are trying to do, I’ve got good news: there actually is!

WP-CLI lets you control your WordPress sites through the command line, allowing you to do any operation across an arbitrary number of sites. This can save you minutes, hours, days or even weeks of work.

I’ll start with a small introduction to the command line itself, and then continue with very easy and common scenarios where WP-CLI can save you large amounts of time with little to no effort.

Wrapping A Modern PHP Architecture Around A Legacy WordPress Site

WordPress has pretty much anything it needs to fulfill normal CMS requirements. However, most client websites grow organically to include more and more business processes into the WordPress application lifecycle, which ends up being problematic at best.

WordPress does not provide the proper architecture and mechanisms to deal with business processes in a reliable and scalable way.

This talk presents a case study of wrapping a legacy WordPress site into a scalable architecture, using a combination of existing and custom packages, that provides the following benefits:

  • services architecture that lets plugins define their dependencies, with automatically resolved loading order
  • auto-wiring dependency injection that allows coding against interfaces instead of implementations
  • configuration management that can account for differences in environments
  • centralized logging throughout the entire site that can be sent to logging servers
  • bus system that handles events and commands without blocking the frontend
  • all of this without any noticeable impact on content editors

The end result is a WordPress site that embraces most of the commonly accepted PHP best practices, while still offering the same well-known editing UX to content editors.

The Secret Sauce For Writing Reusable Code

Everyone knows that you need to write reusable code to be able to grow as a developer, right?

However, most developers struggle to understand how to split up their code to make it truly reusable, so they end up copy-pasting parts of code and modifying as needed, instead of effectively reusing the code that was already written, without a single change.

This session explains the concept of Config files and how they allow you to cleanly separate reusable code from project-specific code.

The Secret Sauce For Writing Reusable Code

Everyone knows that you need to write reusable code to be able to grow as a developer, right?

However, most developers struggle to understand how to split up their code to make it truly reusable, so they end up copy-pasting parts of code and modifying as needed, instead of effectively reusing the code that was already written, without a single change.

This session explains the concept of Config files and how they allow you to cleanly separate reusable code from project-specific code.

High-level View of Web & WordPress Development

Developers tend to get lost in technical details.

In a system as complex as a WordPress website, where there’s a lot going on behind the scenes, it can be a very valuable exercise to take a step back and analyze the different components of the whole system. This lets you get a sense of what part of the system is responsible for what end goal.

This session will give beginning and intermediate WordPress developers an overview, first of general web development, and then for the specific case of WordPress. We will briefly cover client-server architecture, and later discover how the different parts of WordPress work together to let you build sites and apps with relative ease. As it turns out, most of the skills you acquire with WordPress are valid for other domains as well, as long as you can look beyond the terminology.

My experience has shown that understanding the big picture makes it a lot easier to deal with the details, and I hope this will be true for you as well.