> Ideally, I want engineers focused on building, not taking discovery meetings with potential customers, messing around in Figma, projecting financials, writing ads, or any other role.
Maybe engineers shouldn't be bothering writing ads, or projecting financials
But if you want good builders, they should absolutely be in contact with the clients and building mockups (which you describe as messing around in Figma)
Assembly line style development where devs just churn through endless tickets is fine for junior devs but cannot be what your senior and principal devs are doing.
There are many different engineers with many different interests. Some senior engineers should be talking to clients, but some should in no way be allowed to talk to them. Some senior engineers get there by knowing the client. Some get there by make the code "better". Some get there by creating tools everyone else uses. Some get there by digging into the really hard problems. Some get there by mentoring others. Some get there by figuring out the big picture and building an architecture that works better. Some get there by figuring out priorities and getting the real important stuff done. Some get there by writing ads, projecting financials, messing with Figma. I'm sure there is more that I can't think of now.
There is nothing wrong with anything on the above list. Depending on your situation some will be more important than others. It is not possible for one person to do everything in the above list well, though often you need to do more than one. Some of them are better done by departments - but if an engineer is interested does it matter (sometimes it does, sometimes it doesn't). Your junior engineers should be thinking about what they like and what is needed - then positioning themselves to their future senior role.
The only really bad thing is when a mid level engineer is so good at something that you don't realize how important they are and so don't promote them to senior much less principal. (bad because when they leave that you didn't promote them is a sign to others you don't care about that and so the juniors didn't study it to become a backup - if you really don't care then you should be talking to that person about their waste of time side activity)
If all you are interested in doing is churning out code then that's fine, but we shouldn't consider be promoting you into higher and higher roles
Higher roles implies greater responsibilities, not just to the product but also to your team and your company. That means you cannot just be an assembly line code slinger anymore. You have to talk to people, mentor people, figure out what the higher level company goals are, figure out what the product needs to meet those goals, etc
None of that just happens without communication skills
Maybe engineers shouldn't be bothering writing ads, or projecting financials
But if you want good builders, they should absolutely be in contact with the clients and building mockups (which you describe as messing around in Figma)
Assembly line style development where devs just churn through endless tickets is fine for junior devs but cannot be what your senior and principal devs are doing.