Enhancing software, elevating teams.

Branded types in TypeScript: when string just isn’t enough

Branded types in TypeScript: when string just isn’t enough

Discover how branded types can improve your TypeScript code quality, make your intent clearer, and catch bugs before they even compile.

🌶️ Why Native PHP shouldn’t exist

🌶️ Why Native PHP shouldn’t exist

Building desktop apps with NativePHP misuses Laravel’s core strengths, creating potential security risks and practical limitations.

Why involving engineers in product meetings saves time and money

Why involving engineers in product meetings saves time and money

Involving engineers in product specification meetings reduces costly iterations and accelerates feature launches for SaaS startups.

🌶️ SaaS startups should never use microservices. Like, never-ever.

🌶️ SaaS startups should never use microservices. Like, never-ever.

Many SaaS startups over-engineer their architecture with microservices. Here's why that's usually a costly mistake—and what to do instead.

Should we really ship fast and break things?

Should we really ship fast and break things?

Should startups test everything before shipping? We break down how to balance testing with product velocity—and why 100% coverage is often the wrong goal.

Vibe coding and the junior developer dilemma

Vibe coding and the junior developer dilemma

AI tools are transforming how we code, but they're not replacing the experience needed to build real software. Let’s talk about what vibe coding gets right—and what it gets very wrong.

So you messed up

So you messed up

Everyone breaks production eventually. This guide walks through how to take responsibility, communicate with your team, and make real improvements after something goes wrong. A must-watch for engineering managers and developers.

When don't you need a fractional CTO

When don't you need a fractional CTO

Does every startup need an interim CTO? Fractional CTOs can accelerate growth and solve complex challenges—when brought in at the right time. Learn when it’s too early, too risky, or simply not the right fit for your business.

AI overdose: When developers stop thinking and start prompting

AI overdose: When developers stop thinking and start prompting

AI tools are reshaping how junior engineers approach problems, often replacing simple solutions with overly complex ones. Here’s why foundational thinking still matters. A real-life case of AI over-engineering gone wrong highlights why understanding problem domains still beats prompting.

You might also like
How to pragmatically leverage AI as a startup

How to pragmatically leverage AI as a startup

Cloudy with a chance of function calls

Cloudy with a chance of function calls

Analyse your tables for better performance

Analyse your tables for better performance

No designer? No problem with v0

No designer? No problem with v0

The stainless steel lesson: why boring technology outlasts shiny frameworks

The stainless steel lesson: why boring technology outlasts shiny frameworks

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.