Today in Code.Lead.Succeed Newsletter you’ll learn:
👉 A new model of defining seniority
👉 How it applies to specialist and generalist
👉 How you can use it to progress your career
It all started with my dissatisfaction with a T-shaped engineer. It’s semi-accurate for specialists and doesn’t fit those with general knowledge. I feel a good model should cover both.
Last week, I read a great book, “Immunity to Change”, which, in the beginning, described a knowledge model that was new to me. It’s based on the complexity you can attach to a given topic.
I see it as playing Doom at 320x200 pixels and having an immersive experience. It’s the junior level. I enjoy the game even if I do not see all the details. Fast forward to today and playing in 4k+ with photorealistic detail. It’s the same thrill, but there is a vast difference in what I can see on the screen.
Junior vs. Senior Engineer
Let’s jump straight into an example. We’ll use three skills: code (Blue), software design (Red) and people (Green).
For a Junior, each skill will be level 1:
For a mid, they all are at level 2 and Senior at level 3. We assume it’s a balanced Engineer growing equally in all aspects simultaneously:
What I discovered is that the common models needed more depth.
It becomes interesting if you look at the difference in the surface area of knowledge. Junior’s is 3, whereas Senior’s is 9. Senior’s surface area of expertise is three times larger than Junior’s.
Looking at the surface area also allows us to describe the T model of expertise. If 9 means seniority, we can look at an example of a developer who’s an expert in code and system design but lacks some people skills.
They are just as senior as their balanced colleagues, just in a different way.
Specialists and generalists
The last Engineer can be considered a specialist with strong technical skills. We can ramp it up even more and meet someone with incredible talent in writing code in their favourite language.
They are certainly specialists.
For generalists, we extend the list of skills horizontally. They will still be decent at code and people skills but also know project management, leadership and domain.
They are just as Senior as the Specialist is. Their surface area of knowledge is big enough to warrant their position.
Learning for Surface
How do I increase the surface? As I mentioned in the preface to the article - it’s all about increasing the pixel density of your skills.
I heard an anecdote that Eskimos have 8 words for snow. They use it for building their houses and various other purposes. They are snow experts. As an engineer coming from a novice, you increase the details you recognise doing the same task.
Text file
JavaScript file
Express backend file
Express file with queries to a database
Express file with queried to database using Active Record pattern
I shouldn't use JavaScript for the Backend 🙃 and Active Record for databases
As you learn, you see more details, and it takes you less time to notice the small details.
The caveat is in the law of diminishing returns. It’s easy to split a pizza, but not with atoms. The higher the complexity you can see, the more time and effort it will take you to reach another level.
It’s the Specialist path. You invest in discovering details others can’t see; over time, you see more than anybody else.
For Generalists, diminishing returns means adding a narrow bar to the graph with each additional. I’ve learned 15 programming languages to at least mid-level, and I can say that learning 16th won’t change much in the value of my skill set now.
Designing career for Surface
1. Identify your expert skills
It’s usually what you like to do the most. It’s where you’ll push through the diminishing returns and become the go-to person.
As a Software Engineer, programming and system design will be your primary skills. Secondary are communication, problem-solving and technical leadership.
2. Balance out with the secondary skills
Learning them increases your surface level faster than sticking to technology when you reach a certain point of diminishing returns. After you get them to a reasonable level, switch back to your expert skills.
As a generalist, ensure the next skill you’re learning adds long-term value to your skill set. Competitive Knitting can teach you about consistency and winning but may not add the most to your knowledge surface.
3. Plan, test and iterate
Every quarter, check where you are, what skills are serving you the best and what can be the best way of increasing your surface of knowledge.
Keep a long-term vision of yourself as your North Star metric and align it with your current role.
The equaliser of skills
Looking at the boxes earlier, you can spot them as an audio equaliser. You dial up specific frequencies louder than others. Each song will sound better with different EQ settings.
Frequencies are skills, your life is the song, and the goal is to get the right bars green.
Incredible explanation of the concept backed by insightful graphics.
It helped me visualize what I've been thinking for a while about seniority.