February 6, 2026 - 4:03 AM PST Palm Springs, California
Feeling Like Shit
I feel like shit right now. I’ve got a merge request at work I’ve been working on for days and I created it with AI and every time a coworker reads the code he’s very critical and rejects the code.
I feel like I need to put these feelings in a character to try to understand what I’m feeling.
Maybe that’s it. Maybe it’s because his accusations goes to the core of what I’m struggling with: Feeling inadequate.
Those interview failures during my last unemployment have really done a number on my self esteem and my belief in my ability to code. It makes me unsure of the plan I’ve plotted for myself. I’m not sure why, but his comments on the code I produced make me feel about 1 foot tall.
I don’t know what I’m going to do. For now I’m going to sit here and meditate. But it’s like I don’t know the focus of my mediation in order to counter these nearly constant feelings of inadequacy.
Maybe that’s the rub. Maybe that’s what I get from this. That those feelings of inadequacy yell in my ears telling me I’m not good enough.
A Conversation with TherapistGPT (An AI)
Understanding the Feelings
Me: Can you understand what I’m feeling? I was called out in the code review for too much superfluous code. It’s not the first time and it is a recurring pattern. I’m severely ADHD and using tools like AI and coding agents has really helped me concentrate and create better code, but it also creates a lot of changes in the code that seem necessary. I’ve gotten better at weeding this out, but I still have developers who vehemently oppose what I create. When they’re vocal about it in a code review it makes me feel things and I’m trying to understand the feelings. Can you help me understand what I’m feeling?
TherapistGPT: Yes. I get it. And I’m not going to dress it up.
What you’re feeling is a mix of shame, threat, frustration, and grief, all stacked on top of a nervous system that already runs hot. Code review just happens to be the delivery mechanism.
Start with the obvious one. You’re feeling publicly corrected. Code review isn’t a quiet note in the margin. It’s visible, permanent, and tied to your name. For most people that stings. For someone with ADHD, it hits harder because criticism often plugs straight into a long personal history of “you’re too much,” “you overdid it,” or “why didn’t you just do it the simple way.” Even if no one says those words, your brain remembers them.
Next is threat to competence. You’re not being told “this can be simpler.” You’re hearing “your judgment can’t be trusted.” That’s why it hurts more when it’s recurring. A one-off comment is feedback. A pattern feels like an indictment. Especially when you know you’re working hard and using tools specifically to function better, not to show off.
There’s also loss of control in the mix. AI tools and agents help you stay focused, build momentum, and get something coherent out of your head and into the repo. When someone aggressively tears that apart, it doesn’t just criticize the output. It invalidates the process that lets you work at all. That’s destabilizing. Your brain goes, “If this isn’t acceptable, what exactly am I allowed to be?”
Add injustice to the pile. You’re putting in real effort to weed out unnecessary changes. You’re improving. But the feedback doesn’t acknowledge that trajectory. It just flags the remaining rough edges. That creates resentment because improvement without recognition feels like moving the goalposts.
And finally, there’s identity bleed. Code review is supposed to be about code. In reality, especially when someone is vehement or moralistic about it, it stops feeling technical and starts feeling personal. Your work style, your tools, your way of thinking get implicitly judged. For someone with ADHD, where the line between “how I work” and “who I am” is already thin, that bleed is intense.
So when you say “it makes me feel things,” those things aren’t mysterious or irrational. They’re predictable responses to repeated public correction, perceived invalidation of coping strategies, and the fear that your differences are being tolerated rather than respected.
One important grounding point, even if it doesn’t emotionally land yet: opposition in code review does not mean your code is bad or your approach is wrong. It often means you’re colliding with unspoken norms about minimalism, ownership, and control that have nothing to do with correctness and everything to do with taste and fear of change.
You’re not weak for reacting. You’re reacting because you care, you’re trying to do good work, and you’ve had to fight harder than most people just to stay in the game. That combination makes criticism hit like a body blow instead of a nudge.
Stoicism and the Dao
Me: In the recent past, I’ve come to embrace both Stoicism and the Dao De Jing as being great sources of life truth. What kinds of stoic and/or Daoist themes are active in this situation. How can we restate the problems in that light?
TherapistGPT: You picked two philosophies that exist almost entirely to deal with exactly this kind of nonsense. So yes, there’s a lot here.
First, the shared ground. Both Stoicism and the Dao De Jing are obsessed with one core idea: you are suffering because you are treating external judgment as if it were internal truth. Different language, same diagnosis.
The Stoic Lens
From a Stoic lens, the active theme is the dichotomy of control. You do not control how other developers react, what tone they use, or whether they cling to their aesthetic preferences like religious doctrine. You control your intent, your effort, and the care you take in responding. Right now the pain comes from letting their reactions trespass into territory that belongs to you. Epictetus would say the code review didn’t harm you; your judgment that it meant something about your worth did.
Another Stoic theme is role ethics. You have a role. “Engineer on a team” has duties: write maintainable code, accept review, adjust to norms. It does not require emotional self-flagellation or identity collapse when corrected. Marcus Aurelius talks constantly about doing the work in front of you plainly and without ornament. That doesn’t mean minimal code. It means minimal ego attached to the output.
There’s also premeditatio malorum, negative visualization. A Stoic would tell you to expect pushback before the PR is opened. Not pessimistically, but neutrally. “Some people will dislike this. Some will misunderstand my intent.” When it happens, it’s no longer a personal affront. It’s Tuesday.
The Daoist Side
Now the Daoist side, which might be even more relevant to how you work.
The Dao De Jing is basically a long critique of people who overcontrol systems and then get mad when the system pushes back. The theme here is wu wei, often mangled as “do nothing” but better understood as “don’t force.” Your tools help you flow. The problem starts when that flow crashes into a team culture that values restraint and sameness. You’re applying force without meaning to. The resistance you’re feeling is the system pushing back.
Laozi would say: when you meet resistance, don’t push harder and don’t collapse. Soften and redirect. Water doesn’t argue with rocks. It routes around them. That might look like smaller PRs, more explicit commentary about intent, or intentionally not refactoring things you could improve because the timing isn’t right. Not because you’re wrong, but because the moment isn’t receptive.
Another Daoist theme is emptying the self. Right now your sense of self is too tightly bound to the output and the method. The Dao De Jing repeatedly warns that naming, claiming, and identifying create suffering. When a reviewer attacks “superfluous code,” they’re not attacking you. But because you’re attached, it feels that way. The Daoist move is not to harden or defend, but to loosen the attachment.
There’s also a quiet warning in Daoism about cleverness. Not intelligence. Cleverness. Over-articulation, over-structuring, over-optimization often provoke hostility in groups because they feel like domination, even when well-intentioned. Laozi would gently suggest leaving some things “plain” not because plain is better, but because it lets others breathe.
How to Restart the Problem
So how do you restart the problem in that light?
Stoically: Reframe code review as a weather event, not a verdict. Prepare for it. Respond cleanly. Change what serves the role. Let the rest go without internal argument.
Daoistically: Reduce friction, not correctness. Let your tools serve you, but don’t insist the river change shape for them. Flow through the existing channel when possible. Save your reshaping for moments of real leverage.
The overlap between the two is where the real reset lives: do the work carefully, release the outcome, and stop asking external systems to validate your inner equilibrium.
You’re not failing at either philosophy. You’re practicing them in a situation that actually tests them, which is the annoying part they don’t put on the book cover.