Systems Thinking Lab Newsletter: sharpen your engineering judgment, every Saturday

'When "saved" does not mean saved'

The weekly letter from Systems Thinking Lab: systems thinking insights for junior engineers, framed through the seven building blocks.


This week I put AI agents on a real job: rewriting the bios on all eight of my social profiles. They did the work. I reviewed and approved each one from my phone.

I have profiles across LinkedIn, TikTok, Threads, and five others, and over the years they had drifted. Each one described what I teach a little differently. I wanted all eight saying the same thing, so the agents spent an evening rewriting every bio, and I approved each one as it came back.

Simple job. Then one of the agents tried to save a new bio to TikTok, and the app said the save worked when it had not. The character counter read 78 of 80, the app returned a success, and the old bio was still sitting there untouched, exactly as before.

That is the beat I want to write about, because it is not really about TikTok.

When the agents started, they did the obvious thing: they read each platform's own documentation for how long a bio could be and wrote to fit. That was a mistake. Threads documents a 500-character limit; the real field holds 150. We also walked in with our own note that Facebook's bio maxed out around 101 characters; the real field held 255. One number was the platform's error and one was ours. Both failed the same way: nobody had opened the actual field and counted.

Then there was the TikTok save that reported success and changed nothing. If no one had gone back to look, that bio would have stayed wrong for as long as no one looked, and nothing on the page would tell a visitor it had happened. The only thing standing between "the app said it worked" and "it actually worked" was someone opening the profile to check.

That is the whole lesson, and it is smaller and less dramatic than it sounds. Verify the result, not the report.

A few other things happened that night. Halfway through, I decided the bios should lead with a different idea than the one they had been leading with, so I asked the agents to rewrite all nine drafts, and they did, before anything shipped. Then, before a single change went live, a separate verification pass re-checked the whole batch against the live pages, hunting for exactly the kind of silent failure I just described. Ten of the twelve fields were verified against the live page before I looked at one screenshot. The last two waited for my thumbs: edits the platforms only allow from their mobile apps.

Here is the part I think people get backwards about working this way.

The agents did not replace my judgment. They asked more of it.

Every decision that mattered was mine. Which bio was actually the right one. Which of two disagreeing numbers to trust. Whether to scrap the drafts at midnight and start over. What "done" meant, and when I was allowed to stop checking. The agents did the work. I judged the result at every step, against the real profile, not against what the app claimed about it.

This is the same discipline the seven building blocks teach, only at the scale of a profile bio instead of a production system. A Service is not working because it returned a success code. It is working because you followed what actually happened after that response and it matched what you expected. A write that reports success while quietly saving nothing is not a rare bug. It is the ordinary failure mode of anything no one has personally checked.

You cannot judge a system you cannot see. And you cannot see it by trusting what it says about itself.

There are two ways to get this wrong, and I have watched engineers do both.

One is to hand the whole thing to the AI and walk away: trust every "saved," every success code, every green check. That is how a bio stays broken for a month.

The other is to refuse to hand off any of it: touch every field yourself, on every platform, because that feels like the only safe way. That does not scale to eight profiles in one night, and it will not scale to a real system with fifty moving parts either.

The skill is in the middle. Decide what has to be verified, and build something, a person or an agent, that verifies it before you have to ask.

In Course 1 I teach the seven blocks for exactly this: so you can trace what a system actually did, instead of taking its word for it.

You do not trust the response. You verify the result.

P.S. If this is the first thing you have read from me, the free course walks through the same instinct, one building block at a time: https://systemthinkinglab.ai/learn