I got burned out badly by a string of gigs that effectively came down to helping clients fight some self-inflicted business complexity and connecting yet another stupid website to yet another stupid database, but instead of quitting the industry I decided to slowly fire clients that wanted that kind of work, and build my own products. It took a while to get things rolling since I did this as a gradual shift, and financed it by doing smaller and smaller consulting gigs, but I strongly recommend that as an alternative to quitting altogether to anyone who feels the pain outlined in the the original post.
For me, immersive coding is an activity that brings a lot of joy. Building software is the closest thing to modern magic - you turn ideas, keyboard clicks and caffeine into something that people actually use; potentially making a positive impact on someone's life/work/day.
By building my own stuff, at my own pace, I rediscovered the joy of coding. As much as it was in pre-2000 work and before web.
If you build your own stuff, then there's nobody to tell you to connect a RSS feed to a RDBMS system. For me, the key to keep programming enjoyable is to be able to control the pace and business requirements. In my case, this translated to focusing on business-to-consumer products at a very low cost to the consumer, so I'm in charge of the product, not the customers. With B2B, especially at a high single customer price, people feel entitled to ask for stupid shit, and whoever manages the product feels compelled to accept it. With low average lifetime customer value, saying no is very easy. I assume that's not the only way to keep full control of the product, but it worked for me.
The web is an application development platform that's split into two pieces with a critical security boundary in the middle, which causes basically all of its problems because every web app has to be a distributed system. If you can constrain what you want to build to either a set of pages and forms or a single client-server app that sits in a sandbox and uses the browser as its display buffer, that makes it manageable.
The default (and indeed only) language for the web not enforcing type safety is also a handicap. People will eventually build a shell inside it where compile time type safety can be mostly enforced.
On the other hand, the alternative is worse: a proprietary platform which shifts unpredictably and from which the owner can ban you.
I'm not sure that's the only alternative. I would actually describe the web as shifting, unpredictable at the behest of one company with the controlling browser and search engine.
Linux might "shifts unpredictably" too (looking at you Gnome ;) but at least the owner can't ban you.
Then there are people who work on compilers, image recognition, AI, browsers, server work of all kinds, etc etc. the variety, depth, and scale of work is much larger than web and can pay better as it can require a deeper level of expertise. I’m sure there exist web developers who make more than people who work in these spaces just as the converse is true. I don’t think it’s possible to say which pays more. Web dev may be an easier avenue to break into things with a low amount of experience though.
Compiler/AI work and the rest exists where I live as well but it's strictly in academia, not in private companies and has a high barrier of entry as it's mostly PhDs or post-docs and is also paid poorly.
Web dev work you can find in pretty much any major city in the world.
For example, in a city nearby to me there's a major VR/AR headset company which I'm pretty sure solves really interesting problems. The issue is, what happens when you want to change jobs but want to stay in the same city as that city has no VR/AR hub so there's no other demand for specialists in this specific niche.
Genuinely curious as I'm open to a move.
If you look around a bit, as an in-demand (meaning - chasing the latest tech fads, maybe some tech lead experience as well) senior backend developer, you can get take home 250,000 PLN per year on a long-term (meaning usually multiple years) contract basis. Assuming 60,000 PLN of that goes to living expenses, it takes less than 16 years to save up the required 3m PLN to retire. And, if you're really hot in terms of CV, you can take home much more than 250k per year. Also, there are options to contract in Western Europe or get six figure remote US job (this one's harder than the other options) for more pay.
Also, I myself happen to make over 400k net PLN per year, but I didn't want to use myself as an example, as I only know a handful of people who make that much - so it's perhaps not something you 100% can count, whereas the 250k per year number is absolutely attainable by any senior dev with reasonable/modern CV and good negotiating/job hopping skills.
I have worked on mobile OS, PC software development, web, machine learning problems, and now VR. I’m not particularly worried about getting pigeonholed because any company I’d want to work for can recognize the value of a generalist - I’m not going to solve hard domain-specific problems but I can architect the SW and plug all the pieces together and dive into domain-specific problems when necessary. To be fair though I’ve heard this concern from other people who want to move back to Europe, but the framing was different - how do I explain to them what I do in a recognizable manner.
However some places are 10, sometimes 20 years behind into best practices, be that in coding, tools, PM practices, innovation, etc.
There's a reason a lot of mobile phone companies closed down (as an example).
As much as I like the area I don't miss staring at a hodge-podge of C/C++ code done in weird style that might or might not have been auto generated and will as many memory bugs as possible.
My team's responsibilities include configuration management, fault management, and certain KPI monitoring. We don't need to write webapps for that (though we do integrate with them) :)
Not sure if I would make more doing webdev, but am not in US so it would be normal middle-class income anyway.
Now I feel like I'm always spinning my wheels. Even worse, I'm more capable of learning and understanding than ever, but the amount I need to know is increasing faster than my abilities to learn it.
It doesn't stop me from moving forward (it hasn't yet) but there are those occasional days...
I've wanted one-way data flow (React, Elm) forever.
We just have rose colored glasses because we were younger, dabbling, all tech was new and non-web tech was just what was available. And we confuse that for some sort of obvious tech superiority. I'd say those were the worst times for application development, not the best. Makes me wonder how many people actually worked on a production client application back then.
The platform that the web was designed on (NeXTSTEP) was much nicer to develop on. VB programmers had a much easier time than web development now. The web was designed as a document delivery platform and it continues to show how hard it is to get basic functionality going.
How is that different from MVC patterns in desktop development?
True, a lot of that could just be the change in scenery. But I really appreciate that just about everything about the platform exists in order to create software, rather than trying to jump through the bizarre hoops that browsers created. Not dealing with Webpack is an absolute god send.
But with all that said, I think wasm has the potential to bring us sanity again. And if not wasm, then possibly tools like Rome will make web dev a bit more sane at least.