Engineering

165 posts
Communicating about change is hard. We’re making it easy.

Communicating about change is hard. We’re making it easy.

ChangeHub has been part of our madewithlove family for a long time. The first-ever commit dates back to November 8, 2014, during our team retreat in Lisbon where it started out as a small proof of concept to make it easier for our product managers and clients to know what...

Towards better code reviews

Towards better code reviews

Building software isn’t easy. Add the opinions and needs of multiple people into the mix and it can feel almost impossible at times. Learning to collaborate with multiple people on the same software is an essential skill for every software engineer nowadays, as almost no software gets built and...

Snapshot through the heart

Snapshot through the heart

While snapshot testing has been around for a while in the form of visual snapshots (used in visual regression testing), it’s clear that the introduction of textual snapshots in Jest a few years ago had a big impact on testing, not only in JavaScript but in other languages as...

Abstractions as simplifications

Abstractions as simplifications

As I was browsing through Twitter the other day, I saw someone complaining about abstractions among the lines of “we add abstraction layers on top of more abstraction layers and expect the system to be easy to maintain.” I understand this feeling because I’ve also felt that way before....

Pointers and tips: dispelling the magic of git merge

Pointers and tips: dispelling the magic of git merge

Creating branches in git is blazingly fast and having a bunch of them is pretty cheap. This means we get to merge them quite often. But how is a branch represented internally and what does it mean to merge them? Understanding how this works internally will help you understand why...

Introduction to Inertia.JS

Introduction to Inertia.JS

Recently, one of the most trendy stacks is the JAMStack, which was popularized by Netlify. It’s mainly SPAs but committed to supporting statically generated sites which means no backend, a bit of JS that consumes APIs, and some HTML (I’m overly simplifying here). Regular SPAs can have a...

Grandfathering in legacy

Grandfathering in legacy

So many problems in legacy or brownfield applications stem from invalid state being dragged around throughout the whole application and causing a bug somewhere far away from its origin or just dying a silent death. I’d like to introduce you to a method to handle invalid state in new...

What we talk about when we talk about testing

What we talk about when we talk about testing

Imagine if airplane companies never tested their airplanes. They just ship them when they’re done. Would you feel safe boarding a plane like that? Fortunately, airplanes are not built like that. Flying is statistically the safest way of transportation and there are strict regulations and tests airplanes must abide...

Our htaccess tester tool has new features

Our htaccess tester tool has new features

Writing .htaccess files can be an annoying task. There’s a lot written about it, but it remains a hard topic to get right, especially if you’re only doing this infrequently. Testing those files can be hard because it requires a local Apache server running or to upload it...

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.