Engineering

165 posts
Let's have pessimistic locking strategies

Let's have pessimistic locking strategies

When managing data, you need to take into account several matters. One of them is concurrency. It happens when multiple people try to simultaneously access some form of data (entities, objects, database records, etc) to either see it or update it. Imagine there is a customers data table and I...

Why do we use bad color schemes?

Why do we use bad color schemes?

If you’re a developer, odds are most of what you’re looking all day is text and code. Whether it’s in a terminal, editor or webpage, you look at text, it’s our main medium of work. So to make life more bearable and to ease things up...

Makefiles for automation and better dev-UI

Makefiles for automation and better dev-UI

As our projects grow in complexity, the list of tools they require also grows and remembering how to use all of them (with their different syntaxes) can become cumbersome. On top of that, some tasks require multiple steps and tools to be run sequentially. We can create our own aliases...

The hidden complexities of search

The hidden complexities of search

Search is one of those life-changing innovations that we started taking for granted. Companies like Google make it seem so easy to search and find whatever you are looking for in a heartbeat. However, it takes a lot of effort and thought to design and build the right search algorithm...

Optimizing JavaScript packages for tree shaking

Optimizing JavaScript packages for tree shaking

As an author of (open source) packages, I think you have the responsibility to protect the bundle size of your package consumer. When you publish a package that exports a whole range of modules (for example lodash, ramda, date-fns…) you want to make sure the package is exported in such...

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

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.