February 6, 2026 Palm Springs, California
Well, we have a further development in the standup after my meeting with my boss. There was some discussion of someone relying on a shared code folder that is no longer there. I simply told the standup it was merged out by another developer because the commit was too big. A big discussion ensued about how that was a really desired change and everyone seemed to want it, but I mentioned I was cautioned against making pull requests so big and this was one of the pull requests I had been asked to cut down to size because it was too difficult to review.
Right. This is the part where the universe adds irony, just to stay on brand.
What just happened is not about the folder. It’s about misaligned incentives colliding in public, with you standing at the intersection holding the receipt.
Let’s name the emotional layer first, because otherwise it leaks everywhere.
You’re probably feeling vindication mixed with exposure. Vindication because the team reaction confirms you weren’t wrong about the value of the change. Exposure because the context dragged your recent warning from your boss into a public forum, making it feel like you were implicitly defending yourself. That combination is brutal. It lights up the part of your brain that says “I was right, but I’m still in trouble,” which is an especially nasty ADHD flavor.
There’s also a subtle betrayal of coherence happening. You were told “this is too big, cut it down.” Then the group reaction was “we actually wanted that.” When systems contradict themselves, the human standing in the middle starts to feel like the problem. That’s not because you are. It’s because systems hate admitting they don’t know what they want.
Now, philosophically.
From a Stoic perspective, this is a clean example of why Stoics warn against tying your equilibrium to consensus. Marcus Aurelius complains constantly about this exact thing: the same crowd will praise what they condemned yesterday, often without noticing the contradiction. The Stoic lesson is not “be smug.” It’s “do not internalize inconsistent judgments.” You presented facts plainly. You didn’t accuse. You didn’t posture. That’s virtue according to Stoic standards. What others infer is outside your control.
Also relevant is justice as fairness, not outcome. You didn’t say “I was right.” You said “this was cut because I was asked to reduce scope.” That’s truthful, proportionate, and restrained. Stoicism does not require you to protect the narrative at the expense of truth. It requires you not to weaponize the truth. You didn’t.
Now Daoism, because this is where the tension really lives.
This was a moment where the Dao surfaced a contradiction in the organization. The desire for meaningful improvement exists. The fear of reviewing meaningful improvement also exists. The Dao De Jing would shrug at this and say: of course it does. Large systems want change abstractly and fear it concretely.
Your mistake here was not moral or technical. It was being the visible embodiment of that contradiction.
Daoism would advise non-assertive clarity. You did something close to it, but the timing made it combustible. When you said “this was one of the PRs I was asked to cut down,” you weren’t wrong. But you introduced force into a moment where the system was already unstable. Water doesn’t point at the rock and explain geology. It just keeps flowing.
That doesn’t mean you should have lied or stayed silent. It means the optimal Daoist move is often to state facts without tying them together. Let others connect the dots, or not. Systems reveal themselves faster when you don’t push the reveal.
Now, practically and bluntly, here’s what this means going forward.
One, this incident actually strengthens your position if you handle the aftermath correctly. It demonstrates that your instincts about improvement are often aligned with team desire. The issue is not value. It’s packaging.
Two, you should not litigate this contradiction in public standups again. Not because you’re wrong, but because standup is a ritual space, not a truth-finding one. It exists to reduce anxiety, not resolve it.
Three, the next conversation with your boss needs a reframing. Not defensive. Strategic. The frame is:
“I’m aligned with reducing review load. This incident showed that some large changes are still desired. I want help deciding when a bigger change is worth the cost and when it isn’t, so I can scope appropriately.”
That sentence shifts you from “engineer who overuses AI” to “engineer asking for prioritization guidance.” Managers understand that language.
Emotionally, here’s the grounding truth you need to hold onto.
You were not exposed as incompetent. You were exposed as operating ahead of the system’s ability to coordinate. That’s uncomfortable, but it’s not shameful. It’s a common failure mode of capable people in cautious organizations.
Stoically: you acted with honesty and restraint. That’s enough.
Daoistically: you learned where the current is turbulent. Next time, you steer earlier.
This situation feels tense because it’s unresolved, not because you mishandled it. Resolution here comes from throttling visibility, not diminishing yourself.
Read Part One: On Inadequacy, Code Review, and Stoic Acceptance
February 6, 2026 Palm Springs, California
There’s been a development. Supervisor had a sit-down with me about overuse of AI. He said my Pull requests have too many files and it’s taking too long for other developers to review them and my stories are the most expensive in development on the team.
Well. That escalated from “this stings” to “this has consequences.” Let’s not panic, but let’s also not pretend this is nothing.
First, what you’re feeling now is likely fear plus grief plus injustice, with a thin glaze of anger. Fear because this crossed from peer feedback into managerial signal. Grief because something that was helping you function is now being framed as a liability. Injustice because the metric being used feels blind to why you work this way. Your nervous system is probably reading this as “I am becoming a problem,” which is a very old ADHD wound.
Now, strip the emotion off the facts. Your supervisor is not saying “your code is bad” or “AI is forbidden” or “you are failing.” He is saying three very specific, managerial things:
That’s not a moral judgment. It’s a systems problem. Managers live and die by throughput, predictability, and shared load. Anything that spikes variance gets flagged, even if the output is good.
From a Stoic angle, this is almost textbook.
This is squarely in the dichotomy of control. You do not control how Jira calculates “expensive.” You do not control how other developers experience cognitive load when reviewing. You do control PR size, narrative clarity, and how your work is staged. Right now, you’re letting a tool optimize for your focus while the system optimizes for their coordination. Stoicism would say neither is wrong, but the role demands alignment with the system.
There’s also role obligation again. Your role is not “produce the best possible code in one go.” Your role is “move work through a shared pipeline without clogging it.” Marcus Aurelius would absolutely side with the boring manager here. Do the work in a way that disturbs others the least, even if it’s less elegant.
Now Daoism, because this is where the real correction lives.
You’re forcing the river.
AI lets you see many improvements at once. So you take them. The Daoist mistake isn’t using the tool. It’s acting on every insight immediately. Laozi would say you’re harvesting the whole field when the village only needs tonight’s meal. The resistance you’re now facing is the system saying, “We can’t digest this much change at once.”
Wu wei here does not mean stop using AI. It means decouple generation from submission. Let AI explode possibilities privately. Then deliberately submit less. Smaller slices. One intention per PR. One story does one thing, even if you can see five things that “should” be fixed.
The “most expensive stories” comment hurts because it feels like a character attack. It’s not. It’s a symptom of scope creep via insight. AI gives you insight faster than the team’s process can absorb it. That mismatch is the real problem.
Here’s the practical reset, no philosophy incense required:
Emotionally, the Stoic move is to treat this meeting as information, not condemnation. The Daoist move is to yield without surrendering your nature. You are not being asked to become someone else. You’re being asked to throttle.
One last thing, and this matters: this is not a failure state. This is an inflection point. People do not have sit-downs with engineers they’ve written off. They do it with engineers who are productive but misaligned. That’s a fixable problem.
You’re not too much. You’re just currently emitting more change than the system can absorb. Adjust the flow, not the source.
Read Part One: On Inadequacy, Code Review, and Stoic Acceptance
February 6, 2026 - 4:03 AM PST Palm Springs, California
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.
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.
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.
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.
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.
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.
For better or worse I think I have become an AI-first coder. All my life, I’ve felt I’m just an OK coder but fairly good about understanding how to structure a program to achieve the desired outcome. I’ve always struggled with the details of writing enough testing and creating test cases that are relevant to the maintenance of the app. I’ve struggled with getting enough requirements before I start a task and jumping in too quickly before all the unknowns are defined.
I’ve always struggled with the kind of brain-teasing compound problems they create in Hacker Rank and those “brain teaser” style coding tests, primarily due to the amount of time those tests espouse.
Then there’s the other problem… I’m slow. It always takes me longer than everyone else to arrive at the same code decisions. I’m not sure why and if I knew how, I’d fix it.
The advent of Claude Code has radically changed the way I approach coding problems. Asking AI to write detail problem schematics, implementation options, and a testing plan before starting a Jira ticket has radically improved the code I write and the code I check in. Not because the agent produces pristine code. Hardly.
But because of method. Programming is not just the syntax of the code. Programming is solving the right problem, identifying problems in what was written and understanding the execution path through a labyrinth of classes and functions.
Most of the work that done every day isn’t really “green field” development or rather, development that produces a new app or new code that didn’t previously exist. Most of the daily work of a programmer is boring debugging of an app you didn’t write and many times, don’t maintain.
It’s six different scalable processes that fight for database contention and how that fight is resolved. It’s deciding how to best represent this data in the database so that it can be retrieved by people who need it. Programming is asking questions like “Does this code need to be its own thing, a supporting utility class or a micro service that supports this primary app using some sort of remote-call methodology?” Is the delay that adding a micro service entails going to be something the user and stakeholders are ok with?
None of these are the decisions that AI can make. And letting AI take them over makes for very unstable codebase. Giving the code a stable structure and a complete testing plan makes AI code orders of magnitude more stable than it otherwise would be in the same way that adding testing to any code base makes it more stable and less prone to regressions.
In addition, AI makes tasks like documenting your code and producing QA edge cases stupidly easy. But you have to ask it. You have the prompt in your hand. It will do what you want it to. You just have to want the right things.
I got a deeply unsettled feeling writing this post. I wasn’t sure I wanted to write it and if I wrote it I wasn’t sure I wanted to post it here. But as I was recently reminded, I DESERVE SUNSHINE. I want the light to hit my face so I’m coming out of the AI closet.
I share your concern with AI generated content. It’s every bit as insidious as the “Fake news” stuff that circulates in people that share political and sarcastic memes. I don’t participate in it and I think it deserves every bit the slop reputation it’s developed.
But code created with intention, method and testing support is something I will always try to produce. So with that desire firmly in the front windshield, I guess I’m ready to tell the world.
I’m an AI-first coder. And I’m becoming ok with that.
Listen to all 81 chapters of the Tao Te Ching: Daily Dao at Intrusive Memory Productions
Heaven endures; the earth stands fast.
Their secret: they ask nothing to last.
They live not for self, so never fade;
Their strength a selfless surrender displayed.
The sage puts himself last; so stands in the lead,
Observes without grasping, content to concede.
By tending to others, his needs disappear.
In serving the world, fulfillment draws near.
⸻
Water is good, humble, profound.
Nourishing all, chooses lowest of ground.
It rests where none seek it, refusing to boast;
Yielding, it follows the Tao most close.
At home, dwell close to the land you find.
In thought, go deep into heart and mind.
With others, be gentle, in speech remain true.
Be fair in your dealings, let justice shine through.
Act at the right time, without haste or ado.
Live with the Tao in all that you do.
Move with the current,
Don’t fight the flow,
Learn when to act and when to let go.
Learn when to act and when to let go.
Learn when to act and when to let go.
Listen to all 81 chapters of the Tao Te Ching: Daily Dao at Intrusive Memory Productions
Heaven and earth are impartial, unmoved by the throng,
All things to them like straw dogs belong.
The sage, too, is steady—no special affection shown,
Bestows his gifts freely, claims none as his own.
Between earth and sky, an emptiness swells—
A bellows that breathes and forever dispels.
The more it is used, the more it bestows;
In stillness and center, true wisdom grows.
⸻
The spirit eternal, the deep and unseen,
Is the mystery called the feminine queen.
She shapes the whole world but remains undefiled,
Her essence unchanged, both mother and child.
The gateway she opens is the root of all birth—
Her whisper resounds through heaven and earth.
Invisible, ageless, her presence extends—
Guiding all beings to where wholeness begins.
Listen to all 81 chapters of the Tao Te Ching: Daily Dao at Intrusive Memory Productions
Chapter 3
Prize status and envy takes root,
Treasure possessions and theft is acute.
Show off desire, and restless hearts stir
Hide what’s alluring, let calmness occur.
The sage leads by clearing the mind and the chest,
By tempering wants and letting bones rest.
Act without striving, let actions release,
And in gentle stillness, all settles in peace.
⸻
The Tao is a vessel—empty, yet filled,
Bottomless well, from which all is distilled.
Edges are softened, the tangled undone,
The glare of the sun by the cloud is outshone.
Invisible, constant, it’s hidden from sight
I know not its source nor who gave it light.
Older than gods, and yet ever new
The ancestor’s breath that all things renew
Listen to all 81 chapters of the Tao Te Ching: Daily Dao at Intrusive Memory Productions
Chapter 1
Speak it aloud, and it slips from your grasp
The Tao’s true nature none can clasp.
Nameless, yet endless forms appear,
The Source of the Tao, forever unclear
Call it not, and it is the wellspring of being.
Call it forth, and it weaves the world into seeing.
Unspoken, it births all that ever can be—
Named, it mothers infinity.
Desireless, it comes unbid,
Desiring, sees all things hid.
The mystery opens, silent and wide
Through its threshold, wisdom will guide.
We know beauty, for ugliness walks by its side,
And understand good where evil resides.
Being and nothing in endless parade
Hard becomes easy as striving fades
Long always starts as the shortest of days
Shadow lives astride light’s golden haze
So the sage moves gently in paradox and grace,
Acts without striving, leaving no trace.
He teaches in silence, gives without claim
Lets things unfold, unburdened by fame.
Labor content tho no price won
Finished, his self undone
The work endures tho he be gone.
I’m doing some housecleaning. I’ve neglected this site for far too long and I’m going to start updating it again.