Code quality and design

53 posts
Improving performance and reliability of client's core business component using a simple running total

Improving performance and reliability of client's core business component using a simple running total

A client project I work on required some processing, scheduled nightly at 2am. I’m a curious creature, by nature, so I was eager to learn what keeps the queues busy for up to 30 minutes in the middle of the night. It must have been something important! The business...

Performance tips for Laravel

Performance tips for Laravel

Recently, we were looking into some Laravel PHP8 performance issues we were experiencing on one screen of a web application. This screen would show an aggregation of several statistics across the application and would include things like: * The total number of tickets, grouped by their status (open, closed, …) * The total...

Help, I’m creating a file upload

Help, I’m creating a file upload

Every software engineer has at some point in their career been asked to build a file upload. Perhaps it was to let a user upload an avatar, to import a bunch of contacts into a CRM, or to attach images or legal documents to a real estate property. On the...

Pulse: Episode 2 - Between Us - Refactoring

Pulse: Episode 2 - Between Us - Refactoring

The madewithlove team dives into their first Between Us session where they discuss problems that they encounter through their daily work. Today’s topic is refactoring. Vinch Battaglia, CTO in residence, is joined by Jonas Drieghe, software engineer, and Dimi Van Lunter, engineering manager, to gain their insights. Listen to...

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

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

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

Never talk to strangers

Never talk to strangers

Talking to strangers in 1930s Moscow was not a smart thing to do. Mikhail Alexandrovich Berlioz (chairman of the management committee of one of the biggest Moscow literary clubs – MASSOLIT) and his young companion, poet Ivan Nikolayich Poniryov (who wrote under the pseudonym of Bezdomny) knew that all too well....

Typed property must not be accessed before initialization

Typed property must not be accessed before initialization

PHP7.4 introduced this cool new feature called “typed properties” which add the existing PHP type system to class properties. This means that you can now enforce which types a property has without having to encapsulate it in an object. An example class containing typed properties looks like this: class...

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.