Writing

Technical articles on software engineering, architecture, tooling, tutorials and beyond.

Pinned · 4 min read

Narrale: A Quiet Workspace for Novelists

Why I built it, and where AI belongs in a writing app

NarraleWritingAI
· 3 min read

How to Combine Arrays in PHP: Complete Guide

A comprehensive guide to merging arrays in PHP

PHParraysmerge
· 4 min read

Apply Patches to Vendor Libraries using Composer

PHPComposerdependencies
· 2 min read

Anemic vs Rich Domain Model

Where should business logic live?

PHPOOPDesign Patterns
· 2 min read

Link Local Packages using Composer

PHPComposerdependencies
· 1 min read

Avoid using array_merge within a loop

phparraysmerge
· 2 min read

Jobs (Queues) vs. Events

When to use each one?

programmingjobevent
· 2 min read

Git: Reset last commit

git reset --soft, git reset --hard & git revert

gitgit resetgit revert
· 6 min read

New PHP 8.4 array functions

array_find, array_find_key, array_all & array_any

PHParraysorting
· 2 min read

Git Rebase onto

How to modify the commit history with git rebase onto

GitRebaseOnto
· 3 min read

The testing pyramid

How to structure your test suite 🗼

ProgrammingTestCohn
· 2 min read

Three dots in PHP

First-Class Callable Syntax, Variadic function & Argument unpacking

PHPfirst-classcallables
· 7 min read

PhpStorm tricks ✨

Customize the IDE with templates, plugins and more

PhpStormIntellijSettings
· 4 min read

Functional Tests

Unit, Integration and E2E tests

TestingTest typesUnit Testing
· 1 min read

How to create a global .gitignore file

and forget to ignore the same files over and over again! ⚡️

GitProgrammingGitignore