Optimal strategy is to be both. I’ve heard it called being a “T-shaped” engineer. You have both breadth of knowledge across several areas as well as specific knowledge in one area.
Aug 17, 2023·edited Aug 17, 2023Liked by Ryan Peterman
I work as IT Manager of a call center. My portfolio is related to programming. But due to position I have to be able to attend other majors also like networks and systems engineers. The company takes the view (and rightly so) that a programmer knows more about other areas of IT than other areas know about programming. So in a mixed environment the programmer is preferable for such a position. My point is that in small companies you have to be both. But when you have a large number of mixed staff to manage then you have to adopt manager practices as well. So in this case we are talking about 3D T-shaped and believe me it is exhausting!
Nice post and love the way you said here "Since there isn’t a clear winner, I’d pick based on the work you enjoy and what your strengths are." It's after all you as an individual developer need to decide what works for you and what doesn't in the long term.
Thanks Ryan - I would love to hear your thoughts on career advancement as an early-career generalist software engineer. Are there specific roles you think might fit better for a generalist, and do you think it is still important to pick one key area of focus for developing deep skills?
The generalist vs specialist distinction doesn't matter much until you're very senior (e.g. Senior Staff+). There are more important things to focus on early like:
Great post exposing the tradeoffs of both strategies. I'd like to propose a third option: The Synergist Engineer. Develop deep expertise on a handful of skills that you combine to create value in an way.
> I wouldn’t stress much about this. Specialist and generalist behaviors aren’t mutually exclusive. I’ve worked with strong engineers that exhibit both. Once you identify as one, you aren’t pigeonholed into it.
Flexibility is a crucial skill in a fast pace environment such as tech.
Another benefit to being a strong generalist I agree. Combining skills can have exponential benefit since skills can complement each other. Thank you for reading Gio
I remember people saying that you should focus on one skill rather than multiple skills because it's better to be great at something than be good at everything. They say it might be easier to be promoted within a company or finding a job would be easier. Don't know what to think of this and would like for your opinion.
Even if you are sure you want to be a specialist, you'll still need to decide what domain you'd like to specialize in (e.g. AI, distributed systems, the list goes on). The good news is that you don't need to decide until the senior level (IC5) and onward. You can use that time to do your research and get experience in different domains to see which one you prefer to specialize in.
Optimal strategy is to be both. I’ve heard it called being a “T-shaped” engineer. You have both breadth of knowledge across several areas as well as specific knowledge in one area.
Yeah that’s a good point. It must be this way since there are no specialists who weren’t first generalists.
Also software engineering requires a lot of misc skills to be effective so I bet most specialists are “T-shaped” in practice.
I work as IT Manager of a call center. My portfolio is related to programming. But due to position I have to be able to attend other majors also like networks and systems engineers. The company takes the view (and rightly so) that a programmer knows more about other areas of IT than other areas know about programming. So in a mixed environment the programmer is preferable for such a position. My point is that in small companies you have to be both. But when you have a large number of mixed staff to manage then you have to adopt manager practices as well. So in this case we are talking about 3D T-shaped and believe me it is exhausting!
Nice post and love the way you said here "Since there isn’t a clear winner, I’d pick based on the work you enjoy and what your strengths are." It's after all you as an individual developer need to decide what works for you and what doesn't in the long term.
Thank you Ankur 🙏
Thanks Ryan - I would love to hear your thoughts on career advancement as an early-career generalist software engineer. Are there specific roles you think might fit better for a generalist, and do you think it is still important to pick one key area of focus for developing deep skills?
The generalist vs specialist distinction doesn't matter much until you're very senior (e.g. Senior Staff+). There are more important things to focus on early like:
1. Quality/skill of your peers
2. Access to mentorship
3. Your personal interest in the work
Hope this is helpful, thanks for reading :)
Great post exposing the tradeoffs of both strategies. I'd like to propose a third option: The Synergist Engineer. Develop deep expertise on a handful of skills that you combine to create value in an way.
I wrote more about it here: https://mokagio.substack.com/p/the-synergist-engineer
I also like your conclusion:
> I wouldn’t stress much about this. Specialist and generalist behaviors aren’t mutually exclusive. I’ve worked with strong engineers that exhibit both. Once you identify as one, you aren’t pigeonholed into it.
Flexibility is a crucial skill in a fast pace environment such as tech.
Another benefit to being a strong generalist I agree. Combining skills can have exponential benefit since skills can complement each other. Thank you for reading Gio
I remember people saying that you should focus on one skill rather than multiple skills because it's better to be great at something than be good at everything. They say it might be easier to be promoted within a company or finding a job would be easier. Don't know what to think of this and would like for your opinion.
Thanks for reading Ivan :)
I’d say it depends what skill we’re talking about and where the person is in their career. I could see a case for both sides.
Hi Ryan, great post! I am 100% sure i want to be a specialist although I am still early in my career journey.
What are the next best steps to achieve this please? Thanks
Thanks for reading Susanna!
Even if you are sure you want to be a specialist, you'll still need to decide what domain you'd like to specialize in (e.g. AI, distributed systems, the list goes on). The good news is that you don't need to decide until the senior level (IC5) and onward. You can use that time to do your research and get experience in different domains to see which one you prefer to specialize in.
Ah amazing thank you! Got it so will spend as much time as possible experimenting and researching different domains! Thanks!!
Happy to help Susanna! :)
In practice, this thinking matters most when you’re picking up new work or thinking about joining a new team