Writing
Essays and notes on software, the craft of shipping, and the long game of learning.
- 2026.05.25
3D Printing New BMW Floor Plugs
1 min → - 2026.04.27
My AI Toolkit
My always-up-to-date list of tools & workflows that actually work in real life.
2 min → - 2026.01.12
Why Ephemeral State Is The Key To Writing Resilient Software
The one lever to rule them all.
3 min → - 2025.07.07
A Life Changing Quote About Anxiety
Dr. Emily Anhalt shares a quote that changed her life, and now mine.
2 min → - 2025.01.29
Wrangle Your Business Logic with Laravel Pipelines
A guide on how to use pipe patterns in Laravel to handle complex data processing tasks.
4 min → - 2025.01.21
A Guide to Laravel Authorization Patterns
Almost all systems follow a similar pattern when it comes to authorization. In this post, I'll highlight how authorization systems generally work, and how those stages can be applied to Laravel. Learning this structure tends to make using o
4 min → - 2024.12.23
How to Integrate Laravel Sanctum with Spatie Permissions
Use a single source of truth for your user permissions. One rules set to rule them all.
4 min → - 2024.11.15
I'm free!
I’ve finally left Twitter / X and currently hanging out on BlueSky: https://bsky.app/profile/arter.dev
1 min → - 2024.04.20
Kraken Low-Mount Coolant Mixer Modification
A less than obvious step for clearance on low mount install for the Miata Kraken Turbo Kit
1 min → - 2024.03.14
My Thoughts on AI and My Future As A Software Engineer
Just want to get a few things out of the way:
2 min → - 2024.01.05
Semantic Versioning Cheat Sheet
A quick guide on Semantic Versioning and why you should care.
3 min → - 2023.05.27
Embracing the "Dumb": The Unapologetic Art of Asking Dumb Questions
Let's start with a truth bomb: dumb questions exist.
3 min → - 2023.05.02
Model Factories for Custom Namespace Models
A quick tip on how to allow Laravel to detect custom namespace models
2 min → - 2023.03.28
A pirate's guide to routing basics in Laravel
Ahoy, me hearties! Cap'n Chris here with another thrillin' Laravel adventure. Today, we be divin' into the mysterious world of route structures in a Laravel application. So, hoist the Jolly Roger and let's set sail!
3 min → - 2023.03.23
Laravel chunk vs cursor methods compared
When to use chunk(), and when to use cursor()
4 min → - 2023.01.12
How to Write Pull-Requests Like A Badass
Because nobody wants to review your 50-file change pull-request. Nobody.
3 min → - 2023.01.05
Demystifying Gates in Laravel
If you find the concept of "gates" in Laravel a bit confusing, don't worry. You're not alone.
2 min → - 2022.12.29
Run Netlify CMS Admin Locally
A quick breakdown of how to run your Netlify CMS admin on your local machine.
1 min → - 2022.12.08
How to Upgrade to PHP 8.2 on MacOS with Homebrew
A no-frills guide
1 min → - 2022.11.04
Introducing Dream, an AI / ML Toolbox for Laravel
Two weeks ago, I was playing with some ML ideas in a Laravel application. I didn't quite like the accuracy of a certain cloud provider's ML product, so I wanted to try another. To do this, I had to re-write the client implementation in my a
2 min → - 2022.05.25
Authenticate to Laravel with WordPress
"How do I use WordPress as an identity provider for Laravel Socialite." Oh, that wasn't your first thought? Well while we're here, I may as well share a great package that allows you to do just that. And if it was, then you're in the right
2 min → - 2022.03.23
Laravel 9 Crash Course Part 0: Setting up Laravel Sail
If you don't have Docker desktop installed, go ahead and download & install from https://www.docker.com/products/docker-desktop/
1 min → - 2021.11.24
How to run Laravel Mix commands in Docker
Goodbye .nvmrc files
3 min → - 2021.10.09
How I Built A Zero-dependency, Blazing-fast Traffic Splitter in TypeScript
Recently, I was given a requirement to split traffic according to a very flexible set of rules.
4 min → - 2021.07.20
How to test stripe webhooks locally
The new Stripe CLI is real, and it's spectacular 😎
3 min → - 2021.04.21
How To Install Vue 3 in Laravel 8 From Scratch
A step-by-step guide to installing, mounting, and displaying Vue 3 components in a base Laravel 8 install.
3 min → - 2021.02.06
Keep Your Laravel Routes Clean on Any Project Size
In this post, I'm going to show you how you can organize routes in various size projects. From small projects to large, I'll show you some techniques that have kept a growing monolith's routes in a manageable state.
2 min → - 2021.01.06
Top Laravel Tools for 2021 to Turbo-charge Your Workflow
Let's talk tooling! One of the benchmarks of a great framework is the ecosystem & tooling. I may be biased, but I think Laravel has some of the best tooling around. These are my top tooling choices for 2021. Let's gooo.
3 min → - 2021.01.02
Introducing WP Events, a simple event listener pattern for WordPress
I've archived this repo. While it is dependency-free, it's very similar to Wordpress' native filters & action features. Given that they're core to WP, I would advise using them instead of this package.
1 min → - 2021.01.01
Automatic Alt Text With Spatie Media Package and AWS Rekognition
I recently implemented a feature in our API that automatically creates alt tags for all images uploaded with Spatie Laravel-medialibrary. This allows all images added to automatically be tagged with AWS's Rekgonition API, saving our marketi
2 min → - 2021.01.01
How to Setup TailwindCSS in Laravel: A Quick Tutorial Guide
This guide will show you how to setup TailwindCSS in your Laravel project. It assumes you are using Laravel 8 and Laravel mix to bundle your front-end assets.
2 min → - 2020.12.24
How to avoid all database calls using Spatie Response Cache package
It's no secret I stan Spatie packages. I'm convinced there must be something in the water over there in Belgium, because, all they seem to do is pump out quality package after quality package. And, the most impressive thing is that they're
1 min → - 2020.12.05
Why the 80/20 Principle is The Key to Unlocking Self Learning
The 80/20 Principle or otherwise known as Pareto Principle, is an observation (not rule) that out of 100% of the output, 80% of it can be attributed to just 20% of the input. In other words, for a given result, it asserts that 80% of that r
4 min → - 2020.12.03
Advent of Code Day Three
This one seemed hard AF. Then seemed pretty easy, then seemed hard again.
1 min → - 2020.12.03
Advent of Code Day Two
This one ended up being a bit trickier than I anticipated in part 2, but eventually I got it:
1 min → - 2020.12.01
Advent of Code Day One
Despite being swamped with work (like many of us are) I think it's important to stay sharp, so this year I'll be participating, however much I can, in Advent of Code . I'll level with you all that I probably won't do every problem, but here
1 min → - 2020.11.30
How to Comment Your Code Like a Boss
They can push a dish over the top. Or, they can relegate it to the polite pile of leftovers that your guests appreciate but didn't enjoy.
2 min → - 2020.09.28
How to cleanly organize Laravel application events.
Lately I've been working on an application with quite a few events. Some events were related to user actions. Some were related to payment transactions. Others were related to bookings.
2 min → - 2020.01.30
I'm officially a Laravel core (docs) contributor! 🎉
Currently, my colleagues and I are troubleshooting some deployment issues with our Laravel Horizon queue. On our development server, the deploy process works beautifully, and subsiquent jobs are firing correctly when the jobs are placed int
2 min → - 2019.12.18
Quick tip: How to set up in-memory database for Laravel unit tests
If you're using the RefreshDatabase trait, this is how I set up my unit tests that require a database to use an in-memory database using SQLite. Using an in-memory database simplifies our testing process and does not require us to set up ad
1 min → - 2019.11.20
A No Fuss Laravel & Docker Starter Repo
When I initially wanted to transition from Homestead & Vagrant to a containerized version of Laravel, I struggled to get it working. I Googled far and wide, and tried a ton of different "simple" walk throughs that were anything but.
2 min → - 2019.05.25
Middleware for the Wordpress REST API
When I originally began doing significant development around the Wordpress REST API, I was excited to finally get hands-on with it.
2 min →