Back to Writing

The Quiet Doubt That Sits in the Background

/

It doesn't announce itself

There's this doubt that just stays. It doesn't stop me from shipping. Doesn't make me spiral. It's quieter than that. More like a background process you forgot you were running.

Most days I barely notice it. I'm deep in something. Fixing an issue, cleaning up a flow, wiring things together. Everything looks fine. And then there's this small pause. A half-second where I don't fully trust what I'm looking at.

So I check again. Run it one more time. Not because something failed. Just because I'm not done convincing myself it won't.

You earn it by watching things break

I didn't choose this. It showed up on its own after enough time building things.

You see a sync job skip a row and nobody catches it for two weeks. A small assumption about data shape holds up in dev and quietly collapses in production. Something you were confident about turns into a three-day detour because of one edge case you missed.

After enough of those, your brain just starts doing the work automatically. It flags things before you ask it to. That query looks fine, but what if the table grows. That abstraction is clean, but what happens when someone needs to extend it in six months.

You don't plan to think like this. You just start doing it.

Decisions don't feel done

I'll make a call. Pick an approach. Implement it. Ship it. Move to the next thing.

Then later — could be hours, could be the next morning — I'm thinking about it again. Was that the right level of abstraction. Did I lock in a pattern too early. Is this going to hold when usage doubles.

Nothing urgent. No panic. Just these quiet loops running in the back of my head.

Sometimes I go back and adjust. Sometimes I leave it alone because the answer is genuinely fine. The review process keeps going either way.

Where it actually helps

It catches stuff.

The API sends back something slightly off from what the frontend is expecting. Weird timing issues in async flows. Assumptions baked into a schema that made sense three months ago and don't anymore.

Earlier in my career I'd finish something, feel good, move on. Then something would break in a way that was obvious in hindsight. The kind of thing you'd catch if you just sat with it a little longer.

The doubt is what makes me sit with it. I notice things I'd otherwise skip.

It doesn't care about good days

This is the part that surprised me. You'd think a clean implementation would quiet it down. Everything passes. No surprises. The system behaves exactly like you designed it to.

Still there.

Maybe a little quieter. Maybe I move through the checks faster. But the instinct to double-check doesn't go away just because things went well. It doesn't scale with outcomes. It's just on.

It gets heavier sometimes

Some days it tips from useful to exhausting. You finish something solid and you're still waiting for something to go wrong.

Those days are harder. You know intellectually that the work is good. You can see it working. You just don't feel done.

Most of the time I can tell if it's flagging something real or just spinning. That took time. I still get it wrong sometimes.

Working with it

I gave up trying to make it go away a while back. Waste of energy. It's part of how I operate now and the work is better for it.

The trick is giving it the right amount of room. Enough that it catches real problems. Not so much that I'm stuck rechecking things that don't need rechecking.

Some days the balance is off. Most days it's fine.

It's just there

I build. I check. I ship. I move forward. And the doubt sits in the background doing its thing.

It just is. Part of the job. Part of building things that need to hold up when you're not watching.

So I let it stay.