Profile Picture

A Taxonomy of Software Engineering Taxonomies

August 22nd, 2021


Engineering ability can be boiled down into a single “level”. Levels are often based on both current ability and track record, and build on each other—a L4 engineer is expected to fulfill not only L4 expectations, but also those of L1-3. Levels are often used by management for titling and compensation bands. Levels can be either discrete or continuous, though in either case, despite the window dressing, they are often somewhat arbitrary.

Dungeons and Dragons

Engineering talent can be broken into several “skills”, each of which has an independent “level”—reminiscent of D&D or RPG leveling systems. Is this convergent evolution or because engineering leaders are turbo-nerds?

For example, an engineer might be an excellent debugger but mediocre architect and communicator. Like laddered systems, each skill level tends to be arbitrary. On the other hand, attempting to break down engineering ability into facets is probably a net win.


Every engineer has a unique set of skills—discrete competencies with a boolean gate. A competency might be fulfilled when an engineer has a few examples of her demonstrating those competencies. Some competencies are harder to achieve than others, which is what makes a senior engineer.

This has similarities to the D&D model above—competencies are often related in intent but different in difficulty, and that’s just a skill level with a different name.


Engineering traits are like personality traits—skills typically have opposites which can’t both be embodied in the same engineer. For example, an engineer who can “ship fast” is inherently less able to “not break things.” Therefore, engineering skill is not objective but subjective to the eye of the beholder, usually the engineer’s manager.

This theory of engineering ability is kindest, since it suggests that an engineer’s failure to thrive is a matter of fit, not skill. If you had only worked at Facebook instead of Uber, maybe you wouldn’t have been fired!


Engineering ability is like pornography: undefinable, but I know it when I see it. Any attempt to make it legible is doomed to arbitrariness and incompleteness. Of course, this is a self-fulfilling prophecy: companies without a philosophy of engineering skill doom themselves to arbitrary and unfair evaluations.

Enjoyed this post? Follow me on Twitter for more content like this. Or, subscribe to my email newsletter to get new articles delivered straight to your inbox!

Related Posts

Seamless Migration Squashing for EF Core 6 Migration Bundles
Visualizing and Deleting Entity Hierarchies in EF Core
Hello, Vesta
Scroll to top