You open a file you didn’t write.
It came up because a ticket mentioned it. Or, maybe you were tracing a bug back, and this is where the trail ended. There’s a function that does three things a name like that shouldn’t do. A branch exists without any comment. It has a date in the git blame, showing someone made this choice eleven months ago. They never explained it to anyone, not even to themselves.
You didn’t get a walkthrough. You get the artifact of a decision with none of the reasoning attached. You sit there, rebuilding a piece of context. It once existed in one person’s mind for just an afternoon, then it vanished.
This is not a story about a bad developer. It’s what happens by default. Nobody wakes up planning to leave a mess. The function grew that way because the deadline moved twice, because the requirement changed after the first version shipped, because whoever wrote it fully intended to come back and clean it up once things settled down, and things never settled down. That’s not an excuse. It’s just a description. Almost none of the code you’re squinting at right now was left carelessly. It was left in a hurry, by someone who had every intention of being findable later and then wasn’t.
Which is the actual problem, not the mess: the absence of the person who could explain it.
I wrote about this from the other direction a few weeks ago: the half second before you write the comment on someone else’s shortcut, or don’t. That piece paused at the moment of choice. That’s where everything truly exists. But it left out what happens when nobody makes that choice at all. When the code ships unflagged, it leaves behind only a decision. That decision sits in production, waiting for someone to discover it.
You’re the one who finds it.
Hierocles, the Stoic who left us almost nothing except one useful diagram, pictured your obligations as rings. You at the center. Then household. Then relatives. Then neighbors, then your town, then everyone else, radiating outward until the circle includes people you’ll never meet. His instruction wasn’t to feel more for the whole world in some abstract, exhausting way. It was narrower and more practical than that: pull the outer rings inward. Talk about a cousin the way you’d talk about a brother. Talk about a neighbor the way you’d talk about a cousin. Let the language close the distance first, and the feeling catches up.
I used that model a few weeks ago for the person who never gets a name. This end user is three deployments removed from anyone who wrote the code they rely on. Today it’s closer to home. The person on the other side of this particular ring isn’t anonymous in the way a user base is anonymous. They have a name. They sit two rows over, or they’re the person who’ll get hired into your seat in eighteen months. Hierocles never thought about this version of the problem. You won’t meet this stranger. Still, you can shape their workday from a keyboard. You do this months before they even exist to you. The instruction doesn’t change. Pull them inward. Write for them like they’re standing behind you, because in every sense that matters, they will be.
It looks boring. A commit message that says why, not just what. A variable named for what it holds, not what it was called in the ticket. A PR description that says what you tried and rejected, not just what you shipped. None of this is heroic. None of it will get you a promotion. It’s care that goes unnoticed. When done well, the person benefits without seeing the effort behind it. They just move faster than they would have. They never know why.
You won’t get a thank you for the comment that made someone’s day easier eight months later. They won’t connect their smooth day to your five extra minutes. There’s no post-mortem for the disaster that didn’t happen because you left a trail. The only evidence that you did this well is an absence: the confusion never happened in the first place.
You are also, right now, someone’s future mess. Not because you’re careless. You’re limited, moving quickly, and doing your best. The next person won’t see your challenges from their view. Context you don’t have isn’t proof of negligence. It’s just the ordinary condition of inheriting anything.
So the obligation runs in both directions. You clean up what you can read. You leave something legible for what you can’t finish. A person you will never meet opens a file. They find what you left behind. Then, they either spend their afternoon piecing together your reasoning or don’t need to at all.
That’s the whole job. Not the ticket. The version of it nobody puts in the ticket.
👉 If you enjoy reading this post, feel free to share it with friends!
Or feel free to click the ❤️ button on this post so more people can discover it on Substack 🙏
You can find me on X and Instagram.


