From our SaaS audits
What we find inside SaaS companies
Patterns from the technical due diligences we run for investors and boards.
Newsletter
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.
From our SaaS audits
Patterns from the technical due diligences we run for investors and boards.
Agents follow the patterns in the surrounding code more reliably than they follow your rules, so every inconsistent naming scheme and half-migrated architecture is a lesson you're teaching them. The fix isn't another rule file. It's deleting the bad example.
Two agents implemented and reviewed a full architecture refactor across five iterations, with zero lines of production code written by hand. What neither agent caught was four innocent lines in a coordinator that had quietly started making policy decisions.
Codex got the same god class Claude had failed to remove, plus one thing Claude never had: a target architecture. An implementing agent and an independent reviewer then took three rounds to converge, because agents renovate around bad architecture rather than delete it.
Handing an AI your engineering conventions cleans up the code without fixing the architecture. A 5,000-line god class shrank to 500 lines across tidy domain files, and an independent reviewing agent still returned FAIL: authority never left the central object.
Teams accrue learning debt when shipping always beats getting better. It stays invisible on every dashboard, compounds fastest under AI-speed change, and quietly caps the ceiling a buyer is willing to price.
A good technical due diligence report is smaller than you expect, separates fact-checked observations from labelled judgement, and answers the specific questions your deal depends on. No score. The real test: does it change what you do on Monday morning?
AI is making the knowledge side of consulting cheaper by the day. Teams still avoid the legacy system. The gap is not expertise. It is the structural courage to act on what everyone already knows.
Every legacy codebase is a palimpsest: layers of decisions written on top of each other, none fully erased. Geoffrey Dhuyvetters argues that what looks like technical debt is often stratigraphy, and you read it before you rewrite it.
The quick fix isn't cheaper. It's cheaper today. Bram Devries traces how deferred fixes compound into emergencies, and argues that naming the trade-off out loud is the only way to break the cycle.
A mobile app, past its usefulness, was days from being phased out. One email reversed the decision. No discussion. No input from engineering. This is what happens when decision-making drifts too far from the work.
Last week, we deleted 16,000 lines of code, rewrote 11,500, migrated frameworks, ripped out React, and swapped our entire CSS setup with AI. It took less than 6 hours.
Technical debt used to justify meetings, trade-offs, and dedicated sprints. AI has changed that. Cleanup is now fast, cheap, and continuous. Teams that stop debating and start fixing unlock faster delivery and better outcomes.
AI is changing what small teams can ship, boilerplate gone, prototypes faster, experimentation cheaper. But lower costs of building don't mean lower costs of building the wrong thing. It just means you can do it faster.
AI made writing code faster, but the real economics of software engineering were never about typing code in the first place.
AI won't make software engineers redundant. It will expose what engineering was always supposed to be about: understanding systems, not just writing code.