Engineering

169 posts
Liskov Substitution Principle Explained

Liskov Substitution Principle Explained

The Liskov Substitution Principle is one of the five design principles that make for SOLID code, and probably one of the hardest to fully grasp. Before we dive into how we can apply it to our code, let’s take a look at the definition: In a computer program, if...

Chrome alternatives for devs

Chrome alternatives for devs

What’s up with Chrome? Recently Google has been in the headlines a lot due to an upcoming change affecting Chrome, but the gist of it is the following: The proposed design changes would replace the API relied upon by privacy extensions like uBlock and Ghostery with another designed to...

Using MySQL for Testing (on Laravel)

Using MySQL for Testing (on Laravel)

We have a really good testing culture at madewithlove and, in one of the projects I am working on, we have a decent suite of tests. A big chunk of these tests are Feature Tests. In this article, I’ll describe the process of switching a project’s test suite...

Why good engineers avoid cool solutions

Why good engineers avoid cool solutions

Engineers love innovation, shiny tools, and creative ways of solving problems. This is a good thing and a bad thing. It’s good because we do need new solutions to go forward, but it’s also a bad thing to risk stability, of both the product and the team, by...

The Domain-Driven Design fallacy

The Domain-Driven Design fallacy

Most people get to know Domain-Driven Design through the tactical patterns. Concepts like Value Objects, Entities, Aggregates, Repositories and Event Sourcing are all strongly linked to DDD. That is most likely the reason why many people interpret Domain-Driven Design as a technical thing. This is quite a misconception though. When...

Does code need to be perfect?

Does code need to be perfect?

In the past months, I have asked myself a lot why we always strive to write perfect code. Picking up coding again for an internal project made me realise our team (and probably a large part of the rest of the software development world) spend a lot of time on...

Creating a declarative oscillator component with React hooks.

Creating a declarative oscillator component with React hooks.

Most developers are familiar with the concept of imperative and declarative programming.  Imperative programming is when you provide the program with the exact steps to achieve the output with an emphasis on how.  Declarative programming is a coding style where you focus on what the piece should achieve with less...

Immutability with immer

Immutability with immer

Why immutability? When working on a React application that needs to handle state, one of the main pitfalls to watch out for is accidental mutations. This is fancy talk for mistakenly modifying stuff you didn’t want to change: let user = { name: "foo" }; let updated = user; updated.name...

Using Prettier in PHP

Using Prettier in PHP

What is Prettier? Originally from the Javascript ecosystem, Prettier is a code formatter which means it takes your code and makes it – as its name suggests – prettier. There are code formatters for many languages; even Javascript has quite a few of them. Prettier, however, is currently one of the most...

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.