Article thumbnail

Expert Generalists / by Martin Fowler et al, July 2025

The Full-Stack Dilemma: Expert or Generalist?

As a full-stack developer, I constantly wrestle with the tension between breadth and depth. On one hand, I love being able to own a feature from the database to the UI. On the other, it’s easy to feel the «rust» on skills I haven’t used in a few months and the pressure of specialists who seem to have deeper, more cutting-edge knowledge in their domain.

In my personal experience:

I always keep forgetting which language passes objects to functions by reference and which by value. (PHP, I’m watching you!)

I often get bored if I have to stay on the same tasks for a long time, I prefer to switch different tasks on a regular basis, eg, jump from fronend to backend, and so on.

I have to restore my knowledge about the features of some specific css solutions (like nodes centering or gradient rule sintax) after a week of debugging a tricky API response.

And, probably, it’s not just me that’s not right.

I calmed down a bit, when I saw this.

«Expert Generalists», Martin Fowler et al, July 2025.

In the article, Fowler argues the most valuable place to be isn’t a pure specialist OR a shallow generalist, but someone who cultivates a broad base of knowledge with a few key areas of deep expertise.

It’s not about knowing everything about everything. It’s about the usage of the experience to see the relationships and make the best architectural decisions, the choice of several areas in which you can really go deeper, while maintaining «practical knowledge» in everything else, understanding that context switching and continuous learning are not weaknesses, but the foundation of your role.

The struggle isn’t a sign of failure; it’s the natural state of being a generalist who cares about doing great work.

How do my fellow generalists, full-stack devs, and «T-shaped» people manage this? How do you choose what to go deep on, and how do you keep the rust off?

References

The article: Expert Generalists / by Martin Fowler et al, July 2025.

The author: Martin Fowler is a British software developer, author and international public speaker on software development, specialising in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.