My first months at Moxio

In December 2019 I started my working days at a company where I had already fulfilled two different functions during my studies at TU Delft. Even though I already learned many things at Moxio, it looked like there was a good match between what I would like to develop in my first working years and […]

Ignoring bulk change commits with git blame

A long-standing objection to making bulk changes to code using automated tools (e.g. to conform to a given code style) is that it clutters the output of git blame. With git 2.23, this does not have to be the case anymore! In this post I will start by explaining the value of git blame and […]

Prometheus Service Discovery using Puppet

In this blog post I would like to share how we use some neat Puppet features and modules to install Prometheus and to let it automagically discover the services it should monitor. Introduction At Moxio we prefer to work smart instead of hard since there’s more to life than just work. We also really value […]

Mutation testing in PHP

Recently I spent an afternoon experimenting with mutation testing in PHP. In this post I would like to share the background, the main idea of mutation testing, and the lessons I’ve learned from it. Moxio Academy At Moxio we regularly schedule a Moxio Academy session. That means we put our normal work aside for an […]

Creating a design system – from project to process

When we started building a design system we approached it as a project, but as we all know a design system should be always evolving. Therefore it would be a never-ending project. And a never ending project.. that’s something nobody really wants. In this blog I will share how we started our design system as […]

Finding memory issues in PHP programs – Part 2

The cause of a memory issue is often hard to find. In the previous post, we looked at two methods for finding the culprits of a memory issue. In case you missed it, check it out! In this post, we will look at another tool for finding memory leaks: php-memprof, created by Arnaud Le Blanc. […]

Your design system is up and running – what’s next?

Big steps have been made since we first started with our design system project. It has become a well-oiled process and everyone is familiar with the tool. We were curious to know how the rest of the team felt about working with it. Time for some internal research! Through a series of interviews, card sorting sessions […]

Best practices for PHP exception handling

Handling errors or other non-‘happy path’ situations is essential when creating robust PHP applications. While errors were the main construct to do so in PHP 4, exceptions have been around since PHP 5. They should nowadays be considered the main mechanism for handling alternative or exceptional paths. It seems that these alternative paths still don’t […]

Finding memory issues in PHP programs – Part 1

“Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 528384 bytes).” If this error sounds familiar, this post is for you. The problem with this message is that it does not tell you a lot: it does not tell you where all the memory was allocated. Locating the places where a lot […]

Start testing with PHPT tests in PHPUnit

Over the years, automated testing has become an established practice in software development. It thus has also become an essential skill to learn for any developer. In the past few months, I have talked to several developers who had recently started with testing in PHP. Some of them expressed they found their testing framework of […]