Ask HN: I’m falling out of love with coding

235 points by zikero ↗ HN
I spoke to a lot of software engineers around me and the feeling seems common.

I remember the days I started coding, and how much I enjoyed that. I was able to create things with just the power of my thoughts, and it felt like a superpower.

Nowadays, I feel like I have to jump so many hoops and spend so much mental bandwidth just to get the permission to code. It would be fair to say that on avg I spend less than 20% of my time coding or solving problems.

Any project I work on is connected to a million different tools, workflows and services, that all do things their own way, and everything lives in a totally different place, where it’s hard to monitor what’s going on.

I feel like anything can break at any moment and ruin my day. I don’t understand any of the tools well enough to be confident that it’s stable, and the worst problems are the silent ones. This is giving me anxiety.

I work mostly with Javascript — and that doesn’t help. All the frameworks/libs I use insist on being too flexible, to the point where I don’t know where to start and how to do things. Just show me the “right” way, and let me figure out how to opt out if I want to. Oh and every 10 minutes there is a new tool that pops up that does things differently.

I wish I could go back to the days where I spent most of my day in the IDE and at the end produce something that was (to me) amazing. My most challenging moments were when I had a tough logic problem to solve — but I enjoyed those immensely. I’d rather fight with my brain than with the tools I use.

I wish I could just use an IDE that takes care of all the crap for me and just lets me code and write business logic.

I now understand why there’s a trend of developers who want to go live in a farm or take up woodworking: tough(er) problems, but with less variables & easier to reason about. If the wood breaks, you can see where and can probably guess why. Making a table is a mostly linear set of steps, and the basic tools you use don’t change much throughout the years. There is no invisible ghost that lives in a separate realm (dev environment) that can ruin your work at any time and leave no trace.

Any insights? Should I just switch careers?

300 comments

[ 4.3 ms ] story [ 226 ms ] thread
> I work mostly with Javascript — and that doesn’t help.

I read it really quickly, but different language, different org that's more flexible? Try out a few different ones?

If you don’t like the JavaScript vibe, why not try a different domain? Work for a bigger company, or a much smaller one, doing something else. Maybe get into data engineering?
>I now understand why there’s a trend of developers who want to go live in a farm or take up woodworking

I own a farm and a carpentry business, both since the start of covid. And I do freelance development. I have no plans to return to corporate coding. Life is great, never been happier or more fulfilled. But that is just me, your mileage may vary. Also it is a lot of hard physical work, at least during building and growing season. The grass is always greener. I code in the winter.

"I code in the winter."

I applaud you. I sleep in the winter.

I get bored of laying in bed all day after the first week or two.
you're like a bingo card rolled up into a single person. I recently used my circular saw, multi tool, and drill for my first real project(mounting a hangboard on my ceiling joists) and it was immensely satisfying... I see the allure but I'm definitely wearing gloves next time. my hands are all cut up from driving the screws
I try to set my life up so that every day is an adventure :)

Glad you enjoyed yourself. And yes safety is paramount. Gloves and glasses are a staple for me, and hearing protection. I know a guy that lost the tip of his thumb. And not from a saw accident either. He got a splinter and it became infected. He tarried going to the doctor and ended up needing to have the tip amputated.

I don't have exactly the same problems - our dev stack if pretty old fashioned but works well (dotnet). I don't enjoy it as much either though, most business problems are either easy + tedious to resolve, or involve making a complexity tar pit even worse. Naturally you'll end up spending almost all your time on the latter. Add on top a lot of interpersonal tension from there being a bunch of almost equally good ways of doing any one thing and it's easy to see why programming can stop being fun (while still being a decent profession).

I thought this was well put: > I now understand why there’s a trend of developers who want to go live in a farm or take up woodworking: tough(er) problems, but with less variables & easier to reason about. If the wood breaks, you can see where and can probably guess why. Making a table is a mostly linear set of steps, and the basic tools you use don’t change much throughout the years. There is no invisible ghost that lives in a separate realm (dev environment) that can ruin your work at any time and leave no trace.

There's not many things less starting an implementation and discovering a series of hard to anticipate incompatibilities between your implementation and the rest of the system. I'm sure this happens in other professions, but perhaps it's easier to work around?

Are you sure it's the code and not the organization? I love coding but everything about shipping software makes the programming feel so devalued. Coding is an art and companies don't care about art, they care about money. Mix that in with Agile and office politics and everything seems to be about the act of shipping instead of the software itself.
"I’d rather fight with my brain than with the tools I use."

This is why I prefer reinventing the wheel. I have exactly zero desire to learn someone's mental model when I could instead learn how to perform actual work.

Although, I don't consider connecting APIs to be coding either.

Honestly try out dotnet, especially on Windows VS (which actually works really well with Windows Subsystem for Linux these days, so you can run it easily on Linux).

Usually libs in the dotnet ecosystem are pretty clear on how to use them, and the stdlib of dotnet is huge - so you use a lot less 3rd party dependencies than other enviroments.

Personally for webapps I prefer MVC to Razor Pages, but that is personal choice and probably because I am so used to it.

I also do a lot of JS/TS work and really know what you mean with "fighting" the ecosystem.

Yeah I felt the same way working on Angular 4 or 5 years ago. .NET though is just freaking easy and works well.

It seems like the SPA trend is slipping away which I think is a good thing.

Coding has been embraced and extended. Has it been extinguished?
The likes of chatGPT seem to bridge the gap between the last two steps.
I think it's perfectly normal to want to do something else after you've been doing one thing for decades. Humans like variety, the "mid-life crisis" is a thing for a reason. I think IT work in particular is tricky to escape, because it's such a large step down in pay to switch to another career. People end up stuck here for longer than they ought to and burn out or coast, because they don't want to take the pay downgrade to find a new career path.
You're right that it's normal to feel that way, and it's all true that IT is a trap in some ways.

But it's also possible to find joy in tech by moving to a new area for a while. Of course, it feels like another particularly tough era to think about moving, which may contribute to both the feelings of anxiety and sadness about where the OP is at the moment.

My recommendation when counseling folks on this situation is to start by finding a willingness to try a new path. Working on getting onto a better path is often as engaging at rewarding technical work.

That doesn’t sound like you’re falling out of love with programming. It sounds like you’re frustrated with the red tape at work.

Try working on something fun on the side. Make a game, or a mobile app, or something you’ve always been curious about that doesn’t have anything to do with your job. You might be amazed by how productive you feel when you work on something ambitious that doesn’t involve all of the corporate machinery.

I’ve been getting a nice dose of that with game development. Sometimes I sit down on a Saturday with a big plan that should last me through the weekend, and I get it done before dinner that evening, and I feel like some kind of programming wizard. It’s been a great reminder that I am a talented programmer, but I’m just feeling burned out on all of the tedious process that’s involved when coding professionally.

+1 on game development. This is where I always find the most engaging and fun programming puzzles.
Yep.

Key thing is to make small game projects that you aim to finish in well under a year. Once you embark on a big project and feature creep sets in, you’re back to avoiding programming.

Totally. I find that seeking a true MVP (like, really paring the idea down to truly minimal) is part of the fun. Making something really tiny that explores an idea is really inspiring and sets you up (mentally) for taking on something slightly larger next time.
What libraries or engine do you recommend to build on for fun of programming?
Unreal engine is pretty fun, I like the ease of adding models and physics by mouse without writing complex collision detection logics.
If you're _totally_ new to game programming (like me), I found tic80 [0] or pico8 [1] (I think the latter is more popular) a really nice introduction to game programming. They are simulated "fantasy consoles" that come with a whole wack constraints, so you're somewhat limited in what you can build, but it leaves a lot of room to grok core concepts that you could then take over to Unity or Unreal or the like.

There is a third one too, I can't remember what it's called though. I think it has "Love" in the name.

[0] https://tic80.com/

[1] https://www.lexaloffle.com/pico-8.php

It is literally called Love (or LÖVE): https://love2d.org/
Ah, thanks! I thought so—I searched for "love console" and did not come up. "Love game engine" worked a little better.
I found Godot[1] to be a nice, mostly consistent and cohesive gaming engine and editor. It has a Python-like native scripting language, and the whole thing feels much more approachable compared to Unreal and Unity.

1. https://godotengine.org/

I've had some success banging out quick ideas with Godot
The only time I coded anything in the last 3 years (been a manager) was during a hackathon -- I made a videogame that integrated our technology in a novel way to expose a new market segment. It was by far the most engaged I have ever been to the extent that I booked weekend nannies around the clock to get more time put into it, probably 130 hours spent that week. The end result was something I was actually proud of, which is something slinging ads has never been [for anyone]. Afterwards, I fell into a depression, told my manager I was switching to an IC role, and even debated quitting entirely to pursue indie game dev (just about financially independent, would easily make it to a supply-side-favored environment should I wish to return to corp nonsense). Unfortunately, it's difficult to give up mid 6s for what would most likely be 0 income ever even if it meant being content.
Did you use something like Unreal or Unity for this, or start at a more foundational level and deal directly with graphics APIs etc.?

I ask as a matter of curiosity and personal interest--it's something I'd like to learn as a hobbyist, but my knowledge is limited to simple OpenGL tutorials and the (relatively speaking) watered-down Graphics course I took in College years back.

I would strongly recommend starting with an engine like Unity. You can prototype and get something functional SO fast. It's extremely rewarding and keeps in the dopamine loop. There's not sense in struggling through OpenGL to build an engine from scratch unless that's what gets your rocks off or you have an explicit need for it.
I worked in WebGL without a game or graphics engine sitting on top, because I'm both a masochist and egoist. If you haven't ever dipped your feet into RTR before (or don't have an interest in "doing everything yourself" / flexing or have a desire to be productive without building your own tooling), I have to recommend Unity or Unreal.
OP is frustrated with flaky and constantly changing tools, silent breaking bugs, poorly documented libraries that change capriciously, and unhelpful IDEs, all connected to and reliant on badly behaving services. Why is game development different? My experiences with the larger or more popular publicly available engines available haven't suggested that.
One paragraph mentioned that, but the thrust of the argument was about burnout. For me, burnout occurs when I feel like I’m putting a lot of time and effort into something but I’m not getting enough back to justify it. Burnout is like a mechanism to get you to stop pouring energy into something that isn’t working.

Unfortunately, many managers are bad at giving positive feedback. The only time you hear from them is when something isn’t working. Corporate processes slow things down and make you feel ineffective. Eventually you start to wonder if you’re actually bad at software development, or if you’re just a bad worker.

Let’s say you get a ticket for a performance problem. It turns out that the app is doing something kind of silly, and it would be easy to fix the problem and you’re confident that users would be okay with it. Well, too bad. You’re not allowed to make product decisions; only management can do that. So you bring it to management, but they’re in a meeting. You don’t have enough time to do anything else, so you spend 15 minutes reading HN.

They get out of the meeting, and you explain the problem. They’re okay with the change, but because it affects the UI, you need to get approval from the UX team. You explain that it’s a very minor change, but management insists that you have to follow the process.

You go to UX. You explain the problem, but they don’t have time to get back to you. You figure it’s going to be a bit, so you grab another ticket. 20 minutes later, it turns out that they’ve approved your request. It was a very small change, after all. So now you have to put your ticket back, which is going to mess with the time tracking in Jira that your boss gets pissy about, but whatever.

You make the change, which takes about 5 minutes. You commit, push, and open a PR. The CI tests fail. Apparently there was some kind of silly linter error, so you fix that and push again. Now you wait for the tests to pass, which takes about 40 minutes.

The QA team requires a detailed set of instructions for how to test every ticket, so you start writing up those instructions in the Jira ticket. As that’s happening, you get a Slack message from the documentation team. They noticed your ticket status change, and you forgot to mark it as requiring doc review because it affected the UI. You apologize and go back to update the ticket.

When you’re done updating the ticket, you notice the build has failed. Looks like a flakey test that’s been a problem for months now, but no one ever gets time to fix it. You re-run the tests and cross your fingers.

Time for a sprint planning meeting. Two hours later you resume work. The build passed, but your irritatingly picky co-worker has requested a change on your PR. He always requests at least one change on every PR, no matter how small. You used this method to find an element in an array, and while there’s nothing wrong with that, he personally prefers that method for doing it, and he won’t approve your PR until you change it.

So you update the branch and push again. Then you start working on filling out information for the compliance team which is needed for anything affecting this part of the application. You wrap that up and notice that the flakey test failed again. Swearing under your breath, you re-run the build.

You spend some time reviewing PRs for your co-workers and see that your build passed and your picky co-worker approved the changes. You merge and move onto something new. A few minutes later you get a message from the QA team. You didn’t provide documentation for how to test the code. You remember that you were in the middle of writing it when you got interrupted, and you forgot. You apologize and finish writing it.

You look at your watch and realize that it’s the end of the day. You know your boss is going to be irritated with you after standup tomorrow because you spent all day working on a ticket that was only estimated for half a day.

This is the kind of stuff that makes me want to run away...

I don't disagree with any of this, but I've read OP's comment again and again in light of the discussion in the comments here and I don't see anything in there about process. It's not just one paragraph:

- "Any project I work on is connected to a million different tools, workflows and services, that all do things their own way, and everything lives in a totally different place, where it’s hard to monitor what’s going on."

- "I feel like anything can break at any moment and ruin my day. I don’t understand any of the tools well enough to be confident that it’s stable, and the worst problems are the silent ones."

- "All the frameworks/libs I use insist on being too flexible, to the point where I don’t know where to start and how to do things. ... Oh and every 10 minutes there is a new tool that pops up that does things differently."

- "I’d rather fight with my brain than with the tools I use."

- "I wish I could just use an IDE that takes care of all the crap for me"

- "There is no invisible ghost that lives in a separate realm (dev environment) that can ruin your work at any time and leave no trace."

I apologize; I may have explained poorly.

I was trying to convey that burnout is (IMHO) a result of putting a lot of effort into something and not getting enough back out of it. It’s like a defense mechanism to stop wasting energy. This may be a result of processes, tools, compensation, treatment by co-workers, or any number of other factors.

And my suggestion on how to resolve burnout is to find a way to feel productive and capable again. Personally, game development worked for me. But I also mentioned mobile app development as a possible avenue, but obviously this list isn’t intended to be exhaustive.

Just find something that helps you remember why you loved programming in the first place. You probably haven’t stopped enjoying the act of writing code. It’s just that something at work is making you unhappy, and you’ve started to associate those negative feelings with programming in general.

I had that feeling about a year ago, sat down with some fun hobby project and the love was there instantly.

I do know some people that had to switch careers entirely, but often it's the job tearing one apart.

If you think there is anything worth salvaging, just go to your boss and tell them that this ship needs righting or you're gone. Preferably with some things you feel could be done right now.

I hear you! Transpiling, bundling, CSS in JS, image imports, hooks, dependency hells, huge stack traces, the list goes on and on.. Such a mess.
> Any project I work on is connected to a million different tools, workflows and services,

I was just skimming and read that, and I thought "he is working in Javascript" and yep, later on that's it.

I stay away from the Javascript/TS ecosystem (npm et al). I program mostly in Go, but also quite a bit in Typescript.

I would learn/use (even if for personal projects) more boring tech stacks, like Java/C#/Go/PL-SQL/T-SQL. For myself, Go has extremely stable tools that just work and have well-known limitations. Consider a lateral move within tech.

I do the same but Go can't help me with frontend, right? What do you do?
If you don’t like JS/TS then just don’t do front end? There’s plenty of backend only jobs.
Or remember that there are actually frontends other than web browsers.
Yes, there are web browsers and then there are electron ones.
It's worth stating: you can write frontends without buying into the ecosystem at large. I've been working on a multiplayer video game using Go + websockets in the backend, and a JS frontend with zero dependencies.

IMO JS is really fun to program this way. You program straight to the capabilities of the browser. All of the problems people promised I'd face by avoiding their framework of choice didn't show up after all.

I once suffered from Javascript fatigue, had to work with frontend anyways, and had the privilege of picking my own tools.

That's when I started experimenting with Elm, Bucklescript (now ReScript) and Clojurescript. It was a very insightful journey that made me enjoy frontend development again.

Today, Clojurescript is my favorite method of working with frontend code and, as long as I can pick my own tools, that's the one I'm sticking with.

For those suffering of Javascript fatigue, I highly recommend playing around with these alternatives. Try doing a simple, small side project in them. It may reignite your joy for programing and who knows, maybe you can find a job to work full-time with these tools.

Just learn Next.js (Vercel), TypeScript, and MUI and don’t use anything else. Make sure you also understand CSS flex-box and such.
[upvoting solely for your username]
For the front-end I write SPAs.

I rely on the TS compiler to bundle into a single JS file, so I avoid bundler (etc).

I build a simple framework that meets my needs that I can essentially vendor and keep in my head. I'm would love to use an established framework rather then my own (don't get me wrong, there are serious downsides to rolling my own), but it must be small enough I can read it easily in a single sitting. I will not touch the NPM ecosystem. I sometimes will pull a dependency in by manually copying in the parts I need (preserving licenses, etc).

There are real downsides to doing what I do, but I do it to keep myself sane. I do not touch the npm ecosystem.

I also review every line of code I pull in from any language (Go, TS, etc). An ecosystem that makes this difficult or impossible is just a non-starter.

This is been the sanity-saving solution for me. I roll 100% of my own stuff in TS and web components. It sounds awful -- unless you compare it with fighting someone else's dragons.

This way, the only dragons I have are ones I created and ones I can slay. The more I write my things in functional style and build only exactly what my application needs, the company's "framework" continues to evolve AND our apps continue to work!

No one is going to change any of the "ecosystem" out from under me because there isn't one. Everything is compiled in Vite (automatically and hot reloaded) and I only ship a minified, static, single index.html file with my entire app in it. There are no globals that I didn't make, no functions that are required unless I required them, etc. It's a HUGE timesaver when debugging or adding new things the team requests.

I'm able to continue to write new, cool stuff in both our public-facing web app and in our internal web tool (game dev), both on the same framework.

I stay away from all the JS dependency bullshit as much as possible.

I use vanilla JS & CSS wherever possible, usually in a Go template.

If I have to create a SPA then I use Vue - I've found it's the least complex of the front-end frameworks. I build it using ESBuild from the flat JS files downloaded from the Vue site and stay as far from yarn/npm as possible.

I'm trying to work out how to compile Go to WASM and manipulate the DOM easily from there, but so far it's more complex than just writing JS.

Any Go WASM solution will come with big performance costs and complexity that are worth considering:

1. Since WASM doesn't yet expose a feature to share GC with the host, the GC functionality with necessarily be bundled with your outputted code, making your WASM size larger than ideal.

2. All calls from WASM have to go through a JS layer in order to interact with the Web APIs anyway, so now you actually have _two_ GCs to run.

3. The developer experience is going to be poor unless you write a shit ton of wrappers for the existing DOM API.

I say the above not to dissuade you, I find WASM an attractive value proposition and use WASM in all sorts of ways in personal projects. Good luck

I'm not bothered about GC's - the size is a problem, but I've never had to worry about GC performance issues yet.

Everything else is spot on, that's the pain!

You probably know about this, but it might be worth trying TinyGo[0] for WASM, given that WASM is basically an embedded environment.

0: https://tinygo.org/

No viable alternative to JS/TS for web (client side) unfortunately.
I mean, making a career pivot away from front end is technically an alternative
You can make interactive web sites with a minimal amount of JS (et al).

For example the mentioned Go has a HTML templating package in the std library.

You could use something like htmx (the creator is a regular on here) which is a very small, very convenient library that gets you 80% of the way for your typical web application.

For the rest, you can always just stick with plain old DOM manipulation or write web components if you want something that's more re-usable and general. No build step or transpilation shenanigans required here.

Sure, but you don't have to do it the way most JS projects do it.

I've made a career writing Django apps. In most cases, the JS I write is limited to vanilla JS with no JS dependencies (the minification is done by a Python library which might depend on JS, but it's abstracted away enough that I don't have to know). There needs to be a serious amount of justification to even install Node/NPM as part of a project.

The vast majority of work is done on the backend, with JS only being used for UX. I used to pull in React+ReactDOM on some projects, but Web components are paving the way for that to no longer be necessary.

As I mentioned elsewhere, it's possible to pull all of pip into a Python project and have all the same problems, but the culture around Python isn't quite as myopic as the JS community, so I've generally been able to keep dependencies more sparse when working on Python teams.

Getting proficient with Go has been the best move of my career to date. It's such a productive language, and you don't have the same drowning in dependencies problems whatsoever becuase the stdlib and a few packages around it are just so strong. I like being able to show off a very small go.mod to a boss who's been putting up with NPM hell for the better part of a decade.

I like typescript, I've tried Deno but it's just insane to me how people get caught up in all the hype around the NPM ecosystem only to end up crashing into walls like 'entire system shutting down' with no idea how to fix it. Friend who came before me hit me up asking about a 'linux problem' and it was just webpack crashing his entire computer with semaphore exhaustion. I keep that stuff confined to where it was spawned from, in the browser, anywhere else just doesn't feel sane to me.

You're just lucky to work in a company with a good codebase. I'm sure there's plenty toxic environments with shitty codebases written in Go where you wouldn't like working there at all. You're giving too much credit to how much the programming language matters imo.
You are correct to an extent, but its a fallacy to assume the language and tooling have no impact on the culture or people it attracts. Go is very specifically not "elegant", it has a stdlib where npm has hundreds of dependencies which differ between projects. Errors in JS (Ruby, etc) can come from unexpected places, but the code can elegantly hide them. In Go they are in your face at all times -- but then they rarely surprise you. etc. Its a series of trade offs that are more than simple choices IMO, they target and attract different audiences. And to an extent many people will likely gel better with one than the other. Its only a piece of the puzzle to be sure and the people and company matter more, but I strongly disagree that languages / frameworks matter little. I think those with big differences (Node/Ruby vs Go) there's probably a substantial difference in "average" workplace culture.
> You are correct to an extent, but its a fallacy to assume the language and tooling have no impact on the culture or people it attracts

If the company is doing anything web related it will have JS people somewhere right? And it might also choose to make everyone full stack (so doing both Go and JS) or making some of the teams hybrid. That's quite common. I don't really see much difference between a company that chooses Go to a company that chooses Node (or Ruby, whatever), they both have their pros and cons and it doesn't tell me that much about the people I'll be working with.

I have several side projects where I use a simple Spring Boot backend and I feel I can focus more on the fun part (solving problems). It just works! There is also a huge eco system of good quality open source libraries compared to some of the newer backend languages.

This feeling is absent from React-based apps. The React eco system has been around for many years now, but is missing many of the advantages age typically brings. The eco system feels much more fragile and driven by hype. I simply don't trust things to work as smoothly. Maybe this instability is what keeps React popular? If it becomes more stable, it will not generate as much hype and developers move to the next big thing.

My experience with React has been different hence commenting here. That is just not true. I have used react with nextjs in the past but moved to remix. Moving to a new framework requires you to learn it, quite similar to learning a new language but it is much better than manually creating webpack loaders. I had a decent experience with nextjs but my experience with remix has been better.

I used Spring Boot at work and I have worked with backend libraries like Express(JS), Flask(Python), Gin(go) all the experiences have been much better than using Spring Boot. Java takes too long to compile, dependecy injection in Spring just seems to take forever, and overall Java is very very verbose. Just to create a stupid API, you have to create a new class for request, one for response, controller, service. I can do it if I am paid for it but using that for side projects, a big NO.

I think we have different ideas about what a good development environment is, and that is ok. We have our preferences and we can't argue with that.

I would like to comment on how you feel Java compilation is slow. Incremental compilation while developing is fast and doesn't affect my productivity (your experience may differ).

Triggering a single threaded full build with one of my services (1000+ files and 80k lines) took less than 30 seconds on my laptop (18s with parallel compilation). But I never do that locally, as incremental compilations are almost instant.

If you need to download dependencies and run tests, the number is higher, but that is not specific for Java

I recently fired up a project in Django, after not using it for a decade, and I had the same feeling. I defined a couple of models and BOOM I had a working website. Felt a little bit like the last ten years of web framework development hasn't resulted in anything better.

As you point out, the React ecosystem does seem to be mired in "what approach should I take"-style questions for basic things like data loading, routing, etc.

"I have several side projects where I use a simple Spring Boot backend and I feel I can focus more on the fun part (solving problems)."

I tried to do side projects with Spring Boot and I also worked with it professionally. I never got to the point where I can focus on just solving problems, I'm always fighting with the framework, looking for how to do certain things in the depths of blogs and stackoverflow because I can never find what I need in Spring docs. I actually find it interesting how some people seem to be very productive with it, while others have issues similar to mine.

Switch to work for a small company where you can focus on your code and choosing your solutions. I've seen a lot of people around me working for large companies being well payed but also really unhappy with their jobs. Money will not buy you happiness.
You don't dislike coding, you and all your coworkers work at a shit-tier company.

Get a job doing something else that involves coding. Do you know advanced math and physics? There are tons of opportunities in the applied sciences and you'd be a god-tier coder among men at federal research labs etc.

Been there, felt that. Have you tried learning a new technology just for fun? When I got tired of PHP, switched to Ruby and the love and feel of wonder was there. When I got tired of my corporate job tech stack, I looked for a freelance side gig where I now spent most of my time and weekends because the challenge is fun.

Maybe finding a side project you actually like and understand can help.

I'm currently fighting with poor README instructions on how to get a project up and running locally. It's been a couple of hours already and I just want to code, not fight with these tools.
tl;dr you probably just work on projects you don't like, not that you don't like coding. Been there, done that. Nothing new under the sun. Those people who say that you will never work a day in your life if you do what you love are foll of crap because having an option to do something and having to do something are two very different things. And having to do something you like doing is the fastest way to hate it. My advice is switch company and look for work that interests you nowadays. Like instead of working for a company doing e-commerce, go work for a company doing IoT, banking, healthcare or anything like that. Just change the type of work you do.
DevOps does this with me. Code = happy. DevOps = disgust.
You can write in JavaScript without any frameworks and libs. The language itself is pretty self-sufficient.

5 years ago I started https://github.com/akalenuk/wordsandbuttons to focus on interactive writing. Just text and JavaScript to make interactive illustrations. There are no dependencies in principle. Nor external, neither external. Only text and code. Tons of fun, no red tape.

You might think that this works for small projects only. Well, there are more than 50 interactive pages now (would have been more, but I spent 1.5 years writing a book), and things haven't started to fall apart yet.

I strongly advice vanilla programming for hobby. JavaScript or not.

It happens in ALL industries and fields, from art (music, design, painting) to software development.
I don’t think so; these things you name but also physical jobs like electrician etc don’t have this ‘new shit to learn every day’ while it doesn’t actually help getting anything more done (the opposite actually). There are plenty industries and fields including art where you can do your job with the same tools (physically the same tools even) you were using 40 years ago. In software I am getting berated by strangers when I want to do that (‘it is morally wrong to use C in 2023’ and crap like that).

When, as a retired musician, painter, plumber or electrician, you walk into a project that was done yesterday, you can just understand it and start working. With software (well, frontend mostly), you will have spend an insane amount of work figuring out which billions will of crappy dependencies and myriad of frameworks were chosen and then learn those to start working.

That is just not very normal in most professions.

But sure, you could get bored after doing something for a long time. The getting annoyed and frustrated by not being able to do your job because someone added crap no one asked for (for tech ego etc), making all kinds of pain you have to figure out before writing code, I have not seen outside software dev.

Came here after searching for threads related to anxiety in the software development field. I feel this way too. In most professions, after you learn the specific number of things you need to learn while starting out, you just tend to improve upon them with time. And just like you said, a woodworker could get back to a project years later and he would feel right at home, unlike the SW field where things move so quickly. I battle impostor's syndrome daily.
> Should I just switch careers?

You certainly seem to be in a rut, but before you take up woodworking or glassblowing try branching out and do some programming in a totally different area. This could lead to a change of career focus but you would have to start in a part-time/hobby way. I can't make any concrete suggestions since I don't know you or your circumstances, but make radical changes. Choose a new language, get into a totally different programming area, think of your own projects where you have total control.

Personally, I work in the scientific area doing a lot of varied work including visualization. I have an embedded programming hobby in the Arduino world using C/C++. I have been making measuring instruments for ham radio but currently I'm in the middle of three clock projects. All of them are designed to JUST WORK™. They guess the current timezone, take time from the internet and try to handle daylight savings changes automatically. Configuration, to set access point and password, is done through a web server that runs on the clock acting as an access point. I cut acrylic cases for them and they are good enough to make nice gifts. It's very satisfying to take a project from the back of the envelope through to completion, and it appears that is something you are missing.

> I work mostly with Javascript — and that doesn’t help.

Yup. I would even say it's probably the root cause. Stop working with JavaScript.

I can't personally say with any sort of authority if JavaScript is the root cause of OP's dilemma because beyond a brief stint coding in JavaScript for Yahoo Widgets on early "Smart TVs" (due to a rather unexpected series of events) I haven't used JS regularly for any extended period of time, but I can say that I'm 49 and still really enjoy coding (these days mostly in Kotlin/Android and Go), so I can say falling out of love with coding as you age isn't universal.
I don't live in the US nor work in tech, but I am wondering - have the big tech firms been doing much juniorization lately as part of the recent recruitment spree?

In my industry there certainly was a lot of jobs being dumbed down and hiring standards falling, with the indivisible challenging work being concentrated into the hands of a small number of people.

Personally, I don't find technical implementation any more interesting than creating Excel spreadsheets - it's just a tool for me. Maybe some applications require very sophisticated implementations, but I don't think that's the majority of cases. There's no high-tech feel about IT in 2023 to me.

You are anxious about things constantly breaking, and you work in Javascript. No surprise.

Try learning Rust.

Your anxiety of things constantly breaking will disappear.

I've been coding for about 20 years. My joy of coding would be gone if not for Rust. Instead, writing code is my primary hobby today, in addition to it being (part of) my job professionally.

This is my approach to solve this same problem for myself.

I wanted a more deterministic and reasoned approach to things. Also as another person stated elsewhere, practicing minimalistic engineering where you roll your own instead of mindlessly bringing in another library can help sometimes.

I do feel like technology has let the public down. Ransomware, identity theft, fake news, social media, etc. Things like memory safety used to be discussed in the most technical of circles. However computer security is impacting society as a whole, seems like the entire planet has had their identity stolen. Now Congress, NSA, CISA, and even Consumer Reports are discussing memory safety. Sure Rust is a small piece of secure computing, but it's a step in the right direction.