Let's talk about code

Hi, I’m Michiel. I’m a professional programmer for more than a decade. I work mostly in PHP and javascript, mainly in Magento and Laravel. I write testable code and love to give testing workshops to you and your colleagues. You can hire me for freelance/consulting jobs.

Contact me Hire me


Magento 2, Magento 2 local environment, Hyvä

Installing Hyvä through the CLI

Need to install Hyvä in a fast and easy way through the CLI? In this article I will explain to you how I achieve that.
WordPress, GDPR, GitHub Actions, Continuous Integration

Make GDPR safe backups for WooCommerce

A client of mine runs on WordPress. But this has a lot of privacy-sensitive data in their backups. I don't want this data in my local system. Let's see how we can solve this.
Magento 2, Continuous Deployment, GitHub Actions, Deployer

Deploying Magento using Deployer and GitHub Actions

This guide walks you through Magento 2 deployment, covering Deployer Plus, Hyvä support, preparing Magento, and leveraging GitHub Actions for an efficient process.
Magento 2, Magento 2 testing, Magento 2 local environment

Using a debug.php with Magento

Sometimes you have some code you want to test, but you don't want to go the full module/controller route, but the code is too complex for magerun dev:console. This article is for you.
Magento 2, Testing, Integration test

Testing the email sending in Magento 2

Sending emails in Magento is a huge PITA. But testing if an email actually is sent, and checking the contents, is actually quite simple.
Magento 2

Invoking javascript in the Magento frontend

There are multiple ways in Magento 2 how you can use Javascript in the frontend. In this post I'll go over the options.

Using Xdebug 3.0 with PHPStorm

Yesterday was Xdebug 3.0 released, but i broke my ability to use breakpoints with Xdebug. In this blog i describe the steps i took to fix this.
Magento 2, Magento Proxy, Coding tips, di.xml

WTF is a proxy in Magento?

Proxies in Magento allow you to wait with the rendering of the object until it is actually needed, but what does that even mean?
Valet Plus+, Magento 2

Running Magento 2.4.0 on Valet+

Valet+ has support for ElasticSearch 6.8, but Magento 2.4.0 requires you to install a newer version, 7.6 or higher. How do you handle that with Valet+
Magento 2, Magento 2 local environment

Save environment specific settings in your env.php file

This scenario has happened to me too many times: I downloaded a backup of a site (stripped from customer data of course), import the database in my local environment and open the site. At this moment you will get redirected to the site where the data originates from and you figure you need to change some URLs.