A CAP Theorem for Career Development
A lot of modern tech companies use essentially the same career ladder + salary banding strategy. This is ripe for disruption and is almost single-handedly responsible for bad turnover and job hopping. Let me explain.
The title of the post is a reference to the famous CAP theorem of formal database analysis, but I could reference any type of impossibility theorem (such as Arrow’s theorem or Godel’s incompleteness theorems). Impossibility theorems work by stating a set of desirable criteria within a context where sacrificing any of them seems contrary to common sense. Then the theorem proceeds to explain why the criteria cannot all be satisfied simultaneously, thus forcing trade offs and reexamination of common sense. In the CAP theorem the subject is a set of desirable robustness and correctness properties of databases. In Arrow’s theorem the subject is fairness in voting procedures. You get the idea.
In this post I am borrowing the acronym CAP because it maps conveniently to three desirable criteria that form a basis of common sense in designing a compensation, promotion and career growth framework for an organization.
[C]areer Leveling (a.k.a. career ladders)
[A]ligned Salaries (a.k.a. salary bands)
[P]ay for Performance (a.k.a. meritocracy)
Many, many, many, many, many companies describe an engineering career growth framework that relies on these three core components. The specific description of levels may vary (hence why levels.fyi is so popular); the specific mapping to salary may vary (hence why h1bdata.info and other sources are so popular); and the degree of claimed meritocracy may vary (hence why gossip on Blind is so popular). But the core structure is super duper ubiquitous.
Like many other tech industry cargo-cult inventions (SRE philosophy, incident commanders, 20% time, proto-as-a-database) this career framework was largely copy/pasted from early 2000s Google. This tells us two things: (a) it works well in at least one company that has an unrealistic ability to throw money at dysfunction, and (b) nobody who continues to copy this model has actually thought critically about its logical implications or appropriateness. So let’s do that now.
The CAP Theorem for Career Development simply says this: looking at our list of three desirable criteria, you can simultaneously satisfy two but never all three. Let’s consider each subset of two properties and consider why it categorically rules out the third.
(P, A). You pay meritocratically and you maintain aligned pay bands. This necessitates that people within the same pay band must have the same level of performance (otherwise, you aren’t paying meritocratically as assumed). People within the same pay band therefore do not necessarily share the same title or level in a career ladder. (This would only happen in the magic world where everyone in the same position of the ladder happens to have exactly the same productivity). In particular if performance varies for an employee, then their whole pay band varies (not just a few percentage points of their annual raise). You don’t stay in a salary band in (P, A) unless your productivity stays at that band’s level. It would be the norm for people to go up and down in salary bands often, even while career ladder positions remain durable as a mark of tenure, experience or responsibility set. In this scenario, you could have a new grad earning more money than a staff engineer, so you absolutely don’t have “career leveling” in any meaningful sense connected to standard career ladders.
(P, C). You pay meritocratically and you group employees by a durable level or title within a career ladder. This necessitates that people within the same level are not paid the same. When their performance is different, their pay is different. Just like with (P, A), people from a lower level can be paid more than people at a higher level. In this case, since you aren’t grouping employees into salary bands according to productivity, it means you cannot have any coherent concept of salary bands. If employees are grouped by career level, but paid by performance, then you don’t have salary bands.
(A, C) - You ensure career development maps to levels within a career ladder and you ensure pay bands enforce alignment of salary for each level. This necessitates that you do not pay for performance. High performers are unfairly kept aligned to a salary band for their level despite their impact. If you group employees by career ladder levels and you enforce a banding structure on those levels, then you do not pay meritocratically.
Here is a diagram of the situation with a summary of each segment of the trade off space you can choose from.
Now, much like the database CAP theorem, the career development CAP theorem also has a few exceptions. Primarily, you can sort of satisfy all three desirable criteria for either small subsets of employees or over short periods of time. Either option is typically achieved by first starting from the (A, C) sector of the trade off space and then adding in performance-based incentives like bonuses. However, outside the scope of a small set of individuals or a small time window, performance-based incentives cannot solve the CAP impossibility issue, because if it applies broadly across all employees or across time, it just means you have either violated salary alignment within a level or you have violated level alignment within a salary band. This is why you often see larger tech company bonuses converge to a fixed number or percentage based on your level in the career ladder - meaning the bonus no longer functions as a performance incentive at all.
Another exception can come in the form of short term career ladder inflation. You can fan out more levels and create finer control over targeted salary changes within the new levels. This is similar to inflation in monetary policy. It can alleviate some short term issues, but ultimately leads to other long term issues that land you back in the jaws of the impossibility dilemma. If you keep inflating titles or creating subdivided levels in the middle layers of a career ladder system, then in the long run the huge number of levels just serves as a direct correspondence with pay for performance. In the limit where you have a distinct level for almost every employee, all you have done is removed the concept of levels entirely, and if there is any remaining salary banding structure it would have to apply to employees grouped by performance (and hence not grouped by level) or else the banding would act as a de facto career ladder leveling that fails to include pay for performance.
This is what happens when companies try to use title inflation or frequent promotions to solve the impossibility theorem. Think of it this way: suppose you have a high performing employee but your company is in the (A, C) trade off space. You have aligned salary bands that are enforced according to career ladder levels. You really want to pay your high performer more money to recognize their efforts and incentivize them to stay at your company. But you can’t do it because paying them more would disrupt the requirement of salary alignment at their level’s salary band. So instead you try to do a rush job on a promotion thinking if they are promoted then it’s OK to increase their pay in a manner commensurate with their actual performance.
You see this all the time. Desperate managers handcuffed by salary banding policies want to do the best they can, so even if an employee isn’t ready for the actual growth and development of a new role within the career ladder, they will still press hard for the promotion as a way to temporarily appear to satisfy all three of the impossibility constraints. But the nasty truth is they are not beating the impossibility theorem. They are simply eroding the meaning of the career ladder and creating “promotion debt” that has to be painfully paid down eventually.
Now, if that organization wants to shift into the (P, A) trade off space, that’s totally fine, but usually the top down opinion is to strictly avoid any real notion of pay for performance. What happens is that in the bottom up direction managers are pressured to create an unrealistic expectation of quick promotions as rewards for performance. But they can play this card only so many times before the top down pressure to avoid pay meritocracy or title inflation starts to prevent this from happening. You end up with a bunch of angry employees saying, “But Alice got promoted for the same job performance last year. How am I less deserving?”
Employers usually take a hard line to avoid approaching this trap in the first place by simply not paying nor promoting meritocratically at all. For most tech companies you get exactly one opportunity when your pay will be a function of your competitive value (your productivity) - your initial job offer. Better negotiate high on the way in because after that, it will be scheduled raises and tenure-based leveling. The tech industry has eerily come full-circle towards the stuffy bureaucracies of the 50s - 80s that it was originally a counter-culture innovation response to.
This particular failure mode is a significant cause of job hopper behavior in our industry. Entitled employers want to take the attitude that job hoppers are disloyal or overly self-serving - they only seek quick ways to get a bigger salary without earning it. No, no, no. It’s the opposite. Companies actively create the job hopper problem for themselves (and the subsequent problem of constantly having to pay bigger salaries to acquire new talent, thus shifting salary bands). By not actually paying for performance, these companies create the conditions for the promotion-as-stopgap-meritocracy trap. Employees realize there is a clear ceiling to how much they can rapidly rise levels. If meritocratic pay was available, they wouldn’t mind being patient about levels from a career growth point of view. Promotion is just the only salary-band-compliant means to be paid for performance rather than paid on a tenure schedule. So they figure once they hit the ceiling on rapid promotions at a given company (usually around the 2-4 year mark), they’ll just move on and do it somewhere else.
Job hopping is nothing more than an employee stitching together self-made meritocracy across multiple companies since no single company will treat them fairly by paying meritocratically.
I’ve given you the theorem. My conjecture is that this broken (A, C)-dominated model of valuing employees via a matrix framework of salary bands and career leveling is wide open for disruption by forward-thinking start-ups. Start-ups often lament the big salaries paid by top tech companies, but there are quite a few employees who would be happy with the equity compensation risk and lower starting pay if only they were treated more fairly. Instead of hearing tone-deaf, paternalistic bureaucrats dole out 4% raises independent of employee impact and tell them they should be happy with it, these employees would thrive on the knowledge that as they produce more impact, they really will receive greater rewards. I believe that advertising cultural values putting companies in the (P, A) or (P, C) trade off spaces will be a big differentiator.
What’s more, it’s likely to be a durable differentiator that existing megacorps can’t easily copy or ingest via acquisition since their reliance on the (A, C) meritocracy lip service model will make career growth culture transitions extremely fragile.
If you are considering publishing a trendy blog post about your shiny new career development framework at your hip start-up, don’t copy the standard model!