If you like this, I can only recommend Will Larson’s (the author of the blog post) book called “An Elegant Puzzle: Systems of Engineering Management” published by Stripe Press. It a collection of very tactical things of how to think about engineering careers and managing others.
I've been working as a contractor for more than the past 10 years, and I'd say salary banding is one of the primary reasons I've been able to remain employed 100% of the time. A big company will be able to get some portion of the labor it requires within the bands they set out. But the more in demand the skills they're seeking are, the less likely they'll be able to convince people to work for the band rates they've set. When they encounter those situations, their only options are to hire contractors at even more expensive rates, or to not get the work done. There's plenty of reasons why contingent labor might appeal to a company, but hilariously inefficient salary banding practices seems like one of the more common ones to me.
Or you just pay certain distinguished people well outside the typical band (or, equivalently, create a “track of one”, both of which are a version of CP).
Bands are not the problem. Mindless, extremely rigid adherence to bands is the problem.
That would be one approach, but I think most big organisations would presume that it would simply spiral out of control, and the bands will end up achieving nothing. From a management perspective, if you’re trying to resource a team or a project, hiring a contractor at a high contracting rate typically works out to be the path of least resistance.
Good article. But what you say might make sense in CA, but employers outside CA use non-compete agreements to avoid this type of disruption. Eventually, salary bands and performance reviews just becomes an excuse to underpay employees since they don't have to compete for your talent anymore.
I don't really buy your conclusions here. Speaking about Google specifically, the bands exist, but are wide enough that you can have, call it ~40% variance within a level (and actually I think this increases as you go up the ladder, so by staff it's maybe even more), and that's before things like spot bonuses (which granted aren't usually huge but can be nontrivial in aggregate). I guess in some sense you can argue that that is simply a relaxation of A, and that those companies don't have aligned compensation, but I don't think that's true.
There's also the problem that, especially as you move further away from direct P&L, calculating value is really difficult. I work in infrastructure and engineering productivity. When I'm lucky, I can get an engineer-hours-saved metric, but most of the time I can't get that directly, and my work reduces system complexity, which pays off eventually in time saved or outages avoided. Systems that try to sort of directly reward performance fail for a lot of cases where that's fuzzy.
It also, speaking personally, hasn't been a huge issue, and I don't see the slow-growth that the original article talks about. My compensation has been increasing on a linearish trajectory fairly quickly, and that doesn't appear to be slowing down yet. My growth (both career and compensation) is faster than many, though not all, of my peers. I know people who took 2x as long as me to get promoted, and I know people who did it 2x faster (and that's true both from 3->4 and 4->5, we'll see for 6). That doesn't sound particularly tenure based.
Making the time to setup the measuring/monitoring is a bit of a pain but it's worth it. I worked in the same vertical (infra/"DevOps"/engineering productivity) before I shifted to becoming a people manager. Here's some of the things we're setting up now to measure this:
- Using something like https://github.com/ImpactInsights/valuestream to measure number of deploys per week, build times across pull requests, length of time it takes a pull request merged across the entire team, etc.
- If you want to get fancier, setting up simple tracking to measure how much time running "npm install" takes across all engineers on their local machines. This could get logged in something like Datadog/Grafana/whatever graphing solution you want.
- Zoom out even further. Are releases being slowed down by other teams by accident? E.g. we had a feature delayed a week by accident because the marketing team didn't know a feature was finished, in production, but behind a flag waiting for them to write marketing copy. We're currently setting up a way to track "features in production but behind a flag" in Jira better and feed that "lag time" data into our overall deployment picture.
The idea being, for every task you're executing to "improve developer productivity" you should have a hypothesis with about how much time it'll save the team. If you can't get that right away, I'd move on to a task that has a better measure to it and knock that out first. If you completely run out of tasks and measurements, that's when you can take bigger bets on tasks that have more fuzzy measurements next to them.
In my experience the work here never dries up though.
> I'd recommend prioritizing getting those numbers.
I'm also at Google. I know a few L7s/L8s who lead these sorts of engineering productivity teams and organizations. It isn't just that they aren't prioritizing getting precise numbers. It is that the entire industry has very little idea how to measure engineering productivity. This is a stupendously difficult problem and an area of active research.
The metrics you describe here are okay (build times are easy to measure and can be directly valuable) but they really do represent a limited view. They don't capture all sorts of important stuff. What is the measured value of transitioning to a new C++ version? What is the measured value of best practices documentation and training courses?
Measurements are stupendously valuable when they are feasible and meaningful. But there is real work that should be done that is almost impossible to convert to numbers, let alone dollars.
In the long term, is it worth it to participate in performance review theater and career progression games, instead of marketing yourself and getting a nice raise or promotion by switching companies every 3-5 years ?
I know you would stall at some point, but at least it wont feel soul crushing until then.
In FAANG it’s usually very hard to come in at the higher levels (6+). You almost certainly won’t be offered a higher level than what you had at your previous company. If so, it’s almost certainly another FAANG and you have a damn good reason why you should be at a higher level than you currently have.
Even if you managed to get in at a high level it can be very hard to actually operate at a higher level when you’re new at the company. A lot of people fail to ramp up.
Smaller companies don't have as developed an IC track. If they have levels you can advance to, great, but eventually if you want to keep moving up in income you'll have to join a FAANG or switch to an EM track.
To be clear, there are definitely a handful of firms that have levels similar to what can be found in FAANG but not many. Also, I should say "GAFAM" since Netflix doesn't even have levels—but that's not as well known a term.
I agree. Most people are far better off switching every 3 years. I just put in my 2 weeks notice this past week at my current company and I'm getting a massive raise in total compensation. Its not FAANG or necessarily a large company but its proper "big tech".
Employment is at will, and that goes 2 ways. If a company isn't willing to support you in your career long term, there's no reason to support the company long term as an employee.
I work at a large video streaming company. I put in my 2 weeks notice last week. A coworker put theirs in a few weeks before me and another a few days after me.
All of us are frustrated about the company's (lack of) leveling system, poor compensation, and overall lack of leadership on this and many other issues. Many other engineers are too and some more will likely leave over the next couple of months.
A new banding system has been in the works since I started 3 years ago.
Companies need to have this figured out and operate in a clear predictable way to avoid exoduses like what I'm seeing (our engineerinng division has had 5-6 people leave since the start of the year including us 3).
If you're in a leadership or executive role, your priority should be to create a space that allows for individuals to move up and progress in their careers. Let your team - engineers, designers, managers etc - focus on building the product. You need to build a business.
I totally hear you. However, i do not see a clear solution to the conundrum that many non-unicorn, non-VC funded small/midsize companies face:
Your company is profitable but has slow organic growth in revenue/profit (single or low double digits). Everybody has more work on the table than is actually doable. To keep up with demand, you can hire sporadically one person in this department one in that... If you're numbers are good, maybe you can hire in the single digits per year.
Since salaries (especially in the tech sector) are rising much faster per year than your growth or inflation for that matter, you must pay much more to the new hires. This creates a salary gap in your team and leaves also less money for yearly salary adjustments for existing employees. Also since I hire only few per year, i cannot offer a meaningful Management career path, nor can i promote every Dev to a architect or principal. After all, to keep the business running, I need devs that do Dev work.
In the current artificially inflated tech market (thanks to easy money), if I job hop i can increase my pay by 20%. However which normal company is able to regularly increase the salaries of all their employees by that percentage and grow head count? Impossible.
> Your company is profitable but has slow organic growth in revenue/profit (single or low double digits).
> Since salaries (especially in the tech sector) are rising much faster per year than your growth or inflation for that matter, you must pay much more to the new hires.
> In the current artificially inflated tech market (thanks to easy money),
By some accident engineers have offered their time to this business which is unable to put their efforts to good economic use, and hence unable to pay market-competitive salaries. The management at this firm needs to think hard if they really need expensive skills as inputs, and if they do, why are the returns so meager.
Or to put it in other words: perhaps there is a market for better tools that would allow less skilled people (or just less people) to produce the same outputs
That's not a complete rephrasing. It's possible the current designs and processes cannot accommodate more productivity but the relevant market segment is fine. I expect there are multiple contributors to the problem. I'd avoid explaining it all away with a single cause, even one as compelling as "let's figure out how to throw more brains at the problem".
Sure, I have no idea about the specific company cited; but I do think that most of the effort spent by most of software developers in most of the companies is wasted on details that are not manifest to people who don't have direct experience with the job on a daily basis (either as working developers or by people managing them). The farther up and out you go, the easier is it to underappreciated the rabbit hole that software development is, and thus to underestimate the costs. And to, once realizing that, still be baffled at how it is possible that "just doing this little thing was really supposed to cost that much?". Many just don't invest the "right" amount of resources, judging that there is something wrong with all that, that we're either subject to an overinflated salary bubble or something else.
I grant you the point, that you need capable Management
However, your advise is not very actionable, given that the current market is one hot bubble, where investments and valuation is not longer based on market fundamentals, see [1].
Companies growing gross profits more slowly than the tech market comp is growing will shrink tech market headcount in the long-run. It seems entirely inevitable that if someone else has a use for an engineer that allows them to pay $X while your use only allows you to pay $0.85X, and that difference is enduring and increasing, that you won’t have much tech talent in the medium term.
The market for tech wages is the market. You might get a couple years of loyalty or inertia out of current employees, but if you don’t (whether won’t or can’t), pay compensation needed to land too talent, you won’t have it.
If you're a company hiring engineers but can't offer a 'market rate' or find that people aren't accepting offers because the compensation is too low, your other bargining chip is to offer equity.
Maybe its .1%, .05%, .2% or even .5%.
Why can't these growing businesses that are profitable offer equity to their employees? Equity aligns incentives. If the buisness is growing and profitable the equity is valueable (and should grow in value!) as well. Even if the company remains private, there are mechanisms for trading shares of a private company.
Companies don't need to raise salaries by 20% for everyone every year. They do need to be open to making adjustments as needed. Especially if they care about retention. Otherwise they'll end up spending far more than that 20% increase on turnover, hiring costs, and onboarding costs. Which will only leave them at the same capacity as before.
The new hire will likely also be asking for a higher salary since the market will have appreciated anyway.
If you happen to know of a place though that offers 20% raises each year I'm all ears!
All of us are frustrated about the company's (lack of) leveling system
A previous employer took the explicit decision not to have formal levels because they didn't want people to fixate on individual promotion, instead to focus on the organisations goals. To me that seems in conflict with some basic commercial forces operating in the market. You can possibly pull that off if you're also offering a job for life with salary that keeps pace with the market, and amazingly interesting work so noone ever gets bored and just fancies a change. Bell Labs or Xerox or a legendary company like those could do it. But very few companies like that exist now, and this wasn't one of them.
Like goatinaboat said above, some companies are legendary enough to attract top talent through the sheer force of their reputation. Netflix seems to be one of those places. So they can get away with it. They also pay engineers extremly well.
Netflix also has an intense culture that the industry recognizes.
While they may not have 'ladders' they certainly compensate well. When a Netflix engineer considers leaving, I imagine they look at roles that have a total compensation similar to or above their current compensation.
Ladders can sometimes just be a proxy for compensation as a means of organizing (or rating) individuals relative to one another.
After smashing through OKRs and projects, my manager is evasive on a promotion. Empirical evidence shows how my work frees up others and how libraries I've created have saved time in future projects. Empirical evidence also shows how my work ultimately makes it to production and how I've been at the forefront of crossteam coordination to get projects delivered 100%. Something even other seniors are struggling with on our team. It's a genuine problem.
Peer managers are happy working with me. Peer engineer reviews are good. Director is happy. But my own manager just evades this conversation by saying bull such as "oh, but those projects had a senior on them" or "oh, that's just crud apis". And this is after 9 months of "working towards the next level". He now says that he wants me to work on another challenging project and prove that I can deliver it timely.
I feel like he's bullshitting me and playing with my life. I am very demotivated from trying hard or doing anything for this manager. I keep asking myself, "What's the goddamn point? He's going to bullshit me anyway again".
Has someone else experienced this? Is this normal? I prefer not jumping ship but this kind of evasive bullshittery is affecting my mental health.
Don’t do this. You will just expose the wound and ruin whatever relationship you have with various parts of the company (going above chain of command).
Well, what I think you're getting at is this kind of a tactic is inherently escalatory. But the truth is, if you want to get what you want, you need to be willing to play hardball and apply leverage. Of course, the most important part of that is BATNA, which coincides with what you said -- find another job.
Where I disagree with you is that it will ruin whatever relationship you have with various parts of the company. Going "above the chain of command" is actually pretty normal and institutionalized process at functional companies -- it's called the skip-level meeting, and it's a deliberate check/feedback mechanism on line managers over-extending on managing upwards rather than downwards.
I'd actually argue the opposite point, which is that organizations that fail to properly implement skip-level meetings are missing out on an important mechanism which ensures the chain of command is performant and rooting out structural rot. As a spot check, my observations on every org I've worked at basically vindicate this.
So let’s reframe this. If you and your girl/guy have a relationship problem, and he/she goes to another man/woman to counsel, quite frankly, I’d never look at them the same again.
Life is not perfect because humans are involved. People will take it some way.
Anyway, for what it’s worth, I bypassed chain of command and it went exactly as you’d expect. If you are my girl, don’t cry on another man’s shoulder. These are stories of old.
I don’t know, if this was a Stackoverflow question, which would be the best answer? Given how complicated life is, I’d wager my answer with a 50% probability, along with yours, is as close as we’ll get to a ‘best answer’, assuming we follow the spirit of the developer community.
I think you're proving my point unintentionally. If you're at the point where the relationship isn't working out, it's actually in everyone's best interest for you to break up and date other people. If you were happy, you wouldn't be looking. You became unhappy because you were unfulfilled in the relationship, because what you were looking for was something the other person could not provide, or vice versa. What is the virtuous thing to do? Is it to silently stew and settle, or is it to ask for what you want, and if you don't get it and think you can find it elsewhere, leave to do so? The answer is obvious.
All the other stuff you mention about "never look[ing] at them the same again" is more related to your ego, sense of insecurity and lack of self awareness more than anything. Once you pare those away, the objective truth is incompatibility. It doesn't have to be emotional unless you let it.
So in the business use case, you don’t want to forgo the paycheck in light of this. It’s the same relationship dynamic, but in the romantic sense you gain nothing, but in the business sense you rack up cash and tenure at the job, all of which can be flipped going forward (two years at a job, versus one year at a job).
I guess that’s my point. If the relationship is fucked in a pure romantic relationship, you must move on. If the relationship is fucked in the business sense, there is still value in timing your exit.
But if we turn to idealism at any point, we lose our tactical options (eg, I shall speak to the manager of my manager, and the world shall see how right I am). It can be folly.
The survival instinct is not lauded enough. It can take you further if you shift to it, in the worst of situations.
There's a difference between survival instinct and learned helplessness and antagonism.
In a healthy organization, skip-level interactions are institutionalized as a feedback mechanism against mid-level managers presenting an oversanitized version of what's really happening to skips when from the skip's point of view, there could be ticking time bombs and they'd like to know. In fact, if there's discord between a manager and a report, it's often a great opportunity for a coachable moment between the manager and the skip -- a line manager who doesn't learn how to handle these situations with diplomacy, candor, tenderness and efficacy will struggle to earn influence in their desire to become a manager of managers. And that becomes the skip's problem because it impedes their ability to grow an influential and growing organization.
It is only in a dysfunctional organization where a report talking to their skip is intrinsically adversarial to the line manager. Of course these situations aren't so rare as anyone would like (especially at stagnant big corporations), but it doesn't change the fact that if you work at such an organization, your career growth is pretty capped anyways and you may as well be looking for a new role regardless. Why?
Learning how to play petty political games doesn't actually level up your fungible skillsets and ability to deliver customer value. You'll start over from square one when you eventually do want to switch companies, and you'll never get that time back you wasted on merely "surviving" when you could have been actually growing. People shoot their entire careers in the foot by settling this way.
I guess at a place like Google, going above your manager makes sense. Like, where the fuck else are you going to go? It’s sort of only down from there, so certainly take the opportunity to maximize your career in that event.
We are not far off in thinking. Do what makes sense strategically. I’ll stand by the point it is pointless to do this kind of stuff at a bumble fuck Fortune 500 company. Know the battlefield, best of luck.
Yeah, I think we perhaps are violently agreeing with each other :) I /definitely/ agree with you that it's pointless to do this at an F500. Perhaps where my thinking comes from is that I've predominantly worked in startups, precisely to avoid this issue. That's not to say that startups prevent these issues -- far from it. Just that you get a different set of tools and a different environment that can often cut it out almost completely for a long period of time.
The reason I argue so vehemently against normalizing this kind of stuff (even if it is normal at F500s) is that it can create a level of learned helplessness. When I worked at such a company, it was absolutely everywhere. Despite the fact that folks were well paid, they had a list of grievances a mile long that made every waking hour at work absolutely miserable. But whenever I asked why they didn't just leave for greener pastures, the answer was along the lines of that learned helplessness -- survival instinct, etc. For me, the answer was simply "I can do better than this elsewhere. I will vote with my feet."
I think that sent a different message to the management chain, and I don't regret it.
Well, you can be a bit more diplomatic: set up the 1:1 to ask for advice getting that promotion, and as a convenient side effect your manager's lack of support will get mentioned along the way.
This is the way. The messaging and positioning work to your favor here -- the skip level will be happy to see a high performer in their report chain attempting to grow, and clearly, your direct manager would only want to enable that, yes? It's only a fair and reasonable expectation.
The way to deal with evasive bullshittery is nail down expectations. Tell your manager you want to get promoted and need to know what they need to see by the next cycle to get you there. If they're still evasive, well, you have your answer on whether you should stick around or jump ship.
First, I would ask your manager to list a specific sequence of projects and outcomes that would be promotable. Specific. This really helps identify whether there is a mismatch in your expectations.
One thing I see at Google is people thinking that they can get promoted just by doing more work that is high quality. When actually each promotion comes from doing qualitatively different kinds of work. Smashing OKRs doesn't matter one bit. This can be frustrating for people who don't communicate specifically about the process requirements with their manager since they look at their work and see it as better than their work N years ago and say "wtf why no promotion".
Good points. And I actually did bring up discussion on "specifics". For two quarters, I was given specifics of the kind: "improve delivery" and "better something" etc. And I did them diligently.
I'm learning more and more that the "specifics" are really hand holding the manager into committing and holding them accountable. Which is SO CHILDISH. No wonder highly paid tech workers jump ship all the time.
I'd try one more time and also escalate to his or her manager. Your manager's job is to provide you with this information in an actionable and predictable fashion, especially at lower levels. Make it clear that you want to get promoted on some timeline and ask for a specific plan ("improve delivery" isn't specific).
If that doesn't resolve it, I think trying to change teams (or even companies) is reasonable. I don't know how easy that is at your company but where I am at "my manager is unable to support my career goals effectively" is an absolutely reasonable and respected reason to switch teams.
Your manager is not doing a great job here. That's a fine thing to recognize. But I don't see why working with somebody to have them commit to something and hold them accountable is childish? That sounds like perfectly rational and healthy work interactions. Most of my human-to-human interaction at work is spent setting expectations, getting commitments (or committing to something) and following up on those commitments.
Thanks for the good points. I am actually not opposed to healthy discussion and clearly outlining goals. It's great to come to specifics where both parties agree on the goal.
What's childish is discussing "specifics" which turn out not to be and now I have to ask my manager, "Why did I kill myself to do what you asked?". This is reneging on goal itself and not the means.
Now, every 1:1 I have to hand hold this manager and make them say out loud how my work satisfies his own bullshit criteria and remind him of the goals.
I chuckle because this is how I've seen parents deal with 3 yr olds.
Depending on your organization, you could switch to another team with more of a need for leadership or otherwise seems more likely to advocate for the promotion you're looking for. For some organizations, that's a big change, but other companies give a lot of autonomy to high performing individual contributors when it comes to picking what work (and therefore what team) they participate in.
Ok so everyone is happy with your performance except your manager. Unfortunately they're the gateway between you and promotion at most companies. So whatever you're doing that you consider to be successful doesn't match their expectations. That's what you need to fix. Have they been sending signals that they want you to do x, but you think that y is more impactful? The fact that they seem evasive could just be down to the fact that it's hard for most people to give direct feedback.
The fact that you're killing it on "crud APIs" and they aren't impressed could be their way of giving feedback. If they aren't happy with that, ask them what else you should be spending your time on instead. If they aren't seeing you as taking a lead role because there are already seniors on a project, find a project without a senior and take ownership. People are always sending signals, they just might not be clear. The fact that you're so quick to dismiss them as bullshit here tells me that you're not picking up on them.
In any case it's worth initiating a conversation with them and asking directly what you can do to meet their expectations. And then follow up on that. I've seen so many cases where an IC thinks they're crushing it in ways that just don't matter to their manager and then wonder why they aren't being recognised.
Are you trying to tell me that I should ignore 9 months of discussing this, writing down "specifics" and them assigning me to work that clearly wouldn't lead me to a promotion as per themselves?
Their job is to advance company goals, hopefully that’s aligned with their best engineers growing as well, but someone has to CRUD their CRUD APIs and that someone was you on this project. It’s fair to ask what the promotion path/chances are (as you’re doing) and if those answers are not compatible with what you want, you change jobs. Their main job is not to give you work that will lead to your next promotion.
Cool. In that case, they can come and say that instead of waiting yeah? Why are they "working on it" for 9 months and wasting everyone's time? It's one thing to be direct and say that it's not possible for [insert reason]. It's another to be misleading.
If you’re progressing from “just out of college” to the level one above that of “basically competent engineer” (which in some companies is a different level and in others not), you have a case to make that you’re getting jerked around or there’s miscommunication at some link in the chain.
That’s a promotion where the company goals and your goals are perfectly aligned and you only have to show increasing technical competence and no crippling deficits elsewhere.
In many ways, it’s like getting from promoted from grade 3 to grade 4 in school. Do all the grade N work and you’ll progress to grade N+1.
If you’re making the case to go from a mid-level IC to a senior level, promotion is rarely about “nine_zeros hit all goals at a lower level” or “nine_zeros shipped at-level quality code on time at the direction of eleven_zeros who is at the higher level that nine wants to become”. That’s what full performance at your current level looks like. Performance at the higher level job is more about leading the project (or a big part of it), taking business strategy and turning it into your team’s technical goals and promotion into that level is supported by initial glimmers of evidence of doing that work, not (only) by strong performance at your current level.
You haven't answered my question. What's stopping the manager from saying [insert text from sokoloff] right off the bat? Why make me do other "specifics" and then renege?
I suspect it's incompetence in management but I'm happy to hear how you would defend such behavior.
I’m not defending their behavior, because I don’t even know what their what their behavior actually is. I’ve heard a small snapshot of it from not them.
I’m trying to help paint a picture of how the promotion process works in a lot of companies, especially for promotions other than the first one. I see it all the time in my own company. People, especially the talented and high-achieving types, seem to think promotions work one way (likely because they actually have worked that way all through their life up until that point) and are genuinely confused when they are faced with the first time they work under a different model.
“What do you mean I’m not being promoted?! I passed all the tests assigned to me in single-variable algebra!” That would never happen in school, but if it did, no one would explain “yes, but there was a teacher there providing guidance.”
“What do you mean I’m not being promoted to SWE3?! I demonstrated 9 months of mastery at SWE2 and hit all the goals assigned to me!” “Yes, but there was an SWE3 guiding you on that project.”
High achieving SWE2s often think that’s as ridiculous as the algebra example, while most managers and tenured SWE3s see them as obviously different.
It’s entirely possible that they’re screwing you over. When you ask for specifics, they offer, and you accept “better delivery” as an answer, effective communication did not happen. The specifics you reported above are exactly not specific.
For all I know, your opinion of your work is higher than theirs and they’re maliciously trying to keep you grinding away as long as possible.
Equally for all I know, they think there’s a couple things you need to shore up to be ready for the next level and you aren’t listening hard enough because you’re so focused on the prize that you’re debating them on every point they raise rather than reflecting on the 10-40% of what they say that’s dead right.
Equally for all I know, there’s a policy in the company that is blocking a promotion at your amount of tenure in role or something else.
The only thing I’m 100% sure is among you, your manager, and me, I’m the one who knows the absolute least about the situation.
One of the few things I appreciated about finance was how clear the hierarchy system was. 3 years as an analyst, 3 as an associate, 3 as a VP, 3-5 as a director with promotion to managing director based on hitting clearly defined fee generation markers, and then an eat-what-you-kill model as a managing director with a clear % take rate on what you brought in.
And banks have accelerated the early years path to compete with tech and private equity by including accelerated 2-year paths at the analyst and associate levels for top bucket performers. Now these banks are still hemorrhaging junior talent now more than ever, but that's probably more of a function of lifestyle (80-100 weeks for your first 5-6 years before things start settling down).
The review cycles are generally okay (not good by any stretch) but manage to capture whether or not someone's impact is outsized and worth accelerating. So a great job of finding the 8-10/10s but pretty poor at delineating between 4-7s.
Not possible to use that model in engineering organizations (at least the ones I've seen) because there isn't an apprenticeship model in tech as in finance so it is harder to promote a 7/10 performer every 3 years reliably because they may not be capable of doing the next job due to specialization and less linear skillset building.
68 comments
[ 3.3 ms ] story [ 134 ms ] threadI think it’s under-appreciated that these systems are so inherently flawed, especially regarding meritocracy.
https://managingml.substack.com/p/a-cap-theorem-for-career-d...
Bands are not the problem. Mindless, extremely rigid adherence to bands is the problem.
There's also the problem that, especially as you move further away from direct P&L, calculating value is really difficult. I work in infrastructure and engineering productivity. When I'm lucky, I can get an engineer-hours-saved metric, but most of the time I can't get that directly, and my work reduces system complexity, which pays off eventually in time saved or outages avoided. Systems that try to sort of directly reward performance fail for a lot of cases where that's fuzzy.
It also, speaking personally, hasn't been a huge issue, and I don't see the slow-growth that the original article talks about. My compensation has been increasing on a linearish trajectory fairly quickly, and that doesn't appear to be slowing down yet. My growth (both career and compensation) is faster than many, though not all, of my peers. I know people who took 2x as long as me to get promoted, and I know people who did it 2x faster (and that's true both from 3->4 and 4->5, we'll see for 6). That doesn't sound particularly tenure based.
Making the time to setup the measuring/monitoring is a bit of a pain but it's worth it. I worked in the same vertical (infra/"DevOps"/engineering productivity) before I shifted to becoming a people manager. Here's some of the things we're setting up now to measure this:
- Using something like https://github.com/ImpactInsights/valuestream to measure number of deploys per week, build times across pull requests, length of time it takes a pull request merged across the entire team, etc.
- If you want to get fancier, setting up simple tracking to measure how much time running "npm install" takes across all engineers on their local machines. This could get logged in something like Datadog/Grafana/whatever graphing solution you want.
- Zoom out even further. Are releases being slowed down by other teams by accident? E.g. we had a feature delayed a week by accident because the marketing team didn't know a feature was finished, in production, but behind a flag waiting for them to write marketing copy. We're currently setting up a way to track "features in production but behind a flag" in Jira better and feed that "lag time" data into our overall deployment picture.
The idea being, for every task you're executing to "improve developer productivity" you should have a hypothesis with about how much time it'll save the team. If you can't get that right away, I'd move on to a task that has a better measure to it and knock that out first. If you completely run out of tasks and measurements, that's when you can take bigger bets on tasks that have more fuzzy measurements next to them.
In my experience the work here never dries up though.
I'm also at Google. I know a few L7s/L8s who lead these sorts of engineering productivity teams and organizations. It isn't just that they aren't prioritizing getting precise numbers. It is that the entire industry has very little idea how to measure engineering productivity. This is a stupendously difficult problem and an area of active research.
The metrics you describe here are okay (build times are easy to measure and can be directly valuable) but they really do represent a limited view. They don't capture all sorts of important stuff. What is the measured value of transitioning to a new C++ version? What is the measured value of best practices documentation and training courses?
Measurements are stupendously valuable when they are feasible and meaningful. But there is real work that should be done that is almost impossible to convert to numbers, let alone dollars.
I know you would stall at some point, but at least it wont feel soul crushing until then.
Even if you managed to get in at a high level it can be very hard to actually operate at a higher level when you’re new at the company. A lot of people fail to ramp up.
To be clear, there are definitely a handful of firms that have levels similar to what can be found in FAANG but not many. Also, I should say "GAFAM" since Netflix doesn't even have levels—but that's not as well known a term.
Employment is at will, and that goes 2 ways. If a company isn't willing to support you in your career long term, there's no reason to support the company long term as an employee.
All of us are frustrated about the company's (lack of) leveling system, poor compensation, and overall lack of leadership on this and many other issues. Many other engineers are too and some more will likely leave over the next couple of months.
A new banding system has been in the works since I started 3 years ago.
Companies need to have this figured out and operate in a clear predictable way to avoid exoduses like what I'm seeing (our engineerinng division has had 5-6 people leave since the start of the year including us 3).
If you're in a leadership or executive role, your priority should be to create a space that allows for individuals to move up and progress in their careers. Let your team - engineers, designers, managers etc - focus on building the product. You need to build a business.
Your company is profitable but has slow organic growth in revenue/profit (single or low double digits). Everybody has more work on the table than is actually doable. To keep up with demand, you can hire sporadically one person in this department one in that... If you're numbers are good, maybe you can hire in the single digits per year.
Since salaries (especially in the tech sector) are rising much faster per year than your growth or inflation for that matter, you must pay much more to the new hires. This creates a salary gap in your team and leaves also less money for yearly salary adjustments for existing employees. Also since I hire only few per year, i cannot offer a meaningful Management career path, nor can i promote every Dev to a architect or principal. After all, to keep the business running, I need devs that do Dev work.
In the current artificially inflated tech market (thanks to easy money), if I job hop i can increase my pay by 20%. However which normal company is able to regularly increase the salaries of all their employees by that percentage and grow head count? Impossible.
> Since salaries (especially in the tech sector) are rising much faster per year than your growth or inflation for that matter, you must pay much more to the new hires.
> In the current artificially inflated tech market (thanks to easy money),
By some accident engineers have offered their time to this business which is unable to put their efforts to good economic use, and hence unable to pay market-competitive salaries. The management at this firm needs to think hard if they really need expensive skills as inputs, and if they do, why are the returns so meager.
However, your advise is not very actionable, given that the current market is one hot bubble, where investments and valuation is not longer based on market fundamentals, see [1].
https://news.ycombinator.com/item?id=26478875
The market for tech wages is the market. You might get a couple years of loyalty or inertia out of current employees, but if you don’t (whether won’t or can’t), pay compensation needed to land too talent, you won’t have it.
If you're a company hiring engineers but can't offer a 'market rate' or find that people aren't accepting offers because the compensation is too low, your other bargining chip is to offer equity.
Maybe its .1%, .05%, .2% or even .5%.
Why can't these growing businesses that are profitable offer equity to their employees? Equity aligns incentives. If the buisness is growing and profitable the equity is valueable (and should grow in value!) as well. Even if the company remains private, there are mechanisms for trading shares of a private company.
Companies don't need to raise salaries by 20% for everyone every year. They do need to be open to making adjustments as needed. Especially if they care about retention. Otherwise they'll end up spending far more than that 20% increase on turnover, hiring costs, and onboarding costs. Which will only leave them at the same capacity as before.
The new hire will likely also be asking for a higher salary since the market will have appreciated anyway.
If you happen to know of a place though that offers 20% raises each year I'm all ears!
A previous employer took the explicit decision not to have formal levels because they didn't want people to fixate on individual promotion, instead to focus on the organisations goals. To me that seems in conflict with some basic commercial forces operating in the market. You can possibly pull that off if you're also offering a job for life with salary that keeps pace with the market, and amazingly interesting work so noone ever gets bored and just fancies a change. Bell Labs or Xerox or a legendary company like those could do it. But very few companies like that exist now, and this wasn't one of them.
https://www.quora.com/What-are-the-levels-titles-at-Netflix-...
Netflix also has an intense culture that the industry recognizes.
While they may not have 'ladders' they certainly compensate well. When a Netflix engineer considers leaving, I imagine they look at roles that have a total compensation similar to or above their current compensation.
Ladders can sometimes just be a proxy for compensation as a means of organizing (or rating) individuals relative to one another.
Netflix is one of the exceptions in my book.
Peer managers are happy working with me. Peer engineer reviews are good. Director is happy. But my own manager just evades this conversation by saying bull such as "oh, but those projects had a senior on them" or "oh, that's just crud apis". And this is after 9 months of "working towards the next level". He now says that he wants me to work on another challenging project and prove that I can deliver it timely.
I feel like he's bullshitting me and playing with my life. I am very demotivated from trying hard or doing anything for this manager. I keep asking myself, "What's the goddamn point? He's going to bullshit me anyway again".
Has someone else experienced this? Is this normal? I prefer not jumping ship but this kind of evasive bullshittery is affecting my mental health.
Not something to be done lightly, if you are already planning to jump ship it can hardly hurt.
Find another job.
Where I disagree with you is that it will ruin whatever relationship you have with various parts of the company. Going "above the chain of command" is actually pretty normal and institutionalized process at functional companies -- it's called the skip-level meeting, and it's a deliberate check/feedback mechanism on line managers over-extending on managing upwards rather than downwards.
I'd actually argue the opposite point, which is that organizations that fail to properly implement skip-level meetings are missing out on an important mechanism which ensures the chain of command is performant and rooting out structural rot. As a spot check, my observations on every org I've worked at basically vindicate this.
Life is not perfect because humans are involved. People will take it some way.
Anyway, for what it’s worth, I bypassed chain of command and it went exactly as you’d expect. If you are my girl, don’t cry on another man’s shoulder. These are stories of old.
I don’t know, if this was a Stackoverflow question, which would be the best answer? Given how complicated life is, I’d wager my answer with a 50% probability, along with yours, is as close as we’ll get to a ‘best answer’, assuming we follow the spirit of the developer community.
All the other stuff you mention about "never look[ing] at them the same again" is more related to your ego, sense of insecurity and lack of self awareness more than anything. Once you pare those away, the objective truth is incompatibility. It doesn't have to be emotional unless you let it.
I guess that’s my point. If the relationship is fucked in a pure romantic relationship, you must move on. If the relationship is fucked in the business sense, there is still value in timing your exit.
But if we turn to idealism at any point, we lose our tactical options (eg, I shall speak to the manager of my manager, and the world shall see how right I am). It can be folly.
The survival instinct is not lauded enough. It can take you further if you shift to it, in the worst of situations.
In a healthy organization, skip-level interactions are institutionalized as a feedback mechanism against mid-level managers presenting an oversanitized version of what's really happening to skips when from the skip's point of view, there could be ticking time bombs and they'd like to know. In fact, if there's discord between a manager and a report, it's often a great opportunity for a coachable moment between the manager and the skip -- a line manager who doesn't learn how to handle these situations with diplomacy, candor, tenderness and efficacy will struggle to earn influence in their desire to become a manager of managers. And that becomes the skip's problem because it impedes their ability to grow an influential and growing organization.
It is only in a dysfunctional organization where a report talking to their skip is intrinsically adversarial to the line manager. Of course these situations aren't so rare as anyone would like (especially at stagnant big corporations), but it doesn't change the fact that if you work at such an organization, your career growth is pretty capped anyways and you may as well be looking for a new role regardless. Why?
Learning how to play petty political games doesn't actually level up your fungible skillsets and ability to deliver customer value. You'll start over from square one when you eventually do want to switch companies, and you'll never get that time back you wasted on merely "surviving" when you could have been actually growing. People shoot their entire careers in the foot by settling this way.
We are not far off in thinking. Do what makes sense strategically. I’ll stand by the point it is pointless to do this kind of stuff at a bumble fuck Fortune 500 company. Know the battlefield, best of luck.
The reason I argue so vehemently against normalizing this kind of stuff (even if it is normal at F500s) is that it can create a level of learned helplessness. When I worked at such a company, it was absolutely everywhere. Despite the fact that folks were well paid, they had a list of grievances a mile long that made every waking hour at work absolutely miserable. But whenever I asked why they didn't just leave for greener pastures, the answer was along the lines of that learned helplessness -- survival instinct, etc. For me, the answer was simply "I can do better than this elsewhere. I will vote with my feet."
I think that sent a different message to the management chain, and I don't regret it.
And your manager knows it too, it seems.
If you think it’s affecting your health, it’s a no brainier.
One thing I see at Google is people thinking that they can get promoted just by doing more work that is high quality. When actually each promotion comes from doing qualitatively different kinds of work. Smashing OKRs doesn't matter one bit. This can be frustrating for people who don't communicate specifically about the process requirements with their manager since they look at their work and see it as better than their work N years ago and say "wtf why no promotion".
I'm learning more and more that the "specifics" are really hand holding the manager into committing and holding them accountable. Which is SO CHILDISH. No wonder highly paid tech workers jump ship all the time.
If that doesn't resolve it, I think trying to change teams (or even companies) is reasonable. I don't know how easy that is at your company but where I am at "my manager is unable to support my career goals effectively" is an absolutely reasonable and respected reason to switch teams.
Your manager is not doing a great job here. That's a fine thing to recognize. But I don't see why working with somebody to have them commit to something and hold them accountable is childish? That sounds like perfectly rational and healthy work interactions. Most of my human-to-human interaction at work is spent setting expectations, getting commitments (or committing to something) and following up on those commitments.
What's childish is discussing "specifics" which turn out not to be and now I have to ask my manager, "Why did I kill myself to do what you asked?". This is reneging on goal itself and not the means.
Now, every 1:1 I have to hand hold this manager and make them say out loud how my work satisfies his own bullshit criteria and remind him of the goals.
I chuckle because this is how I've seen parents deal with 3 yr olds.
The fact that you're killing it on "crud APIs" and they aren't impressed could be their way of giving feedback. If they aren't happy with that, ask them what else you should be spending your time on instead. If they aren't seeing you as taking a lead role because there are already seniors on a project, find a project without a senior and take ownership. People are always sending signals, they just might not be clear. The fact that you're so quick to dismiss them as bullshit here tells me that you're not picking up on them.
In any case it's worth initiating a conversation with them and asking directly what you can do to meet their expectations. And then follow up on that. I've seen so many cases where an IC thinks they're crushing it in ways that just don't matter to their manager and then wonder why they aren't being recognised.
Their job is to advance company goals, hopefully that’s aligned with their best engineers growing as well, but someone has to CRUD their CRUD APIs and that someone was you on this project. It’s fair to ask what the promotion path/chances are (as you’re doing) and if those answers are not compatible with what you want, you change jobs. Their main job is not to give you work that will lead to your next promotion.
That’s a promotion where the company goals and your goals are perfectly aligned and you only have to show increasing technical competence and no crippling deficits elsewhere.
In many ways, it’s like getting from promoted from grade 3 to grade 4 in school. Do all the grade N work and you’ll progress to grade N+1.
If you’re making the case to go from a mid-level IC to a senior level, promotion is rarely about “nine_zeros hit all goals at a lower level” or “nine_zeros shipped at-level quality code on time at the direction of eleven_zeros who is at the higher level that nine wants to become”. That’s what full performance at your current level looks like. Performance at the higher level job is more about leading the project (or a big part of it), taking business strategy and turning it into your team’s technical goals and promotion into that level is supported by initial glimmers of evidence of doing that work, not (only) by strong performance at your current level.
I suspect it's incompetence in management but I'm happy to hear how you would defend such behavior.
I’m trying to help paint a picture of how the promotion process works in a lot of companies, especially for promotions other than the first one. I see it all the time in my own company. People, especially the talented and high-achieving types, seem to think promotions work one way (likely because they actually have worked that way all through their life up until that point) and are genuinely confused when they are faced with the first time they work under a different model.
“What do you mean I’m not being promoted?! I passed all the tests assigned to me in single-variable algebra!” That would never happen in school, but if it did, no one would explain “yes, but there was a teacher there providing guidance.”
“What do you mean I’m not being promoted to SWE3?! I demonstrated 9 months of mastery at SWE2 and hit all the goals assigned to me!” “Yes, but there was an SWE3 guiding you on that project.”
High achieving SWE2s often think that’s as ridiculous as the algebra example, while most managers and tenured SWE3s see them as obviously different.
It’s entirely possible that they’re screwing you over. When you ask for specifics, they offer, and you accept “better delivery” as an answer, effective communication did not happen. The specifics you reported above are exactly not specific.
For all I know, your opinion of your work is higher than theirs and they’re maliciously trying to keep you grinding away as long as possible.
Equally for all I know, they think there’s a couple things you need to shore up to be ready for the next level and you aren’t listening hard enough because you’re so focused on the prize that you’re debating them on every point they raise rather than reflecting on the 10-40% of what they say that’s dead right.
Equally for all I know, there’s a policy in the company that is blocking a promotion at your amount of tenure in role or something else.
The only thing I’m 100% sure is among you, your manager, and me, I’m the one who knows the absolute least about the situation.
And banks have accelerated the early years path to compete with tech and private equity by including accelerated 2-year paths at the analyst and associate levels for top bucket performers. Now these banks are still hemorrhaging junior talent now more than ever, but that's probably more of a function of lifestyle (80-100 weeks for your first 5-6 years before things start settling down).
The review cycles are generally okay (not good by any stretch) but manage to capture whether or not someone's impact is outsized and worth accelerating. So a great job of finding the 8-10/10s but pretty poor at delineating between 4-7s.
Not possible to use that model in engineering organizations (at least the ones I've seen) because there isn't an apprenticeship model in tech as in finance so it is harder to promote a 7/10 performer every 3 years reliably because they may not be capable of doing the next job due to specialization and less linear skillset building.