I’m a fan of the going back and forth approach, though I don’t think I’ve worked with anyone else whose done it. I’ve gone IC → Manager → IC → Manager → IC, based on organizational needs. On the other hand some people are just a really great fit for management and should specialize in it. How strong you need to keep your technical skills depends a lot on your style of management, your specific strengths, and whether your org uses a “tech lead” system.
While advancement does dry up in many places if you’re not willing to move into management, that wasn’t my experience at Google. I knew some very influential (and well-compensated) non-managers. Though even if you stay on the technical track more of your impact still comes via other people: designing things, giving feedback on other people’s designs, reviewing code, teaching other people how to do things, etc.
I’m a fan of the going back and forth approach, though I don’t think I’ve worked with anyone else whose done it. I’ve gone IC → Manager → IC → Manager → IC, based on organizational needs. On the other hand some people are just a really great fit for management and should specialize in it. How strong you need to keep your technical skills depends a lot on your style of management, your specific strengths, and whether your org uses a “tech lead” system.
While advancement does dry up in many places if you’re not willing to move into management, that wasn’t my experience at Google. I knew some very influential (and well-compensated) non-managers. Though even if you stay on the technical track more of your impact still comes via other people: designing things, giving feedback on other people’s designs, reviewing code, teaching other people how to do things, etc.
I know a guy[1] who’s done the same Manager ↔ IC transition. Google as well. I do really respect this part of Google’s culture.
My dear old Dad