Advice I give to anyone (with career options) that is considering this field is that serious work in this field requires significant professional level learning and intellectual abilities, yet the profession as a whole is effectively treated as "skilled labor". If you are serious about SE as a career, then within in 10 years, do one of the following:
1 - Start your own sofware development company. Do the startup thing.
2 - Start your own software consultancy business.
3 - Make an informed choice of a niche and become an expert.
Outside of the above, at most you can look forward to (in general) is either transitioning to management, or a continuation of what your are describing: a glorified blue-collar career. (White collar professionals with experience seeking employment do -not- suffer the same indignities that is the common experience of skilled workers in this field.)
Management is fine if that turns you on, but you will definitely not scratch your geek itches as a manager, so the question is: is wasting your intellectual abilities as a young person worth a "payoff" of ending up in a management role? I mean, if you're going to end up in middle management, wouldn't it be smarter to just cut the chase, get that MBA, and start your management career properly. Or is it perhaps worth a fun first 10 years of "free soda", less structured work environment, and the adolescent culture of software development? Your 30+ year old self will likely tell your younger self "this was a mistake". Seriously consider the fact that this is a field where inexperienced workers routinely dismiss experienced practitioners. The technical domain ignorance pervasive in the field is rather significant and one of the more surprising aspects of this industry. Knowledge and experience can actually be a liability in this industry and high level fakers abound.
There are many other possibilities, of course, but these type of opportunities (such as making a pivot to writing books on software development, etc.) are more about the individual concerned -- their drive, ambition, work ethics, social skill, etc. - than about software engineering in particular. But so are the 3 options listed above.
TLDR:
For certain individuals, career choice is incidental. They possess the necessary skills, ambition, drive, discipline to succeed regardless of the industry. For the overwhelming others, a career choice is a strategic choice. Software development as a career is a poor choice for the latter. If you are intellectually capable, but not a go-getter, pick another career that requires brain power.