Articles & field notes
Notes on architecture, backend systems, and what 200+ interviews taught me about senior signal.
Symfony Bundle Features
Part 12 of 13 in the PHP Package Development series This is it - the final post. In Part 11, we set up the skeleton for our Symfony bundle: the bundle class,…
Building Symfony Bundles
Part 11 of 13 in the PHP Package Development series In the last three posts, we built a Laravel package around our jakovic/text-toolkit library. Now it's time…
Testing Laravel Packages
Part 10 of 13 in the PHP Package Development series In Part 8 and Part 9, we built a full-featured Laravel package with service providers, facades, Blade…
Laravel Package Deep Dive
Part 9 of 13 in the PHP Package Development series In Part 8, we covered the fundamentals of Laravel packages - service providers, config publishing, package…
Laravel Packages Basics
Part 8 of 13 in the PHP Package Development series For the first seven posts in this series, we built jakovic/text-toolkit - a framework-agnostic PHP package.…
Advance Package Patterns Part 2
Part 7b of 13 in the PHP Package Development series In Part 7a, we covered the Strategy pattern, Driver/Adapter pattern, configuration objects, interface-based…
Advanced Package Patterns Part 1
Part 7a of 13 in the PHP Package Development series Your package works. It has tests, it's on Packagist, and it follows quality standards. But right now, it…
Package Quality Essentials
Part 6 of 12 in the PHP Package Development series Your package works. It has tests. But would you actually install it if you found it on Packagist? Probably…
Publishing To Packagist
Part 5 of 12 in the PHP Package Development series You've built a package. You've written tests. It works. Now what? It's time to share it with the world. In…
Testing With PHP Unit Pest
Part 4 of 12 in the PHP Package Development series You've got a working package with real code. The Str class has methods for slugifying text, truncating…
Writing Your First Package Code
Part 3 of 12 in the PHP Package Development series In Part 2, we set up our jakovic/text-toolkit package with a proper directory structure, PSR-4 autoloading,…
Setting Up Your First Package
Part 2 of 12 in the PHP Package Development series In Part 1, we covered why building packages matters and what makes a good one. Now it's time to get our…
Why Build PHP Packages? A Developer's Guide to the Composer Ecosystem
Part 1 of 12 in the PHP Package Development series Every PHP developer uses packages daily. You composer require something, it works, and you move on. But have…
LaraDumps Debugging Game Changer
LaraDumps really changed how I debug Laravel framework. I spent years using dd() and dump() like everyone else. Sprinkle them around, refresh the browser,…
Laravel timezone - important settings
I would like to share one situation that I had while working on one of my projects and how timezone had effect on this. Project I was working now was about…
Voxxed Days Crete 2025: A Developer's Journey Through Innovation and Inspiration
From September 26-27, 2025, I had the incredible opportunity to attend Voxxed Days Crete, one of the most prestigious developer conferences in the…