The only reason why I, with a design background, was able to learn frontend (as well as additional topics like design patterns, DSAs, caching, software architecture, optimization, etc.) was because I was lucky enough to find a back end engineer who needed design help and was game to let me take the reigns on that part of the project even when I had zero experience. I mean, holy shit, talk about trial by fire. He tested me with toy projects and then when I showed that I could actually walk the walk, we were off to the races with real client projects. Other companies simply put people like me to do one thing and one thing alone which is... well design.
Realistically, most companies just care about filtering candidates based on x years of experience in Language/Library. Which makes sense, but it also means that pushing the boundaries of your knowledge isn't resume-able until a company allows you to deploy, at which point you can finally say you have 0+i years of ThingYourAreLearning.
I've been mentoring a Designer and friend over the last year, and I'm also teaching coding for designers since a short while.
The benefits are quite tangible: As a programmer, you still structure the application, set up the tooling, build the abstractions and the logic, but you're now freed from fiddling with pixels, because the designer has already built his prototypes with implementation in mind, can communicate intent, compromises and solutions for edge cases, and they can also implement a lot of things by themselves, sometimes with guidance. Git is not rocket science either if you give them a clear workflow and resolve issues that are beyond what you'd expect.
For what it's worth, a personal anecdote - I didn't work with UX people or product managers until after I spent ~12 or so years as a developer/development manager.
My first impression of UX and PdMs was "wait, that's a job? This is stuff I expect my engineers to do. I wouldn't let my engineers get away without understanding the business or not obsess about the user experience."
Ironically I am now a product manager and what I have learned is that the answer is very simple: "perfect engineers (using your definition) are FUCKING RARE." In a startup you probably can structure your org around a handful of them, but by the time you're say Google-size (and way smaller than that) if your demands for a dev is "must be great at UX/business too" you just won't hire that many people, so you allow yourself to scale by breaking out the roles instead.
I miss the days of doing it all and try to get into it as much as I can, but I can't recommend that as a company strategy.
I don't think that designers should have to know development well enough to be able to build the whole product, but the more you know, the better it is.
If you're a heads down no-nonsense engineer, you're not going to build Fallingwater.
I never quite understood why the typical tech company product organization is so obsessed with finding the perfect graphic designer, instead of the perfect engineer.
Stick with me for a sec, I feel like I’ll draw a lot of heat here.
Good designers absolutely do good design work, and that’s wonderful! It just hardly ever, or does not at all, translate to how the product is actually built. At worst it leads to implementations being ad-hoc literal translation of high fidelity screenshots (of the perfect design!) that becomes impossible to maintain.
You could say the designer and some group of engineers are supposed to work together to build a “design system” and, well it might work, if you have good leadership. Not-so-good leadership will at worst not let engineers do this because it’s “not delivering value to the user!”, and decent leadership will let this happen once but ongoing maintenance will never happen.
So. What was the point of hiring the designer again? Having worked with companies, they do try to hire this “engineer who designs” all the time, and they constantly say things like “I know they’re a unicorn but maybe we’ll get lucky” but I think they would be surprised what a group of seasoned engineers in their field would be able to do design wise. Most web content does the same thing the same way nowadays anyway, you’re actually better suited copying UX that people will be familiar with :p