Technical debt

Newsletter

From Andreas' Desk

A bi-weekly letter from our CEO Andreas Creten for SaaS leaders and CTOs: what we see in audits, AI engineering and the companies we work with.

You're in — check your inbox to confirm.

From our SaaS audits

What we find inside SaaS companies

Patterns from the technical due diligences we run for investors and boards.

See the audit findings

The unbundling of engineering value (Part 1)

Here's part one of a post I shared with our team on the radical change and evolution of our jobs. AI won't make software engineers redundant. It will expose what engineering was always supposed to be about: understanding systems, not just writing code.

How AI is quietly killing open source

LLMs generate code on demand, but they do not replace maintainers, communities, or years of shared learning. This piece explores how AI-assisted coding risks fragmenting logic, increasing technical debt, and slowly eroding the open source ecosystem.

A guide to vibe coding vs AI-assisted development

Vibe coding or AI-assisted development? The choice isn't binary, but getting it wrong at the wrong stage will cost you. This piece breaks down when to embrace speed over architecture, when to take back control, and why the best teams don't pick sides.

The value of code review

Code reviews improve more than code quality. Done well, they shape better problem-solving, expose edge cases, and spread knowledge across teams. Learn how small, focused reviews and AI support help teams ship faster with confidence.

Cloudy with a chance of function calls

In the first of a series exploring infrastructure fundamentals, Brenden addresses the most frequently asked questions about what's really happening under the hood with complex pipelines and AI/data systems, bringing the cloud to life.

Legacy vs technical debt: how investors can spot hidden risks in software products

What can investors do about legacy code to prevent your startup from failure? What is the difference between legacy and technical debt?

Ignoring revisions when using git blame

Tired of git blame pointing to useless formatting commits? Learn how to ignore revisions with --ignore-rev or .git-blame-ignore-revs to keep Git history accurate and helpful.

A Rubber Duck’s Guide to Better Engineering: Part 2

Professor Quacks is back with five more principles for better engineering: build tools that help, move with healthy urgency, plan wisely, work well with others, and lead by example. These aren’t just coding tips, they’re culture-shaping lessons.

Redux is legacy - modern ways to approach state in React

Stuck in Redux boilerplate for a simple React task? You're not alone. Learn how tools like Tanstack Query, nuqs, and react-hook-form help you replace Redux with simpler, more maintainable solutions—backed by madewithlove's engineering expertise.

Fitness for purpose: taking risks with quality

When product teams obsess over perfect quality, they risk standing still, but by embracing a 'fit for purpose' mindset and planning for instability, they can move faster and smarter.

These questions will be answered after technical due diligence

Investing without technical due diligence is like buying a used car without opening the bonnet. This article demystifies the audit process, shares what red flags we look for, and explains why investors should care deeply about code, processes and product.

Technical due diligence is broken: going beyond the checklist

Most technical due diligence audits focus on code quality and tooling, but the real risk lies in invisible processes, fragile teams, and product chaos, which is why madewithlove audits the full stack of your organisation, from code to culture.

A Rubber Duck’s Guide to Better Engineering

Professor Quacks reminds us that curiosity, accountability, and good teamwork are the bedrock of great engineering.

What would it cost to rebuild this software from scratch?

Evaluating the cost of rebuilding software from scratch involves more than counting development hours; it requires recognising the invisible value of user feedback, lessons learned, and embedded experience.

AI writes bad code, but what if that’s the good news?

Should engineers fear messy AI code or embrace it as a tool for fast product validation? This story reveals why your cleanest code might not be your most valuable contribution. Why founders will use AI generated code more and more for MVPs and prototyping and why engineers should embrace this.

Subscribe