Hi 👋🏻 I'm Matthew!

I build web apps and teach how to build them.

For the last 10 years, I've been teaching people how to build web-based applications using PHP as well as how to improve their PHP and DevOps skills through the tutorials on this site, and my books and courses.

My most recent books are: Deploy with Docker Compose and Mezzio Essentials. If you want to get up to speed on Docker Compose or build solid web-based applications check them out!

In addition to PHP and DevOps, I blog about how I create online courses and write technical tutorials, such as recording and editing audio and video, taking great screenshots, scripting a course, and more.

I also work at Twilio, creating weekly tutorials teaching how to program with PHP and Go. If you want to contribute an article to the Twilio blog, check out the Call for Content.

If you'd like to know more about me, check out the about page, or click the links below.


Latest from the blog

Understanding Go's Empty Interface
Tue, Sep 12, 2023

Understanding Go's Empty Interface

Recently, while working with the Twilio Lookup API, I had the opportunity to properly learn about Go’s empty interface. During the process, I realised that I didn’t understand it properly, so took the opportunity to do so. Today, I am going to step through what it is and how simple they are to work with.

Restrict Allowed Route Methods in Go Web Apps
Fri, Sep 1, 2023

Restrict Allowed Route Methods in Go Web Apps

It’s incredibly easy to build web apps and APIs using Go’s net/http package. All you really need to do is to specify a route and its handler. But, how do you restrict the methods that routes can accept? In this short tutorial, I’ll show you how.

Go Interfaces Make Development and Testing Easier
Fri, Jul 21, 2023

Go Interfaces Make Development and Testing Easier

Substitutability or the Liskov Substitution Principle (LSP) is a concept that I’ve tried to adhere to for some years when writing code. It’s beneficial for many reasons, but particularly when testing, as it can indirectly force you to write code that is more testable. Recently, I’ve started appreciating how it works in Go, and will step through how in this short article.

Install PHP's Imagick Extension on macOS
Tue, Jul 4, 2023

Install PHP's Imagick Extension on macOS

Homebrew makes installing PHP and so many other great tools on macOS a breeze; almost as easily as a Linux package manager. But how do you install the Imagick extension? In this short post, I’ll show you the shortest way to do so.