I'm an E5 iOS engineer at a Big Tech company. I'm struggling to understand what leadership means. A Director told me Leadership means making sure the project is successful no matter what happens. As a result, I often end up doing other people's jobs for them (e.g., when a backend engineer struggles to get their piece working, I often hand-held them and have even created backend PRs to unblock some projects even though I'm an iOS engineer). However, a mentor told me that E6's don't do the work themselves but delegate it to others to scale themselves. If this is true, then what does an E6 do when working with engineers who are either unwilling or unable to complete their deliverables in the expected timeframe and quality? This becomes even more challenging when working cross-functionally with engineers who are not on my team. Also, how do you lead when you're not the DRI (Directly Responsible Individual) / tech lead for a project (e.g., when the tech lead is an E6 on another team, but is not setting up the team for success by refusing to communicate requirements clearly)?
First I recommend going through this discussion around how to deal with low-performing teammates (this one's specifically about code quality), also from a senior engineer striving to be a strong tech lead (they're at Meta).
I have a lot of thoughts here, so I'll split up my response into multiple parts:
A Director told me Leadership means making sure the project is successful no matter what happens.
This is more or less correct. This is what I have been told many times across Meta and Robinhood working on senior and staff scope.
What separates the decent engineers from the incredible engineers is their ability to come up with more graceful solutions than "Fine, I'll do it all myself", which I'll cover more later.
If this is true, then what does an E6 do when working with engineers who are either unwilling or unable to complete their deliverables in the expected timeframe and quality?
Of course, it's possible that all of the above fail, and you need to do it yourself. But what's important is that you tried the more sophisticated solutions first.
Also, how do you lead when you're not the DRI (Directly Responsible Individual) / tech lead for a project (e.g., when the tech lead is an E6 on another team, but is not setting up the team for success by refusing to communicate requirements clearly)?
I recommend this discussion on how to improve a less-than-friendly relationship with a core XFN partner.