Building teams, crafting code,
making impact.

Learning Machine Learning

Learning Machine Learning

I’ve always been fascinated by science fiction and the advances of technology. And AI/ML has often represented a huge chunk of that because, for me, it’s the closest way that I, as a single person, can create life and feel like a god. And that’s really...

Building an SDK with PHP, part 3: Making it testable

Building an SDK with PHP, part 3: Making it testable

This post is part 3 of the “Building an SDK with PHP” series. Read Part 1 and Part 2 In our last article we’ve looked at how we can make our SDK configurable and today we’ll apply this to cover our SDK with several unit tests. What should...

Building an SDK with PHP, part 2: Making it configurable

Building an SDK with PHP, part 2: Making it configurable

This post is part of the “Building an SDK with PHP” series. Read Part 1: building an SDK. If you’ve followed along with the last post you have created a SDK in PHP while leveraging various PSRs such as PSR-17 and PSR-18. Today we’ll take this a step...

Ten years of testing htaccess rewrite rules

Ten years of testing htaccess rewrite rules

A little over ten years ago, I felt so annoyed with testing Apache’s mod_rewrite RewriteRules that I started looking for a tool to test them. The search was unsuccessful— no such tool to be found. https://htaccess.madewithlove.com/ Out of my frustration, I decided to write something...

Bounded contexts for dummies

Bounded contexts for dummies

Chunking up our code No matter how smart or intelligent we are, when things become too complex, we can no longer keep them in our brain completely. I recently saw this tweet from Kent Beck that makes a lot of sense. The goal of software design is to create chunks...

You are not Spotify: how efficient teams are born

You are not Spotify: how efficient teams are born

We see teams blindly following Scrum, Kanban, or the Spotify model and introducing roles into teams (such as a Site Reliability Engineer) because other companies blogged about it. These models and roles are created because of specific struggles these companies faced. While all these processes thus contain valid solutions to...

Building an SDK with PHP: Part 1

Building an SDK with PHP: Part 1

Whether you’ve built a private or public-facing API, at some point you or your users are going to want to communicate with it. To make things easier you might want to open-source an SDK that other developers can install. In this article we’ll take a look at how...

Get rid of ports in your docker development setup with Traefik

Get rid of ports in your docker development setup with Traefik

Reading tip: Learn how to run an ssh tunnel in your docker based development environment to easily connect to mysql or other non-http services. When working in a Docker-based development environment, you usually map the ports of your existing Docker container (port mapping or docker port forwarding) to a port...

Cypress or how I learned to stop worrying and love E2E

Cypress or how I learned to stop worrying and love E2E

Over my career I’ve dabbled in various forms of testing, both on the backend and front-end. I’ve tried various frameworks and experimented with different approaches, types of tests, and philosophies. From unit tests to Gherkin behaviour tests to E2E tests with Selenium in the good ol’ days, I’...

You might also like
Tech stack decisions for AI startups: what you need to know

Tech stack decisions for AI startups: what you need to know

The Hidden Dangers of a Big Bang Release

The Hidden Dangers of a Big Bang Release

Securely Mounting COMPOSER_AUTH Secret in Docker Builds

Securely Mounting COMPOSER_AUTH Secret in Docker Builds

Taming a Python: don't let the snake bite

Taming a Python: don't let the snake bite

There is a time and place for everything: managed services vs DIY

There is a time and place for everything: managed services vs DIY

You’ve successfully subscribed to madewithlove
Welcome back! You’ve successfully signed in.
Great! You’ve successfully signed up.
Success! Your email is updated.
Your link has expired
Success! Check your email for magic link to sign-in.