As a Staff+ engineer leading multi-team projects, when do you code?
A coworker asked me this question and I thought my answer could be helpful to others struggling with the same ambiguity (though biased to the Spotify environment). When you’re leading multi-team projects as more of an architect, is the only way to code to do “snacking” (i.e., low-impact, low-effort work that could be done by less experienced engineers)?
The answers here depend on the type of staff engineer you want to be; refer to the archetypes.
If you’re more of a technologist/teacher, you may want to be closer to teams and not lead large company objectives. These Staff+ engineers usually have home teams/squads and focus on the execution work of a particular team (while staying aware of and contributing to resolving cross-team concerns in their area). If you’re in this situation and are stuck leading the cross-team effort, you’ll need someone like a very technical engineering manager (EM) to fill the gaps of ensuring the correctness of the integration of the work from multiple squads. That can buy you more coding time without jeopardizing the project.
If you’re more of the business partner or strategist, then you fight fires when they arise. The heuristic I use is that I can either fix an issue myself or “put it into the machine” (i.e., have a squad(s) put it into an upcoming sprint, if it won’t derail their other high priority efforts). Often, I’ll just fix things myself though since I don’t want to be delayed by weeks waiting for a squad. That’s a good way to use your coding skills, though the work might not be large or fun, but will have purpose and impact.
If you’re more of a pioneer, then you could use your down time to investigate different technologies or incubate ideas you think will be valuable to your business. You may still get pulled in to fight fires though if you’re leading a large initiative. If you find yourself not having free time to incubate ideas, then that type of innovation will be done outside of work (not great for long term sustainability) or in between large projects.
If you find yourself horribly unhappy with the balance of coding vs leadership, you can always get the teams to a major milestone then transition the project to a senior+ engineer that would find the next leg of the project a challenge. You’d coach/consult them, but would free yourself up for a new project or coding time.
Your mental health and happiness are vital for sustained impact, and as Staff+ you’re given a lot of trust and freedom — knowing that you have the company’s best interest at heart. Change your environment to find the balance that’s right for you.