Engineering

194 posts
Serverless functions with Vercel

Serverless functions with Vercel

As you (might) know, our current website is built on Gatsby. I love the fact we’re generating a super cacheable, fully static site with every build, but this adds a couple of limitations. One of the limitations of this setup is having no backend (I know that sounds funny)...

I'm starting a greenfield project and I'm terrified.

I'm starting a greenfield project and I'm terrified.

I started a greenfield project this week. I knew it was coming after one of our product managers told me about it during lunch a couple of weeks ago. To be honest with you, I was terrified. I’ve been at madewithlove for a little over 4 years now, working...

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...

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.