I love public speaking about programming, particulary PHP, Laravel and JavaScript. The past few years I had the honor of speaking at a lot of conferences across the globe.

Most of my talks are very practical. I like to make people feel how and why a particular solution works. Below you can view videos of my talks. Some are recorded at conferences, some are recorded in the comfort of my own home.

Speaking at your event

If you're considering me to speak at your event you can reach me via mail. I require you to take care of the costs of the flights (or ground transportation) and hotel.


Building a Realtime Dashboard Powered by Laravel and Livewire

In this talk I demonstrate our laravel-dashboard package

Behind the scenes of Flare

In this talk, recorded at Laracon Australia 2019, I explain a strategy to structure large Laravel applications, using Flare as an example

Building Mailcoach: deleting unconfirmed users automatically

My team and I are currently building Mailcoach, a self-hosted solution to easily send out newsletters and email campaigns. In this video, I live code a new small feature.

This video was created unrehearsed and I didn't make any edits. So you can see every mistake that I made along the way.

Launching Flare and Ignition

Together with Marcel Pociot and our teams, I created Flare, the best error tracking service for Laravel applications. Together with Flare we completly revamped Laravel's default error page which is baptized Ignition.

In this video you can see the inital reveal of both Flare and Ignition at Laracon EU 2019 in Amsterdam.

Supercharging common controllers

A while ago I had to create a fairly complicated CRUD interface from scratch. While this isn't rocket science, there surprisingly aren't that many good resource out there on how to do this. That's why our team dove in and published a couple of packages that can help create modern CRUD interface.

In this highly practical talk you'll learn how we nowadays go about creating a CRUD interface at Spatie. We'll take a look at how we can convert url parameters to a Eloquent query. You'll learn what view models are. We'll create some server side components with BladeX and much more.

It's guaranteed that you'll take away one or few new tricks you can apply in your projects today.

Taking care of backups with Laravel

Thanks to all the excellent resources on server management many developers are now setting up and administrating their own servers. If you are one of them you can't count on anybody else but yourself to backup the data of your clients.

We cover the backup issues presented when using modern hosting such as Linode and DigitalOcean. Then we review some enterprise grade solutions. Finally we dive deep into implementing a backup system using Laravel 5's filesystem abstraction.

Building a realtime dashboard with Laravel, Vue and Pusher

On the wall mounted TV in our office a dashboard is displayed. At a glance we can see what the current tasks for each member of our team are, which important events are coming up, which music is playing, ... and much more.

In this talk I explain how we leveraged both Laravel and Vue to build the dashboard. After demonstrating the dashboard itself we take a deep dive in the code. We take a look at the entire flow: the grid system, how events are broadcasted using Pusher, some cool Vue mixins and much more. After this talk you'll be able to setup your own dashboard using our open sourced code.

Handling media in a Laravel application

In most CMS kind of projects you're going to let a user upload all sorts of images and files. Storing those files, associating them with models, creating thumbnails for them, optimizing images, can be a lot of work. Luckily laravel-medialibrary can do all that for you.

In this talk you'll see a practical demo of how to get started with the medialibrary. You'll learn how to store files, generate urls to them, how to use different image profiles and how to use external filesystems to store big assets.

If you’re using Laravel you’re going to love this. If you use another framework, come along for the ride and steal some ideas.

Getting started with event sourcing in Laravel

In an event sourced app you're storing each event that happens within your app and derive all state from those events.

In this practical talk you'll get an intro on what event sourcing is and what the benefits are. After that we'll dive in the Laravel ecosystem and take a look at how we can create projectors and aggregates using the laravel-event-projector package.

All talks

From Ignition to Flare

  • Laracon India on

Uncharted Packages

  • Laracon India on
  • Laracon EU, Amsterdam on

Fantastic functions and where to find them

  • PHPUKConference, London on Video
  • Digital Labin, Croatia on
  • PHPDay, Verona, Italy on Joind.in
  • Laracon EU, Amsterdam, Netherlands on

Introducing Laravel Data

  • Laracon US, Nashville, USA on Video

AI for fun and profit

  • Full Stack Antwerp on

Building a Laravel package from scratch

  • Laracon EU, Lisbon on
  • Laravel Copenhagen on

I Shall Define This Only Once

  • Laracon Online Summer 2022 on Slides

Debugging faster with Ray

  • Full Stack Live Meetup on
  • Ode aan de Code UserGroup, Utrecht, Netherlands on Video

Implementing Lightweight Concurrency in PHP

  • Full Stack Belgium, Ghent on

Building a Realtime Dashboard Powered by Laravel and Livewire

  • PHPKonf, Istanbul on Slides
  • Laravel Conf Taiwan on
  • PHP South Wales on Video
  • Full Stack Utrecht on
  • Laracon EU Online on Video

A tour behind the scenes of Oh Dear!

  • PHPBenelux Online on Slides
  • PHP Limburg on Slides Joind.in
  • Laravel User Group Munich on Slides

A practical look at multitenancy in Laravel

  • PHP London on
  • Laracon US on Slides

A tour of the Flare codebase

  • Laracon Online on Slides
  • Full Stack Ghent on Slides
  • Laracon Australia on Slides

Introducing Mailcoach

  • Full Stack Ghent on Slides

Handling media in a Laravel application

Introducing Ignition and Flare

Supercharging common controllers

  • Laracon US on Slides
  • Laracon EU Madrid on Slides
  • Full Stack Ghent on Slides

Managing queues with Laravel Horizon

Getting started with event sourcing in Laravel

  • Full Stack Ghent on Slides
  • Full Stack Brussels on Slides
  • Full Stack Antwerp on Slides
  • Laracon Online on Slides
  • Laravel Live, Mumbai, India on Slides

How to start and grow your own side project

  • PHP Ghent on Slides

The story behind our open source efforts

  • House Of Innovation, Antwerp, Belgium on Slides
  • PHP Eindhoven on
  • Laravel Brussels on Slides
  • Eurostar Connect Ghent on Slides

Creating a dashboard using Laravel, Vue and Pusher

  • PHP Leuven, Belgium on Slides
  • PHP Experience, São Paulo on Video Slides
  • PHP UK Conference, London on Video Slides Joind.in
  • Domcode UG, The Netherlands on Slides
  • PHP Antwerp on Slides Joind.in
  • Algolia HQ, Paris on Slides
  • Laracon EU, Amsterdam on Video Slides
  • Laracon US, New York on Video Slides
  • Dutch PHP Conference, Amsterdam on Slides
  • PHP Limburg on Slides Joind.in
  • Fosdem, Brussels on Slides
  • PHP Benelux (uncon) on Slides Joind.in
  • PHP Eindhoven on
  • PHP Gent on
  • Laravel Brussels on
  • php[world], Washington on Slides
  • PHP Breda on
  • PHP Antwerp on Slides

A practical intro to snapshot testing

Monitoring uptime with Laravel

Taking care of backups with Laravel

  • PHP Unicorn Conference on Slides Joind.in
  • Laravel Live, New Delhi on Slides
  • PHP UK Conference, London on Video Slides Joind.in
  • php[world], Washington on Slides
  • Laravel Toyo on Slides
  • Laracon EU, Amsterdam on Video Slides Joind.in
  • PHP Antwerp on Slides Joind.in
  • PHP West Flanders on
  • PHP Brussels on
  • PHP Limburg on Joind.in
  • Barcamp, Antwerp on
  • PHP Gent on Joind.in

Manipulating images in PHP

  • Laravel Brussels on Slides

Why are we sponsering our local meetup group

  • PHP Antwerp on Video

Setting up your private packagist