Expertise
Laravel developer — since 2014
I have worked with Laravel since 2014 and write about its parts, from Eloquent to queues, from policies to scheduled tasks.
- years
- 12
Me in the Laravel ecosystem
Laravel is not an add-on to PHP for me but a way of working: routing, queues, validation, authorization and testing under one roof, with one contract. The PHP page covers the language itself; this page covers how I use that roof.
Over time I saw that I do not have to use everything the framework offers. I take a pattern because it is needed, not because it comes ready-made.
I look at new versions the same way: my question is not “is this great?” but “does this fit my problem?”. I have written version and migration notes on the blog starting from Laravel 4. Microservice boundaries, event-driven design itself and database internals I write about, with their costs, in the Engineering section.
What is the Laravel Developer role?
Laravel is a web application framework written in PHP: it offers routing, database access, queues, validation and authorization as ready-made layers. A Laravel developer is the person who writes the application's business rules on top of those layers.
What does the Laravel Developer do?
With Laravel I write APIs, web applications and background processes that take work off queues. I keep the business rule in separate, testable classes instead of spreading it across controllers and models; queues, scheduled tasks, authorization and testing I set up inside the same application.
Recent writing in this area
- Blog
Production access sat with one person, and that person took a holiday
The only person with production database access went on holiday and diagnosis stopped. The need came down to four sentences; each became a design decision.
- Blog
From Dual-Write to Outbox: A Log of Idempotent Consumption and Field-Level Encryption
Lost events pushed me to a transactional outbox and at-least-once delivery to idempotent consumption; then I encrypted GDPR fields at row level.
- Blog
Resolving an Invoice Number Collision in an E-Invoice Integration
Two workers produced the same invoice number in production. A log of how I resolved the race condition vs. legal gap dilemma in a real project.
Measurements in this area
Laravel's preload curve: 123 files buy eight times what the last 1,912 do
How far can a curated preload take Laravel, and what does each slice cost in start-up time?
Finding
The curve is not proportional to volume. The first 1,592 files — Laravel's own framework — buy 30 ms and add 1.2 seconds to start-up. The next 1,094 Symfony files buy 9.5 ms for free. The 123 files after that (psr, carbon) buy 15.7 ms, more than the 1,094 before them. And the last 1,912 buy 1.8 ms while adding another 1.2 seconds. So the blanket preload the earlier record measured as a ceiling is the worst point on the curve that is not the origin: stopping at 2,809 files gives 12.77 ms for 1,514 ms of start-up, while 4,721 files ask 2,691 ms to reach 10.96 ms.
measured 71 days ago
Technologies I pair it with
-
Laravel
Routing, queues, validation, authorization and testing under one roof.
-
Composer
Where Laravel's packages come from; I weigh community packages selectively.
-
PHPUnit
The test tool I meet in older Laravel codebases.
-
Pest
The testing layer I prefer on new Laravel projects.
-
Redis
The store I use for cache, session and queues in Laravel.
-
MySQL
The primary relational store behind Eloquent.
-
RabbitMQ
Where billing left the synchronous path.
Questions in this area
Frequently asked
8 questions
-
How long have you worked with Laravel?
Since 2014 — 12 years.
-
What does a Laravel developer do?
A Laravel developer writes web applications, APIs and background jobs with the Laravel framework on top of PHP. For me that means putting the business rule in the right place inside the application, setting up queues and scheduled tasks, and building the authorization and test surface.
-
What is the difference between Laravel and PHP?
PHP is the language itself; Laravel is a framework that runs on top of it. On the PHP page I cover the language's ecosystem and the framework decision; on this page, how I use the roof Laravel provides.
-
Where do you put the business rule in Laravel?
I keep the controller thin: the business rule lives in action classes, validation in form requests, authorization in policies and gates. A rule spread across controllers and models ends up where nobody can find it at the first big change.
-
Which parts of Laravel have you written about?
The blog archive carries separate posts on Eloquent and its relationships, middleware, service providers and the container, policies and gates, queues and Supervisor, scheduled tasks, Livewire, Inertia, Octane and broadcasting over WebSockets.
-
How do you run queue workers in Laravel?
I wrote a separate post on Laravel's queue layer and keeping worker processes alive under Supervisor. Whether the work runs synchronously or asynchronously is a decision that comes before the framework.
-
How do you set up tests in Laravel?
Pest on new projects and PHPUnit in older codebases; I also wrote about the habit of writing tests in Laravel and the move to Pest.
-
How do you build the interface with Laravel?
Two ways: Laravel as an API feeding web and React Native clients from the same API, or the interface produced from the server side. For the second I wrote about Livewire and Inertia on the blog.
Let us work together
If you have work in this ecosystem, tell me what you are building and we will talk about how to build it.