Chris Morrell

Over Engineered

A podcast where we explore unimportant programming questions (mostly PHP/Laravel/JavaScript) in extreme detail.

Author

Chris Morrell

Category

Technology

Podcast website

overengineered.fm

Latest episode

Oct 15, 2025

Where to listen?

Podcasts in the app Replaio Radio Coming soon

Podcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts

Get it on Google Play Install for free Android 5M+ downloads · 4.8 rating iOS soon

Episodes

Static site generators & personal websites w/ Aaron Francis 14.12.2023

We all use our personal websites as an excuse for trying something new or over engineering what's usually a simple, low traffic site. In today's episode, Chris and Aaron talk about how to build a great personal website with "just Laravel" and imagine ways that static site generation, markdown editing, open graph, caching, SEO, and more could be improved in the Laravel ecosystem.

Perfecting lifecycle hooks w/ Caleb Porzio 07.11.2023

In today's episode, Chris and Caleb sit down and try to imagine what the perfect "hook" implementation might look like. Laravel, Livewire, and the upcoming Verbs package, all have to allow for hooking into logic at specific points, and each package has to handle this in its own unique way. What if there was a canonical way to hook into the lifecycle of a package that worked across the whole Larave...

Verbs vacation (part 1?) w/ Daniel Coulbourne 14.09.2023

And now for something completely different… In this episode, Chris and Daniel sit down to talk about a new event sourcing package they're working on called Verbs.

Customizing outgoing email 07.07.2023

Most teams have encountered this basic scenario: Your application sends out a periodic report to a specific person in the company. Then, at some later point, either another team member wants to start receiving a copy of the report, or you need to remove the original recipient and add a new one. With a standard Laravel app, you're probably going to need to make this change by deploying a change—eit...

What about event sourcing? 28.04.2023

In this episode we indulge in the purest form of Over Engineering—a 90 minute discussion of a completely different application paradigm/architecture. Our team has used event sourcing to some degree, and we're considering using it more heavily in the future. But before we do, we're going to step back and ask ourselves if it's worth it… Some useful links: Event Sourcery YouTube Series Spatie Event S...

The dreaded status column w/ Daniel Coulbourne + Cheyne Rood 19.04.2023

Over Engineered is all about those things that bug you but you never get a chance to "solve." Today's episode is about the dreaded "status" column. This is another topic that most developers will hit over and over. You have a model. You need to track the status. You add a status column, and then later a status timestamp "accepted_at", and then later an "accepted_by" column—and each time you cringe...

Referencing specific database records in your code 31.03.2023

Season 1 continues with a discussion of how to deal with special database records that need to be referenced directly in code. We've all been there before: you've got a specific vendor that you need to write a custom command for, or a certain category that needs special handling, so you either hard-code the ID or slug and shudder slightly before moving on with your life. In this episode, we imagin...

Over-engineering migrations even more w/ Tim MacDonald! 06.03.2023

In the second episode of the podcast we talk with Tim MacDonald about a few other approaches to how you might manage other operations that happen before/during/after a database migration (or really any deploy step). Tim pitches a lower-level approach that spawns a whole new line of thinking. We also touch on some of the responses to episode one, including: Ed Grosvenor's "run once" command Lukas H...

The line between migration and…? 15.02.2023

In the first episode of the podcast we explore the boundary between database migrations and other operations that need to happen when the database is being migrated. How do you seed or manipulate data after new tables or columns have been added? In migrations? In one-off commands that you have to run manually? Running seeders in production? In tinker, Nova, or TablesPlus? We spend a whole hour tal...

Listen to the Over Engineered podcast in Replaio

Radio and podcasts in one app - free, with no sign-up. Install today and do not miss the launch

Get it on Google Play

Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.