For me the fatigue is a little different— it’s the constant switching between doing a little bit of work/coding/reviewing and then stopping to wait for the llm to generate something.
The waits are unpredictable length, so you never know if you should wait or switch to a new task. So you just do something to kill a little time while the machine thinks.
You never get into a flow state and you feel worn down from this constant vigilance of waiting for background jobs to finish.
I dont feel more productive, I feel like a lazy babysitter that’s just doing enough to keep the kids from hurting themselves
I know this is a terribly irresponsible and immature suggestion, but what I've been doing is every time I give claude code a request of indeterminate length, I just hit a blunt and chill out. That and sometimes I'll tab into the kind of game that can be picked up and put down on very short notice, here's where I shameless plug for the free and open source game Endless Sky.
For me personally, programming lost most of it's fun many years ago, but with claude code I'm having fun again. It's not the same, but for me personally, at this stage in my life, it's more enjoyable.
The code works quite well, but I wouldn't inflict it on other humans. In my view, when you use a coding agent you're committing to forever maintaining that code with a coding agent. There are no human programmers participating in these projects.
I think oftentimes in the absence of context, people will substitute their own, usually worst-case context. They imagine someone vibe coding safety critical software that flies airplanes.
I think we much too often forget that the domain of software development has expanded its reach into literally everything and that we share a guild hall with all kinds: those who write deeply safety critical correct code, those who are hacking a blender, those who are just making their clerical task less repetitive, etc.
Well said, people online are so quick to criticise LLM usage because of possible security holes or what have you.I can assure you, when making something dumb for fun I wouldn’t have checked it for security holes when I was coding it either.
Programming stopped feeling fun for me once MBAs and bean counters took over. There's rarely time to write thoughtful code anymore. Even convincing management to invest in a sane architecture feels like an endless uphill battle.
Engineer teams are nothing but an annoying expense on the balance sheet and the goal is to cram as many features, as quickly as possible to get the sale.
That's exactly why I'm happy to use every tool available to get the work done efficiently. To this end, LLMs have been great for me, especially when dealing with large amounts of boilerplate code.
It's still fun for me. But a lot of my day right now isn't "coding". But playing the job market game to get stability back in life while juggling other part time work.
Of course, I know the next layoff will come. So I simply want to use the next time of stability to make sure I can be that artisan the next time industry kicks me out. But baby steps for now.
Y’all were having fun? I always had fun making things, but the coding part was always a means to an end for me, and one that caused endless frustration at times. I never have to debug regex or write a single date format line by hand ever again, and I will never ever miss it.
Every bit of coding that did anything other than give me meaningful progress on features on the thing I was actually trying to build, which at times was 80%+ of it, was always terrible.
yeah that's how I do it too but careful with the blunt, yesterday I was working away, had some time while an agent swarm ran, took a "little break" and now ghostty looks like this: https://s.h4x.club/kpuGgD12 :|
I feel like we used to do so much more customization and theming of our desktop environments in the 2000s/2010s. I miss it, and therefore love this for you!
I was totally obsessed with it, when I first got into linux as a kid in the late 90s, I spent forever and hours tweaking just my bashrc. I spent entirely too long on this stupid terminal, the media player and getting the rainbow thing to match up to the time of whatever was playing... oh well, had fun!
Well "little break" - I forked ghostty and re-wrote parts of it for Metal and a bunch of new uniforms and iChannels - so my config may not work for you, but here is everything config wise I have running right now in full: https://s.h4x.club/NQuG6pZN
While this is certainly very true, I find coding through an LLM to require far less effort dedicated to this cognitive switching than does writing in some programming language, primarily because I no longer have to load the mental context for converting my high level human instructions to code that a programming environment actually supports. The mental context seems more lightweight and closer to the way I think about the problem when I'm not sitting at the computer actively working on it. If an idea comes to me while I'm away from the computer I can momentarily sit down, type in whatever I just thought of, and get going almost immediately. I think it also saves a huge amount of cognitive load and stress (for me) involved with switching around between different programs and languages, an unfortunate fact of life when dealing with legacy systems.
This is true for me but just due to task anxiety in general, it’s not specific to coding. So I don’t get repeats of this with AI. If anything, it’s helped reduce the procrastination for me, because I feel more supported and less on my own with the task.
It means people go through life making selfishly unconscious choices that hurt collaborative efforts and its tiring to constantly have to reign these people in instead of building said thing.
Omg you instigator, you are this person! Let me just spell it out and end this. Im an idiot man, I dont try to project intelligence, I just listen and act... and sometimes comment on the negative behavior of others, which comes from lived experience. Appreciate you being an example of antagonistically wasting someone's time because of what? An assumption of what I meant? wow.
I can recommend a Steam Deck for gaming that can be easily interrupted and resumed. It also means that you can leave your "work" machine so that you can see when claude has finished.
I appreciate your honesty. For what it's worth, this is not a commercial endeavor and is all motivated entirely by scratching my own personal itches. I'm not being paid to do this.
One of the best programmers I know personally is constantly under the influence of marijuana. As "immature" as it may sound, she's still extremely aware of what she's doing and is able to work in an environment I would give up in after 2 weeks. The kind of environment that denies 1 day PTO for your birthday because of a deadline (hint, every week is a deadline).
I do not smoke myself, but it made me realize how little I know regarding THC and CBD
> I do not smoke myself, but it made me realize how little I know regarding THC and CBD
Long-term use causes the psychedelic part of THC effects to diminish over time. At some point, only a mild depressant effect remains - somewhat similar to chamomile. It does have some effect on intelligence and short-term memory, but if the alternative is to be too stressed to think at all, it might be better to just smoke.
Obviously, if possible, psychotherapy or a prescription from a psychiatrist (or better yet, a change of environment) would be better (in the latter case, it depends on the prescribed drug, of course), but THC is not that bad an alternative where it's legal.
Natural results when incentives are on "shippng" and not "quality". People find ways to ship out stuff faster. And perhaps drown their apprehensions about quality.
That's a type of fatigue that is not new but I hear you, context switching fatigue has increased ten fold with the introduction of agentic AI coding tools. Here are some more types of fatigue that have been increased with the adoption of LLMs in writing code.
There are plenty of articles on review fatigue including https://www.exploravention.com/blogs/soft_arch_agentic_ai/ which I published recently. The focus there is less about the impact on the developer and more about the impact on the organization as letting bugs go to production will trigger the returning to high ceremony releases and release anxiety.
The OP article talks about AI fatigue of which review fatigue is a part. I guess that I would sum up the other parts like this. The agentic AI workflow is so focused on optimizing for productivity that it burns the human out.
The remedy is also not new for office work, take frequent breaks. I would also argue that the human developer should still write some code every now and then, not because the AI cannot do it but because it would slow the process down and allow for the human to recover while still feeling invested.
I think all of this is why I don’t really experiment with an LLM anymore. I just use it to ideatw/rewrite things in different styles so I can turn rough drafts into finished things. It’s just an editor to bounce ideas off of essentially. Using it that way is the only way I find myself being actually productive and not annoyed with it
Maybe this is why I’m different. I love reviewing code, it’s a great way to learn about a system, get new ideas. Diffs are great, see how things are interconnected
I joke that I'm on the "Claude Code workout plan" now.
Standing desk, while it's working I do a couple squats or pushups or just wander around the house to stretch my legs. Much more enjoyable than sitting at my desk, hands on keyboard, all day long. And taking my eyes off the screen also makes it easier to think about the next thing.
Moving around does help, but even so, the mental fatigue is real!
I've seriously wondered about merging a home office and home gym into one, and doing sets in between claude working. My usual workout has about 22-30 sets of exercises total and I probably wait on Claude that often in a day. It would be wonderful to be able to spread my exercise throughout the entire day. I'd also include an adjustable height desk so that I could be standing up for much of the workout/workday. I could even have a whiteboard in there.
I have a small gym next to my home office and I just cannot do it. When I train I need to be 100% focused on the exercises otherwise in the best case I'll stagnate, and in the worst I'll injure myself. So instead I do some mindless chores if time allows.
Seriously and beyond productivity, flow state was what I liked most about the job. A cup of coffee and noise cancelling headphones and a 2 hour locked in session were when I felt most in love with programming.
I'm not at all convinced that "break your concentration and go check on an agent once every several minutes" is a productivity increaser. We already know that compulsively checking your inbox while you try to code makes your output worse. Both kill your focus and that focus isn't optional when you're doing cognitively taxing work--you know, the stuff an AI can't do. So at the moment it's like we're lobotomizing ourselves in order to babysit a robot that's dumber than we are.
That said I don't dispute the value of agents but I haven't really figured out what the right workflow is. I think the AI either needs to be really fast if it's going to help me with my main task, so that it doesn't mess up my state of flow/concentration, or it needs to be something I set and forget for long periods of time. For the latter maybe the "AIs submitting PRs" approach will ultimately be the right way to go but I have yet to come across an agent whose output doesn't require quite a lot of planning, back and forth, and code review. I'm still thinking in the long run the main enduring value may be that these LLMs are a "conversational UI" to something, not that they're going to be like little mini-employees.
Speaking as someone with over 40 years paid programming experience, I've never understood this "flow" thing. I typically do about half an hours typing, get up and walk around, mooch over to colleague and yack bit, or go to the coffee machine, or just think a bit and then go back to the keyboard.
Never used headphones - if the environment is too loud, make it quieter. I once moved into a new office area that had a dot-matrix printer that "logged", in the worst sense of the word (how could you find any access on such a giant printout), every door open/close in the block. It was beyond annoying (ever heard a DM printer? only thing worse is a daisy wheel) so I simply unplugged it, took out the ink ribbon and twisted off the print head. It was never replaced, because as is very often the case nobody ever used the "reports" it produced.
Half an hour of typing would be above average attention span for the youth these days. That's pretty much how Pomodoro Timers start out for people who can't focus at all.
>if the environment is too loud, make it quieter.
we shifted to open office setups over the decades. There may not even be anyway to make things "quieter" externally.
For me AI has given that back to me. I'm back to just getting stuff built, not getting stuck for long when working in a new area. And best of all using AI for cleanup! Generate some tests, refactor common code. The boring corporate stuff.
I love the flow state, and I’m pretty sure it’s fundamentally incompatible with prompting. For me, when the flow state kicks in, it’s completely nonverbal and my inner dialogue shuts up. I think that’s part of why it feels so cool and fun when it hits.
But LLM prompting requires you to constantly engage with language processing to summarize and review the problem.
That's pretty funny because LLM's actually help me achieve flow state easier because they help me automate away the dumb shit that normally kind of blocks me. Flow state for me is not (just) churning out lines of code but having that flow of thought in my head that eventually flows to a solved problem without being interrupted. Interesting that for you the flow state actually means your mind shutting up lol. For me it means shutting up about random shit that doesn't matter to the task at hand and being focused only on solving the current problem.
It helps that I don't outsource huge tasks to the LLM, because then I lose track of what's happening and what needs to be done. I just code the fun part, then ask the LLM to do the parts that I find boring (like updating all 2000 usages of a certain function I just changed).
As someone with no inner monologue, I think I could just as easily "flow" about a non-verbal task like spatial reasoning or a verbal task like reading, writing, or even engaging in a particularly technical or abstract conversation. Unlike you, my resting state is non-verbal and I would not be able to correlate verbal content with flow like that.
To me, flow is a mental analogue to the physical experience of peak athletic output. E.g. when you are are at or near your maximum cardiovascular throughput and everything is going to training and plan. It's not a perfect dichotomy. After all, athletics also involve a lot of mental effort, and they have more metabolic side-effects. I've never heard of anybody hitting their lactate threshold from intense thinking...
My point is that the peak mental output could be applied to many different modes of thought, just as your cardiovascular capacity can be applied to many different sports activities. A lot of analogies I hear seem too narrow, like they only accept one thinking task as flow state.
I also don't think it is easy to describe flow in terms of attention or focus. I think one can be in a flow state with a task that involves breadth or depth of attention. But, I do suspect there is some kind of fixed sum aspect to it. Being at peak flow is a kind of prioritization and tradeoff, where irrelevant cognitive tasks get excluded to devote more resources to the main task.
A person flowing on a deep task may seem to have a blindness to things outside their narrow focus. But I think others can flow in a way that lets them juggle many things, but instead having a blindness to the depth of some issues. Sometimes, I think many contemporary tech debates, including experience of AI tech, are due to different dispositions on this spectrum...
Interesting that for some people flow state is non-verbal. I personally have sort of a constant dialogue in my head (or sometimes muttered out loud under my breath) that I have to buffer or spool into various notes/diagrams/code. The process of prompting winds up being complementary to this—typing out that stream of consciousness into a prompt and editing it becomes a more effective form of reflection and ideation than my own process had been before. Sometimes I don’t even send the prompt—the act of structuring my thinking while writing it having made me rethink my approach altogether.
This really goes to show that everyone's 'flow state' is different.
My inner dialogue is always chatty; that doesn't stop when I enter a flow state. It just becomes far more laser focused and far less distracted. LLMs help to maintain the flow because I'm able to use it to automate anything I don't care about (e.g. config files) and troubleshoot with me quickly to keep the flow going.
I still hit the flow state in cursor, always reviewing the plan for some feature, asking questions, learning, reviewing code. I'm still thinking hard to keep up with the model.
I used to lose myself in focused work for hours. That's changed. Now I'm constantly pulled away, and I've noticed the pattern: I send a prompt, wait for the reply, and drift into browsing. Without SelfControl blocking me, I can't seem to resist. I am certainly more productive with LLMs, but I also feel much more tired (and guilty) after a day of work.
This has been a common pattern for me before LLMs, when my work required constantly rebuilding models or doing small deployments where each task/try took more than ~20ish seconds and less than say 3 minutes. It's enough to pull you out of it but not enough to make a proper break or switch tasks.
I suffered from the problems you describe, grabbing a browser window or my phone which would usually take my attention much longer than the task and it left me burned out at the end of the day.
There are some helper tools, like blocking "interesting" pages (like HN, reddit) on the browser, putting the phone in the bag at the end of the room or using a pomodoro timer so sequence proper breaks. But at the end the only thing that really helped is getting into meditation: I try to use these little interruptions of flow as a opportunity to bore myself. Try to reframe boredom from being an annoyance that needs to be fought to a chance to relax your brain for a couple of seconds and refocus.
The want to grab the phone is hard at the start, but it gets better very soon when you manage to push through the discomfort in the first days.
Thank you for this comment. I meditated almost daily for years, but somewhere along the way life got hectic and the habit slipped. Time to revisit it.
EDIT: I wanted to add that I think it's a great time to get back to it because this mental fatigue has been leading me to migrate to more analog tools, like pen and paper for journaling and ditching my smartwatch for analog ones.
I don’t think it’s unreasonable to assume that in 1-2 years inference speed with have increased enough to allow for “real time” prompting where the agent finishes work in a few seconds instead of a couple minutes. That will certainly change our workflows. Seems like we are in the dial-up era currently.
It's arguably already here, only cost is a concern. We now have an open weights model - =you can throw as much hardware at it as you want to speed it up - at Sonnet 4.5+ level.
Today Anthropic started offering 3x(?) Opus speed at 5x cost as well.
But then models will do more computation, to be slower.
What will have to change are workflows. Why are you ever waiting for the prompt to return? When you send an email, do you stare at your screen until you get a reply?
You're supposed to write a detailed spec first (ask the AI for help with that part of the job too!) so that it's less likely to go off track when writing the code. Then just ask it to write the code and switch to something else. Review the result when the work is done. The spec then becomes part of your documentation.
This. It’s the context switching and synchronicity, just like when you are managing a project and go round the table - every touch point risks having to go back and remember a bazillion things, plus in the meantime you lose the flow state.
Isn't that similar to the FSD issues where people cannot engage deeply enough because it's "FSD" but they still have to switch back a little, and sometimes go into crisis to avoid a wreck ?
This way you can do twice the terrible job twice as fast!
(Also, this only applies if what you're working on happens to be easily parallelizable _and_ you're part of the extremely privileged subset of SV software engineers. Try getting two Android Studios/XCodes/Clang builds in parallel without 128GB of RAM, see what happens).
But yeah improving build speed & parallel running I think are one of the biggest advances devs can do to speed up development time in the AI age. With native apps that can be a challenge. I restructured a react native project to make it faster to iterate, but I have a feeling you might not be fond of rn.
With all due respect, the commment does carry the vibes of "it's okay I can totally multitask" that's nearly a cliche in programming. It just feels a bit insensitive to respond to an article talking about context switching being a big problem with LLMs and then suggest the biggest possible context switch of managing multiple workstations.
And yes, your hardware expenditure will vary per industry. I can barely run one instance of Unreal Engine as is.
It's a different kind of fatigue, but it's something a felt I got stronger at over time. Beats waiting IMHO, but be sure to give yourself a chance to rest.
really interested in what the brain does when it "loads" the context for something it's familiar with but is currently unloaded from the working memory. Does it mostly try to align some internal state? or more just load memories into fast access
The next step is running an LLM that tries to figure out parts of the project that you aren't working on so it automatically starts coding that while letting you code in peace other stuff manually.
I try to fix it by having multiple opencode instances running on multiple issues from different projects at the same time, but it feels like I'm just herding robots.
I hope Google has been improving their diffusion model in the background this whole time. Having an agentic system that can spin up diffusion agents for lite tasks would be awesome
For me it honestly matches pretty well. I give it an instruction and go reply to an email, and when I'm back in my IDE I have work (that was done while I was doing something else) to review.
Going back from writing an email to working, versus going back from email to reviewing someone else's work feels harder.
What has worked for me is having multiple agents do different tasks (usually in different projects) and doing something myself that I haven't automated yet.
e.g. managing systems, initiating backups, thinking about how I'll automate my backups, etc.
The list of things I haven't automated is getting shorter, and having LLMs generate something I'm happy to hand the work to has been a big part of it.
as long as it's new I tremendously enjoy binge watching Claude:
I have three tabs open and if one of them is not doing something interesting I just switch to a different channel, and occasionally influenced the narrative
Somewhat. You have to set yourself up to manage your own attention because the context switching is rough. If you don’t you will burn out.
But the cycle is longer. When you help a person they don’t come back to you 4-20 minutes later.
I also only review PRs at specific times a day, because that’s more cognitively intensive and switching in and out pretty much ensures you’ll do it badly.
Either way, I’m really starting to think agentic as designed is a deeply flawed workflow. The future could be small, fast models that finish pseudo code and look stuff up to aide focus. Anthropic’s own research seems to support this.
For me: Will this task take 30 seconds or 3 minutes.
With good planning I've been able to step away and come back. Sometimes it decides to prompt me within 5 seconds for permissions. Sometimes it runs for 15 minutes.
The output is still small and I can review it. I can switch tasks, however if it's my primary effort for the day I don't like stepping away for an hour to do something else.
Not the OP, but the new LLMs together with harnesses (OpenCode in my case) can handle larger scopes of work - so the workflow moves away from pair programming (single-file changes, small scope diffs) to full-feature PR reviewing.
The waits are unpredictable length, so you never know if you should wait or switch to a new task. So you just do something to kill a little time while the machine thinks.
You never get into a flow state and you feel worn down from this constant vigilance of waiting for background jobs to finish.
I dont feel more productive, I feel like a lazy babysitter that’s just doing enough to keep the kids from hurting themselves