You own your career

I heard a comment recently that surprised me. It was along the lines of:

"We need people who can span the full stack; real software engineers, not just software developers"

I've also heard another similar sentiment in the past:

"As you progress in your career and climb the ladder, you inevitably become more of a generalist"

Let's be clear:

  • You don't need to be a generalist to be a "software engineer".
  • You don't need to be a generalist to advance in your career.
  • You don't need to be a generalist if you don't want to be.

It's up to you to craft your career the way you want.

There are many unique types of experience which are all equally valid:

Generalist

Graphic showing the generalist experience

Of course if you want to be a generalist you can be. You may want to be a generalist if you prefer breadth over depth. Knowing a little bit about a lot of topics can allow you to be more resourceful and flexible. You may enjoy being comfortable in many different technologies or frameworks.

Specialist

Graphic showing the generalist experience

However, if you find a topic that's super interesting, lucrative, fulfilling, or a combination of the above, then you can specialize in that topic.

Specializing allows you to develop mastery of a topic. Experts in particular fields can be in high demand and sought after by organizations.

The commonly cited downside to specialization is that your experience becomes less transferable.

T-Shaped

Some people like to combine the above experience shapes into something sometimes called a "T-Shaped" career. A person with a T-Shaped skill set has shallow breadth across many subjects, but has one specialization where they have deep knowledge.

Graphic showing the generalist experience

Multiple Spokes

A variation of the "T-Shaped" skill set is the "Multiple Spokes" skill set, which is essentially "T-Shaped" but with multiple "spokes". In this skill set you have solid generalist knowledge, and multiple specializations.

Graphic showing the generalist experience

Full depth / breadth

Just for the sake of completeness, there is the theoretical full depth / breadth skill set, where you have full mastery of every topic in your field:

Graphic showing the generalist experience

However, this skill set is essentially impossible to achieve. There is not enough time in the day to become a specialist in every topic in your field.

You wouldn't be able to invest the same amount of time over someone who chose to specialize in just one topic.

Team skill sets

It's your manager's job to understand your skill set and combine it with other teammates' to form a high performance team.

Your manager needs to understand the problem space and what skills it needs, and then build the ideal team by mixing and matching skill sets. Some projects will need more full stack developers. Some projects will need specalists in specific domains. And some projects need both generalists and specalists. Graphic showing the generalist experience

You own your career

Don't let anyone tell you that you need to be a generalist to be a software engineer.

There are electrical engineers who specialize in high-voltage applications, or in digital electronics, or in instrumentation, etc. and nobody says they're not electrical engineers just because they chose to specalize.

Don't let anyone tell you that you need to be a generalist to advance your career.

There are many specialists who get paid a lot of money. SRE(s), AI engineers, compiler engineers, etc. are all examples of highly specialized software engineers with significant earning potential.

It's up to you to shape your skill set and your career into one that is either:

  • Interesting
  • Lucrative
  • Fulfilling

Or some combination of the above, based off your own preferences and priorities.

In short: You own your own career.

Written By Ben Lorantfy

Ben is an award-winning software developer specializing in frontend development. He builds delightful user experiences that are fast, accessible, responsive, and maintainable and helps others to do the same. He lives with his partner and dog in Kitchener, Ontario.More About Ben »Follow @benlorantfy on twitter »