By continuing your visit to this site, you accept the use of cookies.
Read more
.
Out now:
my sci-fi novel Timeline Taxi is published!
stitcher.io
My sci-fi novel, Timeline Taxi, is now published!
2024-11-14
What's new in PHP 8.4
2024-11-09
Unfair Advantage
2024-10-30
Things I learned writing a fiction novel
2024-09-16
Tagging Tempest Livestream!
2024-09-13
Building a framework
2024-08-30
A simple approach to static site generation
2024-08-24
Timeline Taxi: chapter 7
2024-08-21
Extend or implement
2024-08-16
Timeline Taxi: chapter 6
2024-08-13
PHP 8.4 at least
2024-08-09
Timeline Taxi: chapter 5
2024-08-07
I don't write code the way I used to
2024-08-01
Timeline Taxi: chapter 4
2024-07-29
Improved lazy loading
2024-07-26
Timeline Taxi: chapter 3
2024-07-26
It's all just text
2024-07-19
Timeline Taxi: chapter 2
2024-07-18
array_find in PHP 8.4
2024-07-16
HTML 5 support in PHP 8.4
2024-07-12
Timeline Taxi: chapter 1
2024-07-11
New without parentheses in PHP 8.4
2024-07-09
You should
2024-07-08
PHP version stats: July, 2024
2024-07-03
A vocal minority
2024-06-26
Leaving Twitter
2024-05-24
Tagged Singletons
2024-03-23
PHP in 2024
2024-03-22
Testing Patterns
2024-03-16
Building a custom language in tempest/highlight
2024-03-15
A syntax highlighter that doesn't suck
2024-02-19
The framework that gets out of your way
2024-01-29
PHP version stats: January, 2024
2023-12-13
Passion projects
2023-12-12
I don't know
2023-11-23
What's new in PHP 8.3
2023-08-15
The RFC Vote project
2023-07-06
"Is A" or "Acts As"
2023-07-01
PHP version stats: July, 2023
2023-06-21
#[Override] in PHP 8.3
2023-06-02
Don't be clever
2023-05-30
Building a procedurally generated game with PHP
2023-05-02
Things considered harmful
2023-03-22
Limited by committee
2023-03-20
Cloning readonly properties in PHP 8.3
2023-03-15
Thank you, Kinsta
2023-02-20
Slashdash
2023-02-10
I'm a light schemer
2023-02-06
I'm a code folder
2023-01-29
Acronyms
2023-01-28
Fonts matter
2023-01-27
My top-10 favourite functions in PHP
2023-01-24
Why curly brackets go on new lines
2023-01-21
Sponsors
2023-01-20
Tabs are better
2023-01-17
PHP in 2023
2023-01-11
PHP version stats: January, 2023
2023-01-09
Upgrading to PHP 8.2
2023-01-03
All I want for Christmas…
2022-12-08
What's new in PHP 8.2
2022-11-19
You cannot find me on Mastodon
2022-11-08
PHP Annotated, the YouTube channel
2022-11-01
Upgrade to PHP 8.2 with Homebrew on Mac
2022-11-01
Deprecating spatie/data-transfer-object
2022-10-25
Readonly classes in PHP 8.2
2022-10-24
PHP 8.2 in 8 code blocks
2022-09-09
Uses
2022-08-25
Asymmetric visions
2022-08-17
What I would change about PHP
2022-08-08
Deprecated dynamic properties in PHP 8.2
2022-07-30
Light colour schemes are better
2022-07-25
PHP performance across versions
2022-07-21
The Road to PHP 8.2
2022-07-16
Uncertainty, doubt, and static analysis
2022-07-15
The evolution of a PHP object throughout the years
2022-06-27
PHP version stats: July, 2022
2022-06-16
Stitcher turns 5 🎉
2022-06-08
Clean and minimalistic PhpStorm
2022-05-30
My PHP enum style guide
2022-05-20
Attribute usage in top-1000 PHP packages
2022-05-18
Dealing with deprecations
2022-04-06
Dynamic Strategies
2022-03-25
The case for PHP generics
2022-03-25
Goodbye
2022-03-24
Why we can't have generics in PHP
2022-03-23
Generics in depth
2022-03-22
Generics in PHP: The basics
2022-01-24
PHP in 2021 (video)
2022-01-19
Dealing with dependencies
2022-01-15
"It's your fault"
2022-01-14
Twitter home made me miserable
2022-01-13
How I plan
2022-01-11
PHP in 2022
2022-01-10
PHP version stats: January, 2022
2021-11-26
Upgrade to PHP 8.1 with Homebrew on Mac
2021-11-25
What's new in PHP 8.1
2021-11-25
PHP 8.1: real-life performance benchmarks
2021-11-07
PHP 8.1 in 8 code blocks
2021-11-06
Generics in PHP (video)
2021-10-27
The case for route attributes
2021-10-09
PHP 8.1: new in initializers
2021-09-16
The birth and death of a framework
2021-09-11
PHP 8.1: readonly properties
2021-09-01
My IKEA clock, and software design
2021-08-31
re: On using PSR abstractions
2021-08-26
Named arguments and open source projects
2021-08-25
Rational thinking
2021-08-13
Why do I write?
2021-08-06
The Road to PHP 8.1
2021-07-26
We don't need runtime type checks
2021-07-23
Would you like some optimism or realism with your estimate, sir?
2021-07-16
PHP 8.1: before and after
2021-07-14
An event-driven mindset
2021-07-06
PHP 8.1: cloning and changing readonly properties
2021-06-29
What about typed request classes?
2021-06-28
PHP version stats: July, 2021
2021-06-23
Opinion-driven design
2021-06-18
What about config builders?
2021-06-15
A new major version of Laravel Event Sourcing
2021-06-03
Why we need multi-line short closures in PHP
2021-04-28
Running PHP code in parallel, the easy way
2021-04-15
PHP in 2021
2021-04-12
Fibers with a grain of salt
2021-04-09
Starting with event sourcing
2021-04-08
Thoughts on Event Sourcing
2021-03-31
Honesty
2021-03-25
Don't write your own framework
2021-02-17
PHP Enums before PHP 8.1
2021-02-17
PHP 8.1: Enums
2021-01-20
A storm in a glass of water
2021-01-13
PHP reimagined
2021-01-10
Websites should be more like Star Wars
2020-12-31
How to be right on the internet
2020-11-29
When I lost a few hundred leads
2020-11-28
Announcing Blogs for Devs
2020-11-26
What's new in PHP 8
2020-11-26
Upgrade to PHP 8 with Homebrew on Mac
2020-11-17
PHP 8: the null safe operator
2020-10-29
PHP 8: How to setup the JIT
2020-10-05
Front Line PHP
2020-10-02
What a good PR looks like
2020-09-26
Scopes in JetBrains IDEs
2020-09-26
Which colour scheme is better?
2020-09-17
The case for transpiled generics in PHP
2020-09-03
PHP 8: Attributes
2020-08-29
Don't get stuck
2020-08-28
Annotations
2020-08-21
Differences
2020-07-25
My journey into event sourcing
2020-07-23
PHP 8: named arguments
2020-07-20
PHP 8: before and after
2020-07-14
Shorthand comparisons in PHP
2020-07-11
Why we need named arguments in PHP
2020-07-08
PHP 8: match or switch?
2020-07-02
PHP 8: JIT performance in real-life web applications
2020-06-27
Braille, and the evolution of software development
2020-06-23
Abstract resources in Laravel Nova
2020-06-12
PHP 8: Constructor property promotion
2020-06-09
Survey results: type systems in PHP
2020-06-05
What does array + do in PHP?
2020-06-05
How to merge multidimensional arrays in PHP?
2020-06-03
Survey: type systems in PHP
2020-05-26
Improvements on Laravel Nova
2020-05-23
PHP 7.4 in 7 code blocks
2020-05-21
The IKEA effect
2020-05-20
Builders and architects: two types of programmers
2020-05-15
PHP 8 in 8 code blocks
2020-05-14
array_chunk in PHP
2020-04-14
Combining event sourcing and stateful systems
2020-03-26
Minor versions, breaking changes
2020-03-13
Event driven server in PHP
2020-02-14
Bitwise booleans in PHP
2020-02-01
Enums without enums in PHP
2020-01-17
PHP in 2020
2020-01-10
Preloading benchmarks in PHP 7.4
2019-11-28
Upgrade to PHP 7.4 with Homebrew on Mac
2019-11-26
What's new in PHP 7.4
2019-11-09
Relationship issues
2019-11-08
Laravel's HasManyThrough cheatsheet
2019-11-07
Can I translate your blog?
2019-09-16
Guest posts
2019-08-29
re: re: A letter to the PHP team
2019-08-28
A letter to the PHP team
2019-07-30
Things dependency injection is not about
2019-07-05
Preloading in PHP 7.4
2019-06-30
Typed properties in PHP 7.4
2019-06-07
Tests and types
2019-06-05
What are objects anyway? - Rant With Brent 02
2019-05-30
A project at Spatie
2019-05-14
I'm starting a podcast
2019-05-10
PHP in 2019
2019-05-07
SOLID, interfaces and final - Rant With Brent 01
2019-05-02
Arrow functions in PHP 7.4
2019-04-26
I'm starting a newsletter
2019-04-10
Unsafe SQL functions in Laravel
2019-04-01
Array destructuring in PHP
2019-03-21
Upgrade to PHP 7.3 with Homebrew on Mac
2019-03-11
Queueable actions in Laravel
2019-02-21
Craftsmen know their tools
2019-02-06
PHP 8: The JIT
2019-01-29
I'm building something
2019-01-22
Analytics for developers
2019-01-15
Share a blog: sebastiandedeyne
2018-12-21
Comparing dates
2018-12-20
Have you thought about casing?
2018-12-15
Share a blog: betterwebtype
2018-12-06
New in PHP 7.3
2018-11-14
Share a blog: codingwriter.com
2018-11-11
Structuring unstructured data
2018-10-26
PhpStorm OSX performance: October 2018
2018-10-25
Share a blog: assertchris.io
2018-10-24
array_merge or + in PHP
2018-10-16
Organise by domain
2018-10-16
Laravel view models vs. view composers
2018-09-10
Laravel view models
2018-08-27
Eloquent MySQL views
2018-08-15
The web in 2045
2018-08-10
Service locator: an anti-pattern
2018-06-09
The Visual Perception of Code
2018-06-05
Acquisition by giants
2018-05-19
Liskov and type safety
2018-04-30
Dependency injection for beginners
2018-04-25
PHPStorm performance issues on OSX
2018-04-15
What PHP can be
2018-03-15
PHPStorm tips for power users
2018-03-07
Responsive images done right
2018-02-13
Showing full MySQL foreign key errors
2018-01-20
MySQL query logging
2018-01-16
Where a curly bracket belongs
2018-01-09
MySQL import: JSON with binary character set
2017-12-24
Asynchronous PHP
2017-11-29
Optimised UUIDs in mysql
2017-10-22
Improving PHPStorm's performance
2017-08-27
Stitcher beta 2
2017-08-25
Mastering key bindings
2017-06-25
A programmer's cognitive load
2017-06-24
Responsive images as CSS background
2017-06-17
Object oriented generators
2017-06-09
Process forks
2017-05-30
Performance 101: building the better web
2017-05-25
Array objects
2017-05-20
Stitcher beta 1
2017-05-17
PHP Generics and why we need them
2017-05-01
Stitcher alpha 5
2017-04-27
The simplest plugin support
2017-04-21
Stitcher alpha 4
2017-03-02
Static site generators vs. caching
2017-02-26
Image optimizers
2017-02-18
Tackling responsive images - part 2
2017-02-17
Tackling responsive images - part 1
2015-08-24
Which editor to choose?