A friend of mine is at a crossroads in their software engineering career and I spewed some thoughts at them I thought I would preserve here.
I think we're in the era where an engineer really needs to be full stack to stand out. Like it's not enough to be specialized for a specific niche, so many engineering skills and patterns apply to both frontend and backend, and agentic coding assistants mean we can work effectively in any language, for any platform, any framework, so long as we have a solid foundation of good software engineering practices and an understanding of how to properly direct coding agents. Stuff like test driven development / red-green test writing, understanding different refactoring methods, overall understanding of different universal architecture patterns... and then you likely need taste, an eye for design, because the dedicated designer role is likely going the way of the dodo–the designers have the same coding agents and can learn the same patterns and philosophies about software engineering that we know, so we're competing with them now.