A Game of Inner Critics
Exploring the Board of Inner Critics as a Software Developer
We all have an unreliable but confident set of voices inside of us. A collection of perspectives, all sitting on top of a past of insecurities and bad moments.
What once might have been helpful so often has become something that hinders.
The following is a story and some ideas for working with this set of voices. To understand how your Board of Inner Critics formed, and to learn to manage them as you progress as a software developer.
In the year when the machines began to speak politely to one another—sorry to interrupt your packet, old chap, but might you reroute through Frankfurt?—there lived in a narrow flat above a bakery a developer named Marisol Calderón, who was, in the eyes of her colleagues, both reassuringly competent and faintly mysterious in the way all people appear when they do not narrate their insecurities out loud.
Marisol kept a small ceramic bowl of limes on her desk because the scent, when the peel broke, made the world briefly legible. She did not know why this mattered to software, but she suspected it did, the way people suspect the moon matters to tides without having checked the equations.
Her current job involved a system of such baroque complexity that it sometimes seemed less like an application and more like a continent—an old one, with mountain ranges of legacy code, swamps of undocumented “temporary” fixes, and the occasional sacred ruin everyone avoided for fear the gods of procurement would awaken.
The system had a name, of course, as all continents do. It was called HERMES, which was optimistic, because this HERMES mostly delivered confusion.
Marisol’s team called her “steady.” This was a compliment, like calling a horse “reliable,” and it came with the unspoken assumption that she would not bolt when the production alerts began to sing. She smiled when they said it. She nodded. She pushed her glasses up the bridge of her nose with a practiced motion that suggested confidence.
And then one evening she went home and found that, waiting for her, as faithfully as the rent, was the Board.
She did not call it the Board at first.
At first, it was only a voice. A familiar, close voice that lived behind her sternum, like a small tenant who had moved in without signing anything and who now offered unsolicited opinions about everything she did.
“You don’t really know what you’re doing”, it said, whenever she opened a pull request.
“You’re going to break it”, it said, whenever she touched the deployment pipeline.
“They’ll find out”, it said, whenever someone praised her.
It wasn’t loud in the beginning. It was merely constant, like fluorescent lighting and that smell of cubicles.
On a Tuesday that smelled faintly of burnt toast and fate, Marisol discovered the Board for what it truly was.
Marisol was in the middle of a code review, the kind where the changes were small but the consequences were large. The diff was a neat rectangle of green and red, as if the world could be reduced to additions and subtractions, which is a charming lie programmers tell themselves. She was about to approve it when her phone buzzed with a message:
prod latency spiking. looks like payment retries again. can you check?
Marisol’s pulse performed a small leap. Inside her, the familiar voice did not speak. Instead, there was a shuffle. The sound of chairs scraping back. The rustle of papers. A cough in the dark.
She blinked at her laptop screen, and for a moment the bakery smell departed and warm light flickered. The air thickened. The room seemed to stretch into a corridor lined with doors.
When she looked down, she was no longer in her flat above the bakery. She was in a boardroom.
A long, polished table that reflected the overhead lights with indecent clarity. At the far end was a whiteboard filled with diagrams that looked suspiciously like architecture sketches: arrows, boxes, dotted lines, and the kind of rectangles only seen in places where someone has tried to turn uncertainty into a shape.
Around the table sat a set of people who were, simultaneously, strangers and intimately familiar.
They all turned to look at her.
At the head of the table sat a woman in a black blazer with eyes like a linter. She had a stack of binders labeled in stern block letters: RULES. She gave Marisol a look that suggested Marisol had just used spaces instead of tabs.
To her right sat a thin man with a turtleneck and an expression of perpetual disappointment, as if the universe had committed a style violation. He tapped a pen against his lip and sighed in advance.
Further down sat a person in a hoodie, their face half-obscured, who stared at Marisol like she was a fraud caught wandering into the wrong meeting.
And near the end, a tired older figure with a notebook filled with outage postmortems flipped through pages as if searching for something dreadful to remember.
Marisol understood, with a clarity that felt just like vertigo, that these were not people.
They were parts of her.
“Welcome,” said the woman in the blazer, in a voice that made codebases behave. “We’ve convened an emergency meeting.”
An intercom on the wall crackled. A cheerful voice announced: “Agenda item one: Marisol is about to ruin her career. Agenda item two: We told you so.”
Marisol swallowed. “Who are you?”
The hoodie figure leaned forward. “I’m the Impostor,” they said, as if it were a job title with dental.
The woman in the blazer snapped her binder shut. “I’m the Rule Enforcer. We do not merge on a Tuesday.”
“That is not a rule,” Marisol said.
“It is now,” said the Rule Enforcer, making a note.
The turtleneck sighed. “Perfectionist,” he introduced himself, with the air of someone who would correct your grammar at a funeral. “Your code is adequate in the way a sandwich is adequate. You could do better.”
The older figure looked up with eyes like late-night incident calls. “Historian,” they said softly. “I have receipts.”
Marisol stared at them. “This is… ridiculous.”
At this, the boardroom door opened and a new person strode in carrying a projector. They wore a suit that looked made from LinkedIn profiles. Their smile was bright with panic.
“Comparison Engine,” they announced, plugging in the projector. The screen dropped. A slideshow began, titled:
EVERYONE ELSE IS BETTER THAN YOU (A BRIEF OVERVIEW)
The first slide was simply a graph labeled Other People’s Competence rising sharply, while a line labeled Your Competence stayed flat like a disappointing ECG.
Marisol pressed her fingers to her temples. “Okay,” she said, because if you’ve ever stared down a production incident, you learn the first rule of survival is to stop arguing with reality and start gathering information. “Why are you here now?”
Historian flipped through their notebook and read aloud:
“March 14th, 2019: You pushed a config change without a feature flag. Payment failures. Remember the CFO email?”
Marisol winced. “I learned from that.”
Impostor said, “Or did you just get lucky that you weren’t fired?”
Rule Enforcer leaned in. “We should halt all action until we can be absolutely sure nothing will go wrong.”
Perfectionist nodded solemnly. “I propose a rewrite.”
Marisol stared at them. “A rewrite of what? The payment system? The world?”
Perfectionist’s eyes gleamed. “Ideally.”
Comparison Engine clicked to the next slide: a screenshot of a colleague’s PR with 47 approving comments and a label: THEY ARE LOVED.
Marisol felt her chest tighten. Outside the boardroom—somewhere—her phone buzzed again. The alerts were rising. HERMES was coughing. Customers were tapping their feet. Somewhere, a manager was preparing a sentence that started with “Just checking in…”
She took a breath. It was, she noted, the kind of breath you take before you dive into cold water.
“Listen,” she said. “I don’t have time for this.”
Rule Enforcer slammed a binder. “We always have time for this.”
“No,” Marisol said, more firmly. “We never have time for this. You meet whenever anything matters, and you speak as if fear is evidence. You are… a badly run meeting.”
There was a stunned silence. Perfectionist looked offended, as if she had insulted a cathedral. Impostor muttered, “Classic defensiveness.” Historian frowned. “We are trying to prevent harm.”
“I believe you,” Marisol said, and that was the moment the air changed slightly, the way a room changes when you stop fighting and start listening.
They all blinked at her. In sync. Weird.
Marisol gestured to the table. “Okay. Let’s do this properly. One at a time. You get the floor, you present your data, and then I decide.”
Rule Enforcer narrowed her eyes. “You decide?”
“Yes,” Marisol said. “I’m the chair.”
There are certain sentences that, once spoken, rearrange the architecture of a person. Like git init. Like “I’m leaving.” Like “It’s not me…” Like “I’m the chair.”
The board members shifted, uncomfortable.
Comparison Engine raised a hand. “Point of order. Where is the Chairperson’s Authority documented?”
Marisol smiled despite herself. “It’s in the system’s source code. It’s called me.”
She looked at Impostor. “You first. What are you afraid of?”
Impostor folded their arms. “That you’re not actually qualified to handle this incident. That you’ll make it worse. That everyone will see you hesitate.”
Marisol nodded. “Data?”
Impostor blinked. “Data?”
“Yes. Evidence. Recent examples where I handled something like this and it went badly.”
Impostor opened their mouth, then closed it. Historian offered a page.
Historian said, “We have 2019.”
Marisol said, “That was seven years ago.”
Historian looked wounded. “It was formative.”
“I know,” Marisol said gently. “But it isn’t current.”
She turned to Historian. “You. What are you afraid of?”
Historian’s voice was softer. “That the system will fail and people will suffer. That we will hurt customers. That we will be the reason someone’s rent bounces.”
Marisol felt that one land. She knew that fear. It was the fear that comes with responsibility. It was, inconveniently, the fear that makes you freeze.
“Data?” she asked.
Historian pointed to the whiteboard where someone had drawn a jagged line labeled Latency. “We have a spike. We have retries. We have precedent.”
Marisol nodded. “Okay. That’s real. That’s useful.”
Rule Enforcer leaned forward. “Finally.”
Marisol raised a finger. “Rule Enforcer, you’re next. What do you want?”
Rule Enforcer snapped open her binder. “I want you to stop. I want you to avoid touching anything that could be blamed on you. I want you to wait for someone more senior.”
Marisol said, “Data?”
Rule Enforcer’s eyes glittered. “If you do nothing, you cannot be at fault.”
“That’s not data,” Marisol said. “That’s politics.”
Rule Enforcer looked appalled. “That’s survival.”
Marisol leaned back in her chair. She noticed, for the first time, that the chair had armrests. That it fit her. That it had her name engraved on a small brass plate: CHAIR.
She had never noticed it before. It had been there all along.
Perfectionist cleared his throat. “I have a proposal.”
Marisol looked at him. “You always do.”
Perfectionist spread his hands. “We should not patch. We should not tweak. We should improve. This incident is merely evidence that the system is flawed. We should design it properly. Elegant. Idempotent. Beautiful.”
Comparison Engine chimed in, “And then people will praise you.”
Perfectionist nodded. “Yes. That too.”
Marisol considered it, because part of her adored elegance. Part of her wanted to be the kind of engineer who didn’t merely keep the ship afloat but rebuilt it mid-ocean into something mythic.
Then her phone buzzed again. The vibration felt like a heartbeat.
Marisol looked at Perfectionist. “How long would your proposal take?”
Perfectionist hesitated. “Weeks.”
Marisol said, “How long do we have?”
Historian looked at the jagged line. “Minutes.”
Marisol nodded. “Then we patch.”
Perfectionist recoiled as if she had suggested sacrificing a violin. And that was when Marisol did the thing that changed the meeting. She stood. She walked to the whiteboard. She drew a simple box.:
CURRENT ISSUE.
She drew arrows.
RETRIES → LATENCY → TIMEOUTS → MORE RETRIES.
A feedback loop. A stupid loop. A loop that didn’t care about her feelings.
“This,” she said, tapping the loop, “is the problem. Not my worth. Not my career. Not whether I deserve to be here. It’s a loop in production.”
The board stared at the loop, momentarily silenced by the sheer mundanity of it.
Marisol continued. “We break the loop. We add a circuit breaker. We cap retries. We increase jitter. We shed load. We notify customer support. We make it less bad.”
Rule Enforcer muttered, “But if you touch it—”
“If I touch it,” Marisol said, “I might be blamed. Yes. But if I don’t touch it, customers suffer. And we both know why you exist.”
Rule Enforcer froze.
Marisol softened her voice. “You exist because, once, blame was dangerous. Maybe it still is sometimes. But you’re not the chair. You’re an advisor. And right now, your advice is not fit for purpose.”
The Rule Enforcer’s shoulders sagged, like a soldier’s do when they are told the war is over but they haven’t stopped listening for gunfire.
Impostor spoke quietly. “What if you fail?”
Marisol looked at them. “Then I fail. And I learn. And I fix what I can. And I apologise where I should. And I try again. That’s the job.”
Historian nodded slowly. “That’s the job.”
Comparison Engine clicked off the projector. The screen rolled up like a tongue retreating. Perfectionist stared at the whiteboard loop, then at Marisol.
“We can… patch now,” he said, as if tasting something bitter. “And later, we can design better.”
“Yes,” Marisol said. “Later, we can improve. Later, you can have your cathedral. But right now, we need a tent that doesn’t collapse.”
The boardroom lights dimmed slightly, as if approving. Marisol sat back down in her chair.
“Okay,” she said. “We’ll do this in phases.”
She wrote on the whiteboard:
Stabilise (break the loop)
Mitigate (reduce customer pain)
Learn (write it down)
Improve (design the cathedral later)
Rule Enforcer sniffed. “And write it all down.”
Marisol nodded. “We’ll write it down. That’s how we stop Historian from having to scream in the future.” Historian looked relieved, as if someone had finally promised to archive the nightmares.
And Marisol followed the recipe. She returned—somehow—to her laptop. Or perhaps the laptop returned to her. The boardroom dissolved like a wayward process ending. The rain resumed its soft tapping at the window.
She opened the incident dashboard. She pulled logs. She saw the retries storming like frightened birds.
She made a small change. She made it carefully. She made it with a feature flag. She deployed.
The latency line hesitated, like a beast deciding whether to charge. Then it began to fall. Not to zero. Not to perfection. But to survivable.
Her phone buzzed again, but this time the message said:
nice catch. looks better now.
Marisol exhaled. Her body shook with the aftershock of adrenaline. She sat back and stared at the ceramic bowl of limes until the world’s edges returned.
Inside her, the Board stirred. But it did not shout. It murmured, like a meeting ending. Chairs pushed back. Papers gathered. Someone coughed politely.
Marisol closed her eyes and, because she was exhausted, she imagined the boardroom again—not as a place of accusation, but as a place of counsel.
She saw the members in softer light.
Impostor, no longer a saboteur, but a warning system that needed calibration.
Rule Enforcer, less a tyrant than a traumatized archivist of old punishments.
Historian, not a tormentor, but a librarian of hard-earned lessons.
Perfectionist, not a cruel aesthete, but a builder who needed deadlines.
Comparison Engine, ridiculous as ever, but occasionally useful when choosing which skills to learn next—provided you didn’t let it run the whole company.
And she saw herself, in the chair, with her name on it, finally reading the agenda rather than being swallowed by it.
In the weeks that followed, the Board still convened, as boards do.
When she mentored a junior developer and watched them tremble before their first on-call rotation, Impostor whispered, “They’re going to break everything,” and Marisol gently replied, “They’ll break something small, and we’ll teach them how to fix it.”
When she spoke in a meeting full of principals who used acronyms as if they were spells, Comparison Engine tried to resurrect its slideshow, and Marisol asked it, “What’s your data?” until it sulked.
When she proposed a refactor and Perfectionist began drafting blueprints for a marble palace, Marisol time-boxed it, like placing a wild animal in a humane enclosure.
And when Historian started flipping pages of past pain, Marisol listened and wrote it down, and promised, not that the pain would never happen again, but that it would not be wasted.
Slowly—so slowly it was almost insulting—the Board quietened. Not because it disappeared. But because it learned, at last, that someone competent was chairing the meeting.
Years passed. Titles changed. The systems grew stranger. Marisol became senior. Then staff. Then principal, which was a title that sounded like someone who ran a school but in practice meant you attended more meetings and were held responsible for mysteries.
She stood in conference rooms and spoke about architecture as if it were a form of ethics. She learned that technical debt was never merely technical. It was emotional, too: promises made under pressure, compromises struck in fear, decisions deferred because the Board had been loud.
Once, late one evening, after a particularly brutal incident that had involved three regions, a misconfigured queue, and a mistake that had been, inconveniently, hers, Marisol found herself back in the boardroom.
The Board was there, waiting.
Impostor looked smug. Rule Enforcer had already prepared a resignation letter in seventeen formats. Historian held up a page labeled THIS ONE WILL HURT. Perfectionist stared at the ceiling as if contemplating the heat death of the universe.
Marisol sat in her chair. She did not pretend she wasn’t shaken. She did not pretend she didn’t care. She looked at them and said, quietly, “Okay. Talk.”
They did. They presented their fears.
And Marisol—older now, steadier in a deeper way than reputation—asked them for data, for proportion, for relevance.
She acknowledged harm where harm had occurred. She planned repairs. She wrote a postmortem that was blunt but kind. She apologised to the people who deserved it. She did not apologise to the universe.
When the meeting ended, Historian closed their notebook with something like gratitude.
Perfectionist, astonishingly, smiled. “We can make it better,” he said.
“Yes,” Marisol replied. “We can.”
Rule Enforcer, in a voice softer than usual, said, “We didn’t get fired.”
Impostor looked confused, as if the world had failed to perform its usual cruelty.
Marisol stood and, before the boardroom dissolved, she walked to the whiteboard and wrote one sentence in careful letters:
THE JOB IS NOT TO BE RIGHT.
THE JOB IS TO BE HONEST, AUTHENTIC & TRUE.
And beneath it, in smaller letters, because her grandmother would have insisted that you never forget who you are even when you are chairing your own internal apocalypse, she wrote:
Mija, breathe. Listen, then build.
When she opened her eyes, she was back in her flat above the bakery. Morning light had begun to creep into the room like a cautious cat. The limes sat in their bowl, patient and bright.
Marisol took one in her hand and pressed her thumb into the peel until it released its sharp, clean scent.
For a moment, everything was quiet. Then her phone buzzed.
A message from a junior developer on her team:
hey, sorry, can i ask a dumb question about retries? i’m on-call next week and i’m scared.
Marisol smiled, the kind of smile that is half tenderness and half recognition.
She typed back:
there are no dumb questions. let’s talk. and btw—being scared just means you care. we’ll get you through it.
Inside her, the Board stirred. But it did not convene. It listened.
THE END.
The Inner Critic as a Board, Not a Voice
Most people imagine the inner critic as a heckler. In reality—especially in software—it behaves more like a board of directors that all sound a bit like you:
Each “member” represents a learned fear
They speak up in different situations
They believe they are protecting you
None of them know when to stop
They are not malicious. They are overfitted risk models, trained on limited data. Your task across a career is not to fire the board (that never works), but to:
understand who is on it
why they were hired
and how to progressively reduce their voting power
How the Board Gets Built (Junior Years)
As a junior developer, your environment is:
opaque
judgement-heavy
feedback-scarce
comparison-rich
The board starts small but loud. Typical early members include:
The Impostor — “They’ll realise you don’t really know this.”
The Rule Enforcer — “Don’t touch that. You’ll break something.”
The Approval Seeker — “Wait until you’re sure. Ask first.”
This board forms because:
mistakes feel irreversible
knowledge appears binary (you “know” or you don’t)
senior devs look omniscient from the outside
Crucially the board forms before you have real evidence.
It fills your gaps in knowledge with imagination.
Mid-Level: The Board Expands (and Gets Political)
By mid-career, something interesting happens:
You are competent
You’ve shipped real systems
People rely on you
And yet the critics often get worse, not better. Why? Because the board gains new members, not fewer. Common mid-level additions include:
The Comparison Engine — “Everyone else seems faster, smarter, calmer.”
The Perfectionist — “This isn’t elegant enough. Rewrite it.”
The Historian — “Remember that outage? Don’t repeat that.”
This stage is dangerous because:
responsibility increases faster than confidence
mistakes now have blast radius
you start seeing how fragile systems really are
The board now argues amongst itself producing, at times, utter paralysis.
Senior & Principal: The Existential Board
At senior and principal levels, the critics change again. You’re no longer afraid of syntax. You’re afraid of impact, judgement, and legacy. You get to meet:
The Steward — “If this fails, many people will suffer.”
The Cynic — “You’ve seen this before. It won’t work.”
The Visibility Alarm — “People are watching. Choose carefully.”
The Relevance Watcher — “Are you still current? Are you fading?”
Ironically, these voices grow because:
you now understand consequences
you can see long-term failure modes
you care about people, not just code
The board is now sophisticated, and still dangerous.
Why Suppression Won’t Work
Many developers try to:
ignore the critic
“power through”
outwork it
drown it in achievement
These efforts fail because:
the board interprets suppression as danger
silenced members shout louder later
success often reinforces fear (“don’t lose this position”)
The critic quietens only when it feels heard and contextualised.
Learning to Chair the Board (The Turning Point)
The key shift—usually somewhere between senior and principal—is this:
You stop identifying with the voices.
You start chairing them.
This involves three practices:
Name the Speakers — Create cognitive distance. You are no longer the board.
You are the chair. Instead of “I feel anxious”, try:
“The Historian is speaking.”
“The Perfectionist has the floor.”
“The Comparison Engine just arrived.”
Ask Each Voice Its Data — Often you’ll find outdated experiences, single incidents overweighted and hypothetical catastrophes treated as certainties. This is debugging fear models. Every board member must answer:
What evidence are you using?
Is it current?
Is it proportional?
Time-Box the Inner Meeting — Senior developers often burn out because the board meets constantly. Instead reassure the board that risk was considered by:
scheduling review moments
making decisions explicit
moving forward with recorded rationale
How the Board Gradually Quietens
The inner critics do not disappear. The become:
slower to speak
easier to contextualise
less emotionally charged
What actually quietens them over time is:
Pattern recognition: you’ve seen failure and survived it
Repair confidence: you trust your ability to respond, not predict
Teaching others: explaining exposes how non-linear expertise is
System thinking: you stop personalising outcomes
Most importantly:
Your identity shifts from “being right” to “being helpful.”
The board has less leverage when perfection is no longer the goal.
The inner critic board is some scar tissue of caring
It formed because:
you wanted to do good work
you didn’t want to hurt people
you took responsibility seriously
You don’t silence it by fighting. You quieten it by outgrowing, and evolving its job description.
A healthy late-career developer still has a board, but:
the meetings are shorter
the chair is calm
decisions move forward despite uncertainty
and silence is no longer alarming
That’s not confidence as bravado. That’s earned peace.


