For the longest time I've been able to identify three different types of software engineers, but one of them I couldn't categorize for the life of me.
There's the specialist - that 10x engineer we all know too well.
This person seems to know the answer to any problem or question, able to move faster than anyone else on the team.
There's the generalist - the person that can write in any language or framework
They seem to be like sponges. Always learning, trying to build with a variety of tools to maintain a diverse set of skills.
After hours of searching, asking peers to help me put a label on this final category of engineers, I found it.
The T-Shaped Engineer
It's amazing that a single letter can capture this so clearly.
These engineers strike a balance between specialists and generalists, taking the best of both worlds.
Specialists tend to be too set in their ways to try new things, tending to focus all their learning in a single vertical.
Generalists never spend enough time honing their craft to become masters, spreading their knowledge out horizontally.
T-shaped engineers know when to draw the line between going too vertical, and too horizontal.
They have enough tools in their belt to be flexible, letting them jump between teams if need be in order to deliver as needed.
They also have enough mastery to really go deep on a particular set of topics, having spent hundreds of hours putting in the work.
T-shaped learners pop up in all walks of life. Do you know any around you?