I have been working at a large bank for a few years. Although some coding is needed, the bulk majority of time is spent on server config changes, releasing code to production, asking other people for approvals, auth roles, and of course tons of meetings with the end user to find out what they need.
I guess when I was a junior engineer, I would spend more time looking at code, though I used to work for small companies. So it is hard for me to judge if the extra time spent coding, was because of me being a junior or because it was a small company.
The kicker, is when we interview devs, most of the interview is just about coding. Very little of it is about the stuff I listed…
The position to try to achieve these days is of principal or staff engineer. In this role I get to code all day (mostly exploring new and upcoming technologies that might benefit the company) AND lend my advice for architectural solutions to various groups. In my opinion it’s the best of both worlds, with out having to be pushed into a management or lead position (which always “leads” to more project management than software engineering).
So, you don’t actually do real work and have to live with the technologies that are chosen on your recommendation? Sound like a sweet deal. The senior engineers that have to actually make software that is sold and clean up the mess will hate your guts though.
I started out where everyone else did and worked my way up so I’ve “been in the trenches”. After doing this for 20 years and shipping multiple consumer and internal products I’ve seen it all and know what can make or break a project and what works and doesn’t when introducing or using a new technology to a dev group. Also, I definitely don’t throw it over the fence, it’s a team effort and we all agree on what sounds like the best approach. Along with code reviews, part of the coding I discussed is sitting down and creating a skeleton of tests and an initial architecture that others can build off of and give me feedback on. If someone is having trouble implementing something I sit down with them and work through it. It’s also about trust, people also trust me and know that in general I know what I’m talking about. The thing is most people would read my resume (or even this quick summary) and say I’d make a great development manager. But the problem with being pigeon holed into being a manager just because your a great dev is that it doesn’t reflect what developers are good at, making software. More and more companies are realizing this when they shove their best dev engineers into the position of a manger and it crushes their souls, and makes them leave. So they are creating these principal or staff positions which at most companies are laterally equivalent to a director of software engineering without the people/staff managment. There’s a great podcast episode on this by Stephen Dubner who wrote the book Freakonomics https://freakonomics.com/podcast/why-are-there-so-many-bad-bosses/
The crucial point to me, which I could not read out of your first post, nor will I implicitly assume it as a given, is that there still is a feedback loop from product development to the staff/principal level.
I’ve been burned by a code base that was created by a principal engineer, who tossed it over for maintenance and moved on to greener pastures (still in the company though). It is more to blame on the organization, than on the engineer, but still such an experience leaves a slightly bitter taste.