1) Developers are treated without much respect. Seriously, even with the scarcity, and even when we do get paid well (which is relatively rare) and have nice perks, developers still don't get the kind of respect other similarly highly skilled professionals get. At some point, when you get in your mid-30's and compare yourself with other professionals in the same age group, this really starts to grate.
2) The vast majority of companies still doesn't know how to make developers function properly. Those of us who discuss stuff like Agile, "manager / maker schedule", remote working, the pros and cons of open office plans, etcetera form a tiny minority, and we live in an echo chamber. 90% of all devs are still code monkeys in the basement. As a developer with a bit of experience and authority I decided to put my effort in changing that (i.e., get into management) to make life better for other developers.
3) I felt I was just repeating myself, basically doing the same thing on different platforms in different languages. I found it harder to learn new stuff not because I got "too old to learn", but because I didn't see anything particularly "new" in it, just same shit, different platform, which wasn't particularly motivating. (The only exception is the "cloud", because approaching the infrastructure as a dynamic, programmable resource is actually something new and challenging.)
Salary is still very much an issue. All this talk about developers getting paid so much is total bullshit, with the possible exception of a small minority of SV companies. Developers are seriously underpaid compared to their economic value and scarcity, and it's mostly just a matter of a lack of respect for "techies".
Personally, I don't care about the money (as a manager I currently choose to not get paid more than my best developers, which is making my bosses kinda nervous), but the feeling of getting screwed just pisses me off.
Most of you that are reading this: you are most likely not getting paid what you are worth. Not even close. Yes, even those who think they're doing fine. I've seen the numbers, and as a profession we are collectively getting screwed, with very few exceptions.
There are many professions in which people are less scarce, require less skill, knowledge and experience and add less economic value and still get paid considerably more simply because they are not "techies".
You are probably a lot harder to replace and a lot more skilled than many of those several hundred "core" employees. You probably are a "core" employee, it's just really convenient for them to not think of you as such.
As long as you don't complain or jump ship, they'll just keep doing that. Of course it's not all that tempting to jump ship, since even businesses that are "inherently software business" underpay developers, so if you're comfortable where you it's hardly worth it to move on for a few extra bucks. Despite the fact that all of those businesses are definitely whining loudly about the scarcity of developers.
Hell, even if you are "peripheral", if the same company needs to invest huge sums of money in office space, equipment or other "peripheral" stuff to "support" those "core employees", they will simply do the math and pull their wallets. It has nothing to do with "peripheral", it should be about scarcity and economic value. Paying you twice as much won't make a dent in their spreadsheets, nor will it make you insanely overpaid compared to many other employees.
But unfortunately in reality nobody bothers to do the math, it's all about "perceived" value, and as long as both you and your employer live inside the reality distortion field that totally undervalues developers, you'll continue to get underpaid.
The few companies that forget about prejudices towards techies and simply do the same cold hard math they apply to every other investment have absolutely no problem paying way above "market rate".
The base salary for a LU tube driver is more than the average it salary in London.