The value of the expert generalist

strategy career-development thoughtworks martin-fowler

In our industry, we often see job descriptions demanding years of experience in niche frameworks, pushing us towards ever-narrower specialisation. While deep knowledge is valuable, I have found that the most effective people are those who can bridge different domains.

That is why I enjoyed the recent article, “Expert Generalists,” by Unmesh Joshi, Gitanjali Venkatraman, and Martin Fowler of Thoughtworks. They give a name and a framework to a concept I have long admired, arguing that being an “expert generalist” is a skill we should actively cultivate.

The authors identify several traits that define an expert generalist, including deep curiosity, collaborativeness, and a sharp customer focus. However, the most important trait is a preference for fundamental knowledge over transient, tool-specific trivia. They explain this concept as follows:

The vertical stroke of a skill set represents broader, long-lasting domains, not specific tools or frameworks. An expert generalist therefore pursues depth in distributed-data systems—partitioning and replication strategies, fault-tolerance mechanisms, consistency models, and consensus algorithms—instead of mastering only Databricks notebooks.

This directly addresses a core issue in our field: we often mistake tool proficiency for fundamental competence. The authors make a good point that this is not a new problem. In the 90s, the focus was on mastering tools like Rational Rose instead of the principles of Object-Oriented Programming. Today, we see the same pattern with certifications for specific cloud platforms.

This focus on tools makes our skills brittle and creates organisational silos. As the article states, these labels can become a significant problem:

The labels become an organisational anti-pattern—turning flow into a series of hand-offs when it should be a cross-functional sprint.

To counter this, the authors even propose practical workshops, like building miniature versions of Kafka or Kubernetes, to teach these core concepts directly.

In the end, an expert generalist who focuses on fundamentals can move between technologies with confidence, because they understand that the core challenges of replication, consistency, and fault tolerance remain the same. The benefit is not just personal growth; it creates better teams and partnerships.

…engineers who have a good grasp of the fundamentals are able to partner well with multiple product and platform teams, without needing to have product specific training for each product.

The full article offers much more detail and is well worth the read.


View this page on GitHub.