I've long been planning to bring back my blog, but as is commonplace with this sort of thing, I found myself focusing too much on creating the ideal implementation. The perfect blog, with all the features I wanted and all the automation. No wonder I never actually finished it.
Then, on the 1st May, the day my contract was due for renewal, I was informed that the business was tightening its purse strings, due to the kicking it had taken with the US tariffs, and therefore wouldn't be renewing the contract. This was quite the surprise, as I had been assured that it would be renewed until the end of September, and I had quite literally 24 hours before, merged in a PR containing a completely bespoke ORM I built for the project.
I was planning to use the 4 months I would have to work on some additional projects, things I'd hoped could start generating some passive income and allow me to move away from writing code for people. Since I no longer have that window, I decided to take the plunge and just get something out there.
And to kick that off, I've put up two articles from the get go.
May 5th 2025
How to Hide Route Parameters from Controllers in Laravel
Laravel's route parameters are powerful, but they can also be a bit of a pain if you want to hide them from your controllers. This article will show you how to do just that.
May 5th 2025
Avoiding Eager Loading When Registering Laravel Drivers
When registering drivers or other types of extensions for Laravel core classes, it's really easy to accidentally eager to load the service and its entire dependency tree! Fortunately, it's almost as easy to avoid it.
I'm also considering putting together some of the longer content that I had planned to build platform for, as "mini-course" PDFs on Gumroad. They're mostly complete, but they'll need a bit of polish and a bit of a rejig to make them more consumable, but they are as follows:
-
The Definitive Guide to Routing in Laravel
A deep dive into Laravel's routing layer, covering all aspects of how it works and how it can be used.
-
Understanding the Laravel Service Container
Another deep dive into Laravel, but this time into the service container and dependency injection.
-
Laravel's Request Lifecycle: Step by Step
This builds on the previous two, and is walk through the Laravel request lifecycle, including the boot and registration processes.
-
Design Patterns in PHP
A practical guide to design patterns and their usage within PHP, outside of Laravel. This is a similar vein to the YouTube series I previously started.
I'm still undecided on how I'm going to go about it, but I'm going to do something, to make the most of the time between contracts.
Available for work
Which brings me nicely to the fact that I am currently available for work. If you're looking for a PHP or Laravel expert, to help plan, build or refactor a project, get in touch!
If you're looking for a consultant for advice on an adhoc hourly basis, I'm also available for that too.
I'm also going to be continuing with Sprout, my multitenancy package, working on tenant-based config add-on, as well as the tenant-domain and tenant-database addons that build on top of that.
Sprout For Laravel v1.1
Multitenancy for your Laravel application
Sprout is an easy to use multitenancy solution that integrates seamlessly with your Laravel application, while remaining flexible.
The last thing I want to mention is a little feature I've added to this blog called "insights". It's essentially a little tooltip based on the kind you get in IDEs when hovering over a method or class name. When you hover over the name of a class, method or function on this blog, and you see the help cursor, if you click on it, you'll see a bit more information about it, including some links. Here are a few examples:
-
afterResolving
-
Route
-
forgetParameter
Anyway, that's all from me for now, happy coding.