15 Comments

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.

Expand full comment
author

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.

Expand full comment
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!

Expand full comment

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.

Expand full comment
author

Thank you Ankur 🙏

Expand full comment
Sep 21, 2023Liked by Ryan Peterman

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?

Expand full comment
author

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 :)

Expand full comment

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.

Expand full comment
author

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

Expand full comment

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.

Expand full comment
author

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.

Expand full comment

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

Expand full comment
author
May 26, 2023·edited May 26, 2023Author

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.

Expand full comment

Ah amazing thank you! Got it so will spend as much time as possible experimenting and researching different domains! Thanks!!

Expand full comment
author

Happy to help Susanna! :)

In practice, this thinking matters most when you’re picking up new work or thinking about joining a new team

Expand full comment