The Google incentive mismatch: Problems with promotion-oriented cultures
warp.dev
warp.dev
> choose between doing what’s best for users or what’s best for their career
But the root cause isn't that people want to get promoted. It's that Google promotes people for the wrong reasons. Put very simply, the problem is that Google promotes people for "solving hard problems" not for solving USEFUL problems.
Imagine if people did get promoted for fixing bugs instead of building a new product (to be abandoned)! Or if maintaining an existing system was somehow on par with building a new system (which is just a bigger more complicated version of something perfectly good). The googler would say "well those useful problems are too easy to merit a promotion. Anybody can solve easy problems - we're google, and we're too smart to work on those easy problems." Grow up.
Y'all value the wrong things. That's why your culture is broken.
Thank you for sharing your experience.
Their whole management process encourages people to chase after impossible goals, and literally discourages people from getting things done.
I know the argument is that by being more ambitious and achieving 70%, you are setting ambitious goals. But then the goals are never met. The work doesn't finish. The projects falter. The users are unhappy. Engineers leave.
If every OKR got 1.0 it meant we could comfortably take on more work next half, below 0.8 and we would plan to do a little less next half.
In theory it would have been fine to score OKRs above 1.0 for stretch goals for the same effect, but the software didn't work that way.
If setting an OKR is meant to focus the team and maximize effort towards solving those problems, this approach is counterproductive because it completely fails to measure the effort exerted towards a goal.
You could have a 1.0 OKR and you could have 2 cases. 1. Set it too easy, didn’t have to do much to achieve it 2. Set a hard goal and produce a Herculean effort to achieve it
The latter case isn’t accounted for. It’s is glaringly obvious but the dull manager types don’t seem to want to acknowledge the difference or the fact that the latter behavior, if incentivized, leads to better and more predictable outcomes.
Instead, the effort is met with a blanket: “Too easy, didn’t set a hard enough goal”.
This incentivizes people to set easier goals that they can meet comfortably and slack of 20% of the time so that it doesn’t look like the goal they set was too easy.
Hmm. If you are supposed to not meet all your OKRs, then that guarantees you will have a record of unmeet OKRs, which can be used as ammunition to deny promotion or even fire someone.
So that encourages a sort of favoritism, where the people you want to promote anyway have their missed OKRs overlooked, while the rest of the pack aren't meeting their OKRs.
It's easily visible from the outside too. The constant stream of one half-baked video chat solution or social network replacing the last one, without any sense of progress or continuity, why would a company do that? Easy, no one gets promoted for fixing anything, but creating the next broken thing? That's vision.
Or maybe it's because the company is always looking for the runaway 10X success story (like search, ads, etc). Incremental growth doesn't make a dent in the balance sheet. So they're always shutting down the products that didn't explode into a success and starting new ones to roll the dice.
THIS IS A GREAT QUOTE! UPVOTE FOR REAL INSIGHT.
Two years later... forget it. There was no way to get anyone's attention or a response about anything. This includes actual bugs and problems.
It was pretty clear to me then that there was nobody driving the bus on these projects anymore. There had been excited invested smart people around for the development, but once the thing seemed stable... there didn't seem to be anyone around at all anymore? I started to notice that this was how things worked at Google generally -- after a new product was deployed, there seemed to be simply nobody around anymore with the time and interest to act on bug reports, or talk to external partners, or just care at all. Without having at that time heard anything from inside the walls, that became my theory of how things worked at Google -- everything is abandonware.
So, yeah it's visible.
You're rewarded/measured on two metrics - breadth and depth
- a depth metric - leadership in your own specific project team where you add features.
- a breadth metric - you've demonstrably shown that you've gotten other teams outside your own to contribute to your project effectively. Additionally and perhaps more importantly you must show that you can act in a supporting role on multiple other projects outside your own core project. Supporting other projects outside your core project include signing up for triage support, updating documentation, improving testing, etc. without frustrating the primary maintainers.
IMHO - focusing on depth as the only way to technical career progression leads to feature creep, ball of mud codebases with high barriers to entry and silo thinking.
Would be curious if/why this is controversial.
The full feature lifecycle and reducing bus-factor across the entire existing product feature set is rarely considered as its not generally captured in OKR metrics.
So currently there are two narrowly defined options for career progression:
* technical leadership on core project/domain
* engineering management
Perhaps instead of eliminating the depth option for the technical track and making the T shaped depth/breath mandatory, just make it an additional option to provide an additional track for people to take for career progression.
* deep technical leadership on core project/domain
* broad-based technical leadership on core project/domain and supporting role on multiple projects
* engineering management
The reason Google is the way it is, and many organizations are the way they are, is that they are trying to reproduce the circumstances that led to their initial success. Google initially succeeded by solving what was at the time a Really Hard Problem, and so the people at the top want to reproduce that by encouraging people to solve more Really Hard Problems. Apple has fallen into the exact same trap. Their initial success came from building a Cool New Thing, and so they are constantly trying to build the next Cool New Thing. The problem is that at some point the product has actually converged to a local design maximum and so making further changes to it in order to produce something New and Cool is not actually an improvement.
But it doesn't work because it's sn inductive fallacy. Just because solving a Really Hard Problem or making a Cool New Thing led to success once does not mean that doing these things will lead to success in general. But the memory of that initial success is really hard to get past, especially when it was as earth-shattering as the initial Google search engine, or the Mac or the iPhone.
(Apple has actually done better than most companies at reproducing their initial success. They've done it at least five times, with the Apple II, the Mac, OSX, the iPod and the iPhone. But then there is the touch bar, the butterfly keyboard, the flat look...)
For instance, they often resist new technologies like high refresh rate or OLED screens, 5G, etc., until they feel the technology is developed sufficiently and won’t impact battery life. There are other brands that compete by making a list of features rather than a coherent product.
Of the examples you named, both the Touch Bar and the butterfly keyboard are gone now, and the latest Macs are the best Macs ever. That shows a willingness to try new things, while also showing that they have good judgement in the long term and a willingness to move away from what doesn’t work.
Also, the iPad and Apple Watch haven’t been as important to Apple as the iPhone, but they are still original and category-defining products that I would call innovative. Not every new product needs to double your company’s market cap to be a big success in the category.
Some companies like to spam new products, others like to perfect what they have.
No. But that doesn't mean that Apple hasn't fallen prey to this phenomenon. It just means that they set the bar incredibly high to begin with.
My first Apple was an Apple II, and I have never been without an Apple product since then. I currently own three Apple phones and eight Apple laptops. But for me the overall usability and quality of Apple products has been in decline over the last decade or so. I still run Mavericks on many of my machines because it was the last version of MacOS that Just Worked.
So I'd definitely say Apple is best in class at incremental changes with the exception of the touchbar/butterfly MBPs. I'd just disagree with you over the quality: my M1 MBP is a big improvement over even the pre-touchbar ones in basically every way.
But it's actually more about the software than the hardware. Once upon a time Macs were the computer that Just Worked. But recent devices, including phones, tablets, and laptops, have major usability issues. It's more about the software than the hardware, but with Apple you literally cannot separate the two.
Here are some war stories.
I bought a brand new M1 MBA. I installed XCode. The install process produced a tiny little progress bar that required a microscope to see. It got very near the end and then got stuck for several hours just short of being done. There was absolutely no indication whether the process was actually hung and no apparent way to inquire. So I tried starting XCode and it worked. I assumed that all was in order and the progress bar just hadn't gotten updated.
Then I updated the OS, which required a restart. But when I tried to restart I got a modal dialog saying that I could not shut the machine down because XCode was still in the process of being installed, and shutting down now could "damage my machine". Worse, the button to dismiss this dialog was inactive. There was no way to get rid of it. I ended up having to do a hard reset.
And this is just one of many, many similar experiences. I've tried transferring data from one iPad to another, waited many hours, only to have the process fail. I've tried importing old iPhoto libraries to Photos, waited many hours, only to have the process fail. When these failures happen there is no indication of what went wrong or what I might be able to do about it. Just, "Sorry, an unexpected error occurred".
I also really despise the new UI look and feel. Once upon a time it was easy to tell what was clickable and what was editable and what was static because all of these elements had different standardized looks. Now everything looks the same. Many UI elements are hidden until you hover over them. Apple devices have become the exact opposite of the easy-to-use discoverable devices they started out as. Using an Apple device today feels more like an old-style adventure game, complete with grues that randomly jump out and kill you for no apparent reason.
But other than that, yeah, Apple devices are great.
To be honest, the current UI look-and-feel hasn't bothered me at all. I can't recall ever being confused by it (with one exception: iPad multitasking). Perhaps I've simply internalized it to such a degree that I accept it, warts and all, without thinking about it critically. But it's difficult for me to be too upset by a UI that really has "just worked" for me.
As long as my customized keyboard shortcuts still work, I'll be happy, I guess.
I also haven't experienced the software stability issues that you point out, though I have no doubt this is because I rarely do things like transfer data from one device to another (though when I have done so it's worked well enough). YMM(and does)V.
> I'll see your M1 and raise you a trash-can Mac Pro, and the fact that anything other than a Mac Pro can't be upgraded.
The trash can Mac Pro was a mistake, though at least it's one they eventually remedied. Their recent lineup has been almost universally praised, except for cost and (as you point out) upgradeability. I'm not too bent out of shape about upgradeability because I've never tried to upgrade a laptop, but I see the annoyance.
I'll just add that my complaint about inability to upgrade does not just apply to laptops. It's the whole product line (other than the Pro) including the Mini and the iMac. If I have an iMac and I need more RAM, I have to throw out a perfectly good SSD, processor, and display. There is just no excuse for that. I have a NUC that is essentially a hardware equivalent of a (pre-M1) Mini. The NUC is both smaller than a Mini and upgradable so I know it's possible.
There is no excuse because “excuses” are not germane to making trade offs. Apple chose to not make devices easily upgradable because it enabled them to be amazing in other dimensions (sturdiness, manufacturing efficiency, design, aesthetics, plus most users don’t give a flying fuck about upgrading)
Why would you need an excuse for defining your own products your way?
Based on the dimensions you feel are important and are visible to you. That is only one perspective on the elephant.
If you built that machine, and you made decisions that were not necessary tradeoffs AND these decisions went against your values, you would need an excuse. Apple is not you, and they do not need any excuses - they have a different set of values and built to those values.
Those values are what the market, aka other people, care about.
Oh god, don’t get me started. Not a single thing in any field of technology puts me straight into confused-grandma-mode as quickly and thoroughly as accidentally going into multitasking mode on the iPad. Oh god how do I close the floating safari window I accidentally opened? Why does swiping it off the screen do nothing? Oh god now there’s a weird paddle thing on the right side, and now it’s… gone? Is that window just there running forever now? Or I drag it to the left and now… oh god now it’s in split view. How do I go back? I move the vertical bar all the way to the side and now I have two safari windows, but I can only see them for a brief period when I cmd-tab… somebody please help me oh god.
Granted, it’s a little better each release, and used to be so much worse, but it’s still ungodly awful and impossible for me to figure out. I wish I could just disable it outright.
At this point I would never do a macOS update unless I'm forced to do so for security purposes. I can't even begin to fathom why anyone installs the beta and does free QA for Apple.
I get the impression everyone at Cupertino works with only Apple Cinema displays and a lifetime supply of insanely priced Apple hardware; and no one bothers to test out compatibility with third-party devices at all.
Everybody was surprised by that because they've so rarely admitted that they were wrong. It took Jony Ive's departure for it to happen.
But Apple will stick with a product and keep on improving it generation after generation until it is excellent. It’s rare to see them go all into something then give up to chase the next shiny project like Google does.
Throwing something out there is fine when it’s a magic website that answers your questions. When it’s, say, a half-baked messaging app none of your friends use, not so much.
Apple Watch
AirPods
M1 Chip
Services (Apple TV+, Apple Pay, Music, Fitness, iCloud etc).
I include iCloud for services likeHide My Email and Private Relay.
They do this all while maintaining a consistent release cycle of upgraded versions of their hardware (new iphones, macs etc).
Also, everything in the list above has been developed under Tim Cook which is also impressive. He's been able to maintain Apple's ability to expand into new products and services.
Their scale is so immense that "flops" means "not a breakout success that resulted in a massive instantaneous increase to their bottom line". It also means the pressure is on them to have everything right (from the HW side) from the initial launch in terms of volume, build quality, reliability, & value add or they will have a meaningful setback to an expensive proposition (no room for exploring with smaller-scale things which is where competitors should start - Oura for example).
Not everything Apple does is a success, but they have gotten it more right far more often than wrong. The M1 chip affects also their entire existing computer line. AirPods work beautifully across iphones, macs, and ipads. Apple watch integrates flawlessly with my iphone (answer calls, play pause etc). These are accessory products that reinforce the main ones which they continue to upgrade beautifully every year.
They are able to balance both (Cool New Thing and upgrade cycles) and through it all, keep their product list to a relatively small number of items/skus. Compared to google who offers so many additional services and applications.
a Cool New Thing
> touchbars without escape keys,
a Cool New Thing
> HomePod
a Cool New Thing
Cool New Thing was not distracting from these things.
> Polish and Attention To Detail
gets harped on at Apple because they are so much better than everything else (and charge $$$ for it), that customers and opponents don't tolerate mistakes. Maybe being perfect is actually, really too hard to reach?
But seriously, I remember reading on here a comment from a previous Apple employee that all of their products are designed with the primary goal of looking good in a keynote presentation, which makes sense for their image, but results in underdeveloped products that "disappear" after a few years.
It's why the only business I do with google now is in places where they essentially don't have competition, and only when I absolutely have to.
The person who is really good and really effective at fixing user issues, first of all can't scale past a certain point, but second of all, likely doesn't have the the experience to design and shepherd the data storage system that also manages permissions across nested groups efficiently (one of these is what we'd expect of a solid L4, the other is https://research.google/pubs/pub48190/).
You're asking for title inflation. Is that really what you want? What you really want is a different role, "maintenance eng" who can get paid more for doing the same work they were doing yesterday, and who needs to reinterview for SWE roles, because its very quickly obvious that a principal maintenance eng and a principal eng do very different things!
Building half working shiny things is bad for the company, and erodes user trust.
Improving the reliability of a system (SRE's ultimate responsibility) is deeply technically challenging work of its own, and one can encounter deeply challenging problems.
"Maintenance" often is actual hard feature work. But when your org or company has a culture of thinking of maintenance as some low-level job, you get a culture like Google's.
Or, if they are both adding new features and maintaining them, then that could merit a promotion too. They are still doing innovative work, and they are maintaining it and fixing it.
You're asking for feature bloat. If the only way of winning is getting new stuff done, new stuff will be done regardless of the benefit or cost to the company.
That does sound like Google alright, though.
Treading water should not get you promoted. That doesn't make sense.
I spent a few weeks just refactoring 6k lines of code into +- 300 lines on my current job.
If my company was run by you, the best course for me woould have been leaving that mess around. Which would have led to either the same refactoring under far more stressful time constraints, or even more shit code by applying a band-aid into the old code (this code makes us some serious money, and an unexpected third party change would have broken it in such a way that would be seriously hard to fix with the old code).
Also, there are loads of features that were far easier to implement after the refactoring.
Maintenance job isn't coasting around. It has a multiplicative effect on anyone who works in the system. It needs to be done, if you want the org to not slow down to a snail pace - and when someone leaves a mess, it isn't even neccessarily easier than pumping new features since you have to figure out all observable behaviours from messy stuff.
If there's no incentive to getting your hands dirty, no one will want to get their hands dirty. People will fight to not do neccessary jobs if the only way of advancing their career is avoiding those jobs.
Congratulations, you have demonstrated the value and made it easier to do something. As someone who has gotten promoted 2 times (and soon to be 3) primarily off of tech debt reduction and infrastructural improvements that don't themselves do anything, but drive future productivity, of course I think this is valuable. This kind of thing is literally the only work I do.
Now yes, there's a point beyond which only doing that work won't get you promoted, but that point is L5 where you're making 350K/year, and you can continue to do some of that work and get promoted further, you just likely have to
1. Get other people to also do that work 2. Do other work that acts at a larger scale
If you're actively adding new features to a service, you aren't doing maintenance. You're launching new things, and people get promoted by launching new things all the time. And people get promoted for making it easier to launch to features all the time.
>[work that will] drive future productivity, of course I think this is valuable
These 2 aren't compatible. Seems like you've walked back on the former from this last reply.
Like there is always groundwork that has to be done as part of the new thing, and doing that work is part of getting new stuff done. If getting new stuff done is the end goal, "getting new stuff done 5% faster" will obviously get new stuff done (and benefit the company).
I know a few of these people who have been on the same product at Google for a decade and they generally cap out at L6, which is staff engineer.
L7 engineers are typically careerist and have larger a scope, focusing on higher level cross team collaborations. Some L6s are like this but there are plenty of them that are just chilling
This is the real problem, but people typically underestimate difficulty of correctly identifying "useful" problems at scale. Fixing a bug is nice, but correctly prioritizing bugs worth fixing is harder than said because most cases relevant engineers have limited contexts on UX and PM also has limited contexts on its difficulty. I don't deny that big techs have a bias toward solving "interesting" problems, but in many cases seemingly simple bugs are not that really easy to solve while not making any dent on business.
I work at a big tech company and see this all the time. Bugs that clearly exist and are impacting users, but they're hard to solve and have no or very little business impact. It doesn't really make sense to work on them, but it's kind of sad they just get left :/.
Playing the devil's advocate here, but shouldn't one position in the technical career ladder be correlated with technical expertise? Furthermore, technical ability is something that the employee has some control over: whereas impact to the business has more external factors.
The incentive problem to align people with the needs of the users is difficult. I imagine the best way to handle that would be through bonuses/profit sharing for high impact work, whereas promotions focus on difficulty of work.
I would argue that attention to detail and polish are important technical abilities, and that focusing your technical advancement path solely on less tangible-to-the-user abilities will cause you, as a company, to make less compelling products.
If you significantly contribute to the design of a successful project - that's different. But then, you should be making the case that you solved the hard problem of improving the design, not just that you were a good developer on a successful project.
Actually I think you should be rewarded, just with money rather than a title.
Partially. Your position should be your technical expertise in things important to the company. There are a lot of technical skills you can learn that are not useful and so the time to learn them would be wasted at that company.
I think that's a fair point, but I'm not sure it changes things a lot for companies like Google.
The more a company relies on technical innovation to provide business value, the harder it is to predict what sort of things actually align with business value.
To put it simply - we don't know what hard problems need to be solved. Having a place where really smart people have the autonomy to work on whatever they want is the best way to find out. This is the classic argument for funding basic research in the sciences.
This really isn't the classic argument for funding basic research.
All you're saying is that it's hard to know what will prove to be a useful tool, and that's really beside the point for figuring out what should be rewarded. Absolutely having a commanding understanding of a broad set of technical tools should be a career asset, but it should be a means to an end, not an end unto itself.
You don't need to know what hard problems need to be solved to address the original criticism here. You need to understand what problems the organization is currently focused on, and solve those problems with simplicity and efficiency, even if that doesn't allow someone to show off that they can solve the harder technical problems than anyone else. The reward systems in the company should reflect that, and if it does, I would expect that people who could solve the harder technical problems would be more likely to be rewarded than others, but their skills would be much more likely to be directed towards simplifying and improving the efficiency of the company's execution rather than having a bias towards the reverse.
Now, another important skill at more senior levels is being able to identify new problems deserve focus (i.e. figuring out what problems are useful to solve), so that should also be reflected in the company's reward systems as well, but that is still an orthogonal skill to "demonstrates they can solve the hardest problems".
Think of it like product managers: if you primarily reward your product managers for launching new features, pretty soon your company will be weighed down in operational overhead from trying to support a cornucopia of features, many of which aren't particularly well done, rather than having a streamlined operation that delivered products that excelled at delivering on the solution they most wanted.
It even came out during the Oracle trial that Google only made about $26 billion in profit from the inception of Android to 2016. Apple makes more from Google in mobile by being paid for it to be the default search engine ($12-$18 billion a year) than Google makes from Android.
Is that true of other ad-tech driven companies as well? Companies like Meta and Twitter.
Companies like Amazon, Apple, and Microsoft are used to charging users directly for some good or service. It may be that they are just better positioned to establish those other revenue streams.
Facebook is also starting to see the issue with being a one trick pony.
But as for as Google, how many failed “other bets” have they been throwing money at since they were founded?
Google was founded in 1998. About the same time that Apple was close to bankruptcy.
One year they introduced three messaging platforms. How many failed first party phone initiatives have they had including buying Motorola?
Not to mention Google Fiber that left city streets ruined with “micro trenching” (https://arstechnica.com/information-technology/2019/02/googl...)
Since then, Apple has grown the Mac business, iPhone, iPad, “wearables”, and has a growing services business.
Microsoft built Azure, Xbox and pivoted with Office365.
Amazon (disclaimer I work at AWS), built AWS.
Google has a lot of smart people. But not a good business development strategy.
> "When you're walking around the neighborhood, [the lines are] popping up out of the road all over the place," resident Larry Coomes said at the time. "People are tripping over it."
This is the most obviously Google thing I've read ever. Half-ass a job and then saying "screw it" and leaving because it's too difficult? Name another company that would do this. Not even Spectrum is this incompetent. They have the attention span of a stoned teenager. Their Toronto Sidewalk Labs also comes to mind. Probably for the best they pulled the plug early on that one. Imagine parts of your city just stop functioning because some private company got bored one day and left.
There's also the issue of conflating the incentive/reward schemes with the need for roles to be performed. Being good at inverting binary trees won't make you a good manager but when the manager role carries money and prestige then it's the hammer you use to reward the shape rotators.
It's navel gazing until it turns into the next big money maker.
> Being good at inverting binary trees won't make you a good manager but when the manager role carries money and prestige then it's the hammer you use to reward the shape rotators.
Nitpick, but I was focusing on the non-manager track.
> Furthermore, technical ability is something that the employee has some control over: whereas impact to the business has more external factor
Rewarding someone for their skills in isolation makes no sense. The outcome is what matters.
For instance, if they promoted people for working hard, then everyone would work hard and we (high level management at tech companies) cant just promote everyone. so they make it arbitrarily hard, such as at Google "only promote people who solve hard problems". I think most tech companies will have some flavor of that, like at Amazon "work on projects that have cross team company impact".
Its all about trying to -not- promote people fokes, which ironically creates this promotion driven culture. After all, we are mostly college grads, and a lot of us are from the top schools (not even the majority, just a lot).
It's partly that, but Google's counter has always been this refrain of "we are a data-driven company". I guess that is better than completely subjective metrics, in some respects, but it introduces another bias, which is focusing on things that can be measured.
I saw a lot of successful promo cases that were based on pushing metrics. That just rewards quantifiable things, and disadvantages unquantifiable things. Worse, it makes people introduce bullshit measures and game them. It's pretty much impossible to measure long term impact, but nevertheless, impact[1] was one of the main three drivers.
[1] Leadership, difficulty, impact are the three main components of a succesful packet, especially at L6 and above.
Being "data focused" is probably a Good Thing in a very general sense, but there are real dangers that come with that. For example, there's a form of "data myopia" you can develop, which is best expressed by the old saw "data and optimization can help you get better at doing $SOMETHING, but don't tell you if you're doing the right $SOMETHING in the first place."
I saw a lot of successful promo cases that were based on pushing metrics. That just rewards quantifiable things, and disadvantages unquantifiable things. Worse, it makes people introduce bullshit measures and game them.
And of course there's Goodhart's Law[1] which leads to situations where trying to be "data driven" actually makes things worse when people start trying to "game" the metrics.
Not saying this is the best thing, but it can get much, much worse at other places. I started my career at Accenture (then, Andersen Consulting). People go promoted for either sales (SrManagers or higher) or controlling issues (Managers and below.) Note, the aim was to control issues (documenting, writing up mitigation plans, briefing clients, deploying fixes, etc.) -- THE AIM WAS NOT TO PREVENT ISSUES. So code quality didnt get you promoted.
Several years in, a group of individuals passed up for promotion realized this all-together and literally started turning a blind eye to minor bugs, which eventually passed into PROD. Then they would solve them (which is what Management wanted.) Shockingly they got kudos for controlling issues. Many got promoted.
Set the wrong incentives, get the wrong behaviors.
I don't mean this as a slight at your comment - rather at the shockingness of the reality that your comment (really) needed to be said - but isn't this blatantly implied by the meaning of the word 'incentive'?? I'm astonished that people keep not realising this. The whole culture of OKRs/KPIs at startups feels like it's tempting this problem - I don't see why any but a very small number of companies should need to optimise metrics which are non-obvious. Having an OKR/KPI which one needs to deliberately decide on feels like a very pungent 'bad smell' of an XY problem.
So you're saying that the incentives misalignment at Google leads to engineers who aren't self-deprecating, and products which are self-deprecating?
Google is absolutely bonkers when it comes to promotions. At every opportunity to provide feedback towards upper management, I had one consistent refrain:
Everyone needs to chill the f### out.
The stakes (seem) too high. The amount of time invested is too high. The amount of discussion, rehashing, tinkering, rejiggering, and calibration is just too high. It's off the charts how obsessed seemingly everyone is about it. It's off the charts how much company time was blown on it and psychological stress people were subjected to. IMHO, the process at Google doesn't need to be readjusted or tinkered with, but somehow de-escalated; like it needs to not be such a huge f'ing deal.
One positive development ~5 years ago is that promotion to levels L5 and below were mostly moved out of the IC's hands and into their manager's. Despite being a manager at the time (and creating more work for me), I thought this was great. It reduced the bias in the system from ICs writing up their own packets, which disadvantaged poor writers and poor self-promoters less. It got employees thinking less about promotion, since there was less they could control or do. There were other biases that crept up, but it helps the psychology of day-to-day life to not be stressing over the frantic ladder climb.
No offense intended, but in your comment it comes off a bit selfish and bears the hallmarks of a classic archetype of terrible manager. I'd never willingly work for you. Being in management isn't for everyone, it's a people-focused domain. The whole job is about supporting the team and setting things up for successful outcomes.
There is nothing wrong with being an individual contributor. If your organization limits how far ICs can go, take this as a sign of toxicity and consider finding a higher quality organization to join.
But, just to provide some context you're missing, I had someone promoted the last promo cycle without any mention of features or new products in her packet. It was entirely support work, tackling tech debt, etc, all of which was stuff she personally was passionate about, and which had led to her being passed over for promotion -for years- prior to my managing the team.
The incentive I'm working to create is "document your successes so we can ensure they're visible", not "focus on work that is by its nature highly visible", and, yes, definitely not "ignore the visibility of your work and rely entirely on your manager instead". It's no different than "maintain a brag sheet", except that I want them to be aware how that brag sheet feeds into the actual promo packet, and provides a common place for us to connect and discuss. If that means you'd never work for me...okay.
I'd be curious to understand what exactly you feel my points were, and why you think differently. I can't help but feel like I must be missing something or misunderstanding your comment.
Fortunately we're unlikely to ever collide in real life :). Again, I mean no disrespect. Genuinely would like to understand your point and see how it maps to higher overall team health and better output.
>> moving the burden to the ICs means they will be incentivized to focus on Promo Packet instead of real work
Such has not been the case. In fact, I've had to repeatedly remind people to add things to their promo packet. The point is that documenting successes as they happen means they get to own their own visibility; I've walked into multiple teams where people chafed at being passed over, because their past managers didn't have suitable visibility on their successes, and so while the IC was like "I have achieved all these amazing things!", the manager was like "I can't make a strong enough case for them", and the net result was no promotion and poor morale. To fix that, I could either insert myself into everything to know who is doing what (slowing everything down, taking away their feelings of autonomy, and taking up all my time in doing so), and still risk missing things, or I can ask individuals to maintain a brag sheet that I can then rework into something to submit at promo time. Every task has value on a promo packet now, not just those leadership cares about/remembers, and in practice it has meant people take work that grows and challenges them, rather than just work that has innately high visibility.
>> your comment you come off a bit selfish and bear the hallmarks of a classic archetype of terrible manager
I mean, you're entitled to your own read on it, but in my book a terrible manager is someone who insists on inserting themselves into every little thing rather than trusting their team, giving them autonomy, and instead spending their time looking for ways for the team to function better, while clearing out people/organization/process obstacles. I've had multiple people say I'm the best manager they've ever had, as well as one person memorably fighting back tears when I told them I'd gotten them promoted (with a packet they filled out, then I reworked, as mentioned above) after years of being passed over for doing work that wasn't high visibility. You mean no disrespect/no offense you say, but that's a hell of a follow up, that I 'come off as selfish and bear the hallmarks of a class archetype of a terrible manager'. I'm not sure how to say this politely, but if you want people to engage with you, you really need to learn how to not come across as offensive; just saying you don't mean to be doesn't really cut it.
>> The whole job is about supporting the team and setting things up for successful outcomes. There is nothing wrong with being an individual contributor. If your organization limits how far ICs can go, take this as a sign of toxicity and consider finding a higher quality organization to join.
All of this feels very much a non-sequitor; I have no idea what I said that you think this runs counter to (since I agree with every word of it), and so I disagree with the implication that this is a relevant argument.
The best solution I found is the one you described: get people in the habit of incrementally building a case for how they contribute. Some people bought into this strategy and they benefited bc I became way more effective in advocating for them, not just at set times, but always. Some didn't, and they were constantly dis-satisfied with the company, and with me. I never was able to solve the issue for them before I resigned.
(Also, fwiw, it's a non sequitur - I sat in Latin classes for 8 years and I still can't remember the conjugations well enough to explain why, but, long story short, it's a verb and so it doesn't obey the familiar rules of (even Latinate) English noun endings.)
((Also, that was a very classy and magnanimous response to a – speaking of the comment as distinct from its author – very classless and pusillanimous comment. Chapeau to you. I can't say I'd have managed the same myself.))
You've persuaded me. You don't sound bad at all, and I'm confident I'd actually like working with you, and I apologize for jumping to conclusions prematurely.
Note to self: Ask better questions first.
Best wishes~
I can't speak to how particular patterns have played out at Google, I just wanted originally to respond that the advice being given runs counter to my own lived experience at other places. Not to undermine the original post, just to say it may not apply universally.
So the GP comes on here, sharing a perfectly nice and candid opinion, and our friend sees the chance of a lifetime ("terrible manager", "would never work under you", "management isn't for everyone", "find a higher-quality organisation", etc). Simples.
Thanks for the feedback.
Thats a benefit to having ICs run their promo process.
Generally, I think freedom to have anyone drive an ICs promo process is better than forcing it to be one group or another. The IC might be best for it, or the manager might.
Regardless of who it is, the IC can work at gaming the system, that's just the nature of systems and abuse
I guess you could switch the process to "promo after N years of not being fired at your current level" but that seems even worse.
Here's a blog post explaining their approach:
https://www.daily.co/blog/rethinking-levels-promotions-and-s...
Maybe it's not possible to switch from a cutthroat promotion-oriented environment to this, but it's worth thinking about for anyone building up a software engineering workplace.
I guess the main question that comes to mind is “why would a strong-performing, early-in-career engineer want to join?”
In other words, aren’t you capping junior hires to come from the bottom ~60%?
You are going to have a distribution of high and low performers at all levels of experience. If you pay all the senior people the same, you have less money to pay your high performers. And maybe they go get that pay from elsewhere.
There's a difference between having 20 years of experience and one year of experience 20 times.
People are motivated by more than money. Mastery, autonomy, and purpose come to mind.
I don't know if it's always true for people, but my performance goes up and down quite a lot depending on how much I believe in the group mission and the group dynamic. I'll occasionally stay late working for some abstract metric that might impact 10% of my pay, but I'll stay up 48 hours working fanatically to make something work for my friends and co-workers and the dream of success in changing the world that the group is striving for together.
And if that filters out the people that only do software for a princely salary, leaving the people motivated to transform the world for the better, so much the better. Greedy people are a bit demotivating to work with.
This is an awful idea.
Rewarding individuals based on the group outcome is a great way to drive rockstars away from the team. Why would any high performer want to anchor themselves to lower performing team members? That is a surefire way to get a lower bonus. Why would I volunteer to take on a crummy or particularly hard task when I can just hope someone else does it and I reap the rewards?
> I don't know if it's always true for people, but my performance goes up and down quite a lot depending on how much I believe in the group mission and the group dynamic. I'll occasionally stay late working for some abstract metric that might impact 10% of my pay, but I'll stay up 48 hours working fanatically to make something work for my friends and co-workers and the dream of success in changing the world that the group is striving for together.
Peoples' performance changes for every reason under the sun from "I decided to stay out late and drink on a Wednesday" to "my boss is an asshole" to "I just don't feel like working today". Personally, I want control over my own destiny and my own bonus. I don't want to feel obligated to push myself harder for someone else's bonus. And just the same, I don't want someone else's shortcomings to tank my bonus.
The actual answer here is to make sure that your review process accounts for how individuals impact the group dynamic.
> And if that filters out the people that only do software for a princely salary, leaving the people motivated to transform the world for the better, so much the better. Greedy people are a bit demotivating to work with.
This is a super ignorant take.
Any person who has a family and works to support them wants to provide the best they can for their family. That's not greed. Kids are fucking expensive by themselves, let alone trying to send them to college.
I wouldn't inherently mind explicitly tieing individual performance to (small) team level performance. In practice this often happens when management looks at performance holistically anyway.
When you are on a team that is committed to the success of a project or a real thing in the world, rather than hoping for a bonus, you help everyone on the team at each step of the process. If you enjoy the work you are doing, you'll enjoy the hard tasks; even the tedious tasks take on a certain type of satisfaction in a good job.
A team where people are sitting around for others to take action is not a good team or a good job. I encourage you to raise your standards.
>Rewarding individuals based on the group outcome is a great way to drive rockstars away from the team.
I don't care how many rockstars are on a team, I care if the team is transforming the world into a better place, is helping the company and humanity make the transition to "everything is software and networked" a thrilling transition. If someone is slower mentally but has a vision of a better world that the team is making happen, then they will probably move the team towards delivering on that vision than some smart but Blind obsessed person that wants the "FIRE" crap. Also, valuing money over all means your team will fall into traps like accounting irregularities more easily - lacking a sense of values outside of economic gain means the team will fall into things like the Enron mess or https://www.washingtonpost.com/archive/business/2005/03/22/t... or the various shady ad selling schemes or privacy selling schemes so common these days.
I've worked with teams where most people love the work and love the outcome of the work on the world, and I've worked where people are beset with visions of becoming some sort of rich software engineering lord, and it's a lot more fun in the former case.
People that want families and is supporting them are not doing software only for a princely salary. The thing that's awesome about a software career and families is that the demand for engineers means you can afford to insist on the flexibility and time-off needed by the family, and still get a livable salary.
I think it is primarily people who find a strong sense of identity in work and careers that think this way. For many, their passions lie outside of work and they do indeed want to maximize their value and time so that they can focus on things they care about.
So to say filtering out "greedy people" is quite demeaning IMO.
But consider that Daily is fully remote, hires globally paying SV-level salaries, doesn't do whiteboard torture interviews, and has an interesting product space where you can make a visible impact. I'd imagine this combination would be appealing to early-career people, especially if they don't live in a FAANG hiring market or aren't set on acquiring that kind of résumé.
Why do you think you need the top 40%?
> The way we’ve set up our levels, people in the early stages of their careers can get bigger titles and raises more quickly at other orgs than they can at Daily. This will likely be a deterrent to some early-stage candidates, but we are ok with that for now. While we are excited to bring in early-career people once we have the structure to support them, we aren’t there yet, and probably won’t be for a while. We don’t want to make the mistake of hiring high-potential people we then under-serve, especially if they’re from groups typically excluded from tech.
At scale it encourages coasting and not doing much until your manager moves on for whatever reason and you have a window into moving up. It also means the Peter principle is in competition with getting promoted while not being very competent.
I think there are specific fields and job where it’s a decent approach, but not at scale and not with salaries tied to promotions.
Ex googler here, and when I was there 4 years ago this was true of L3 and L4. My entire team was L3's and L4's. We spent literally all of our time on projects with no meaningful impact on the company, but that made for promo packets.
6 engineers focused on rewriting the form to input credit cards on YouTube for 3 years. Completely insane.
Upside was that many of us just said screw it and focused on the work. Downside was that many said screw it and went to other companies where they could at least grok the ladder.
The saddest part about the ladder is that it's not even fun. In academia, our ladder has fun names, and on each level you get to dress up in a different outfit that gets more elaborate the higher you climb on the ladder, which is basically the driving concept behind every MMO ever made, so that's cool. The whole promotion culminates in a parade and a blessing from the church elders, I mean University leadership.
At Google, they creatively dubbed the levels "L1-L10", and there's no outfit or parades. I assume they throw you a party or something at least? With cake?
jk
If you need to ask, promo parties were suspended with the lockdown, but I guess they are gonna come back in style
That’s very inaccurate. Some of us use Ritalin instead.
Can you explain how this gets them promos? I feel like a promo-focused culture would result in 6 engineers creating a new server-side rendering framework so that they can improve credit card input rendering speed - possibly equally useless, but much more work.
at the scale of Google I'm not sure I would consider that useless. But it would definitely feel useless.
We didn't create our own, but we did migrate our codebase to a new server-side rendering framework twice in my time there.
Also, nobody on our team ever got promoted.
L3: $192,064
L4: $268,758
L5: $358,423
L6: $502,465 (!)
There's a number of other ways of varying risk/time/shadiness tradeoffs. Start VC fund, have $1B exit, cash out $70M carry in 7 years. Start hedge fund, raise $300M, earn 12% returns for 7 years, cash out $70M carry on $360M profits. Find a DeFi exploit, hack Ethereum, earn $300M in a 10 seconds, hope the Feds don't catch you. Lever up on real estate, put 3.5% down on 100 $300K properties, turn $1M into $20M as they've gone up to $500K over the past year.
The worst case when you fail at a start up is years of lost time, money and health. And starting way behind others, should you(now that you are out of money, wouldn't you?) start a a job again.
The term mediocre is loosely used there, pretty much every one who starts a company fails, and thereby ends up being mediocre compared to a person working a job.
Salaried jobs have a better path to financial success than a start up, for nearly all the people.
Is this juvenile? https://www.reddit.com/r/ProgrammerHumor/comments/ud3vhp/pro...
A bit of this helps. https://www.youtube.com/watch?v=d3hAnAnJwyU
At the end of 2008 I had to add 3 more zero's so a trader could be paid their bonus.
Some L4s can make more than L6s.
What is bonkers is that you can care about levels so much - but pay is wildly disconnected.
What's the point behind putting all this effort into it when at the end of the day it means almost nothing?
At a company like Facebook, the difference between L4 and L6 is over $100k in salary, and $80k in stock (difference in 4 year refresh grant of $325k). $180k a year difference isn't almost nothing.
If there's a ~$180k difference between the average L6 and the average L4, and the bands are that wide - you have a lot of L4s making more than L6s.
If an L4 is "Exceeding Expectations" enough to get huge grants and bonuses, and an L4 is "Needing Improvement" enough to get terrible grants and bonuses... Why is the L4 an L4 and the L6 an L6?
Additionally, everyone has different (with big swings) of how much of their compensation comes from stock vs salary & bonus. When appreciation comes into play - this has large implications.
Additionally, people working between 2-4 years often make substantially more money than anyone else at the company in their current level.
Whereas at early-stage startups, the only way to really make a lot of money is to grow the pie, which usually involves serving customers better.
Now that there are so many well-funded startups (https://topstartups.io/) there are more paths to escape the promo BS and still make a great living
That's probably where Bay Area housing inflation has an effect - houses that used to be affordable to "normal" engineers are now only affordable to staff engineers. Tech companies are hiring more and more people scrambling for a fixed supply of housing. Of course it's dystopian!
>I guess you could switch the process to "promo after N years of not being fired at your current level" but that seems even worse.
Though, If you do this you will have a culture where people are scared all the time and don't feel any job security.
I agree that this seems positive, but you lose some things with this sort of change as well. ICs often have knowledge of their own performance that their managers don't, even when you're having highly effective 1-on-1s. You definitely don't want engineers spending huge amounts of time and energy selling themselves, but you probably do want them to at least a little bit!
And if people are doing work in an engineering organization that isn't backed by commits to some durable and versioned system, that is a huge red flag. They should probably not get promotions till they automate and make their work flow use version control. Even in the 90s this was true (the "install the OS on the new hardware" team would have things more automated than many "application dev" teams). Now in 2020s, the whole AZ should be in git and the change implementation procedure should be a variation on a big button that does "push master to n% of live; wait for monitor/validate scripts roll back or push more; repeat"
There should be some way for a manager to see what someone has accomplished by the artefacts they have left on the company systems.
It could be a blessing and a curse. Sometimes managers are rotated right before the next round of appraisals, and the new manager knows nothing about you or your contributions.
This turns into your annual (sometimes 6 monthly) review packet.
In engineering, you and/or your manager can decide to put you up for promotion.
In this case, your review turns into a "promo packet", and it is sent to a promotion committee who decides whether you are clearly operating at the next level.
A critical point is that your peer reviewers can see a 'P' next to your feedback request, so they know if you are up for promotion. In theory, promo feedback should match normal review feedback, but in practice promo feedback follows game theory dynamics.
and replaced it with manager bias.
I’ve seen some phds with 3-4 years of experience being hired at L4 (starting phd level), some masters with 3-4 years of experience, sometimes even leading teams at previous companies at L3 and some experienced managers with 10 years of experience at L4.
Why do these people accept offers? Because although their level is lower, their comp is adjusted to the appropriate (higher end) of the level.
What you notice at Google is that projects and work are scoped to your level so that you can justify your promotion easily. So a PhD with 4 years of experience who’s completely capable of leading a project has to act as an individual contributor fulfilling others’ plans until they get promoted.
There are some exceptions but most people and teams in Google operate as though someone’s level defines their scope of work. Managers/TLs will often talk about how many LXs they have on the project and who is responsible for what kind of work.
So you have a ton of highly competent people hoping that their promotion will finally allow them to play at their true level and contribute in a way that will be rewarded.
A ton of such deserving candidates are passed over during promotion and this is very demoralizing. They still get paid handsomely so they don’t leave and continue to coast while looking for a better alternative (which is hard to come by).
Promos at Google are primarily about self-actualization. The comp is what prevents them from quitting and joining a startup.
I worked at Google for a while. I started there at 50% more than my previous compensation, but two steps down in terms of responsibility. After a couple of years of my manager saying that I'd be ready to apply for promo when the current project finished and watching projects fly by, I started shopping my resume around.
I worked at Google for 10 years and didn't have more than a few minutes of job satisfaction and jumped from team to team hoping to eventually find a place where I could fit in and maybe get promotion. But I never went for promotion ever. The whole process looked meant to demoralize. I was clearly not a "culture fit" -- as they call it -- but somehow I soldiered on and nobody cared.
Until eventually, after 10 years of L4, it became clear me I had wasted 10 years of potential career progression because the money was (at least) twice as good as what I would have gotten in a smaller local company where I would have more impact and creative input. The rest of the industry was off doing other stuff, and my friends moving into lead and management jobs, while I putzed around moving protobufs (with just the right comments, indentation and stylistic flourishes) around Google's walled garden. Any interesting work was snatched up by others faster than you could get it.
Promotion level at Google is only loosely corelated with programming or engineering talent. It's a measure of political skill and motivation, and your ability or desire to thrive in a large organization.
Don't get me wrong, the money was excellent and my priority was feeding my family. But it wasn't "retire early" money, not without a lot of severe financial discipline and restraint anyways.
Google got lucky 15 years ago and managed to turn on an absolutely massive firehose of money in ads. Now Google hoovers up as much talent as they can in hopes that they'll strike it lucky and turn on a second or third revenue faucet. But spoiler alert: they never will. So they have to settle for attempting to starve potential competition of talent.
Plus, at Google in particular, you have to make them aware of your OSS work and go through the motions of getting the licensing set up so either they own it or you get permission.
Google and other FAANGs pay very well, so it's not surprising they can hire PhDs but I sometimes wonder about the negative effects of vacuuming up so many research level people and having them do very mundane work.
Eventually you are left with an over the top expectation of what a promotion case looks like. As an engineer at a FAANG I recently moved out of a team where I had built a range of services and was close to PE, because I found that I was closing in on a point in my career where I was spending ~80% of my time on promotion oriented activity... which in turn means politics.
Everyone else is eating the results of all that money-making in the many many cafes.
Actually, this is only true for SWEs. The money making at Google really runs on the insane hard work of its SREs and its data centre staff.
Recently we had a chat with a lead from another team. Their product has a lot of similarities with ours so we sync up every now and then to bounce ideas off each other. They recently release a big change that we thought didn't provide much value, so we asked him about it.
His candid answer was "you know how it works, we have a service running in production, so we need to make changes". This sounds simple, but the implications are deep. Unlike individual engineers, moving entire teams around is difficult. If you have a team, you need to "justify" their existence. Is not enough to keep the lights on or slowly polish the product, you need grand roadmaps to keep yourself busy the next year or two. Ideally you want to justify that you need extra headcount to keep the product expanding.
We’re propping up the wealth of a generation that has no idea how anything works, but they got there first so of course they are now the de facto deciders of our agency.
Many a study have been attempted to quantify what character qualities or technologies boost productivity. Their model becomes so nebulous no reasonable conclusions can be made.
But now of course computers learning helps us untangle that web and low and behold the same economic winners emerged! Wow!
Like, it's not good enough to have a quality product that generates a sustainable revenue stream year after year. You have to "grow" because companies don't really do dividends anymore, they want a constant increase in stock prices, product be damned.
As an engineer, you want to be working on cool new features too! Very few folks will be content sitting on their laurels just fixing the occasional bug or adding a touch more polish to a product that's already "done"
If you setup a team to work that way, very soon you'll find that most of your engineers have left. Heck, the manager might get bored and leave too.
"Okay, that's fine," you might think "The product is still doing alright even without an owner. Higher level leadership should be fine with that"
Until the day comes when the service crashes unexpectedly, and you realize that no one left on the engineering team has enough context to debug the issue properly
Hello two week long outage
Examples: Heroku - https://twitter.com/GergelyOrosz/status/1520770263977271296 Atlassian - https://twitter.com/GergelyOrosz/status/1513605414029516806
We experience it first hand when one of our services got deprecated and we moved to a new org. The solution was literally to hire a new team in a low CoL country and hand over the service to them. Needless to say it was difficult to hire for those positions.
That doesn't sound like a large issue (but the details can completely change it). Maybe it was the right decision.
I honestly think people denigrate having at least some actual design work and requirements done upfront as being "too waterfall" and think doing it is a bad idea so we as an industry end up with not even the intentions of how a piece of code should work written down and no idea how stuff works once the original author moves on
They had one critical service in Erlang and the developer who coded it had left years ago and nobody knew the language so they wanted to rewrite it.
I was starting using Elixir back then and said I could maybe took that code over but they chose the other candidate ;)
A big part of it is that the executives decide what's making money for the company, and they'll focus on that. If you're scraping turds on the "rockstar" team in the "rockstar" org, you'll get showered with bonus money and RSUs. If you're scraping turds on a product that none of the VPs care about, you'll probably get screwed over. Some of the people in the non-"ninja"/"wizard"/"rockstar" orgs will do OK because they look like indispensable geniuses, and I think that's what a lot of this sentiment comes from.
I am curious - is this informed by your experience of having sampled every job in SV? Or perhaps a representative sample? Is it possible other people might be different than you and have a different perspective.
What a fucking joke of a comment.
I can't even conceive of what programming job wouldn't be describable as "grunt work" from the point of view of some hypothetical super-genius. Writing "new" code that just does the same thing as something you're tossing out, but with a different set of mistakes? Cutting-edge science work is mostly glue code between hardware and spreadsheets or databases. Cell phone firmware is mostly repurposing and updating the old firmware. Anything involving a GUI is going to be a massive time-sink getting the GUI to work the way the non-technical people using it want it to work.
How much time do you spend in any given year figuring out how to operate debuggers, find the right log files, narrow down some crash, etc?
Grunt implies a heirarchy and a job that anyone can do. It’s pejorative. There is work that I don’t enjoy doing but needs to be done well (cleaning a toilet). I appreciate those jobs even more than what I do!
My point is that you should try to shift to language of “work I don’t enjoy” rather than “work that is beneath such an exalted 10x programmer such as myself”. Because that’s how I interpreted your original comment.
The challenge for engineering management is how to provide metrics to measure your bus factor reduction efforts and the strength of your insurance prior to the emergency.
It is highly possible though that the new support team members are actually coasting up until the disaster so you didn't really have the insurance you thought you were paying for.
What usually happens is that after a year or two they forget, and the maintenance programmer jumps to a different fire, typically in a different company, because there is far less reward to keep improving the system than to stop it from being a raging fire.
When friends complain to me about Google killing projects, they act as if it's upper management making a decision to kill. And that is sometimes the case. But often it's just: nobody wanted to work on it anymore. And Google isn't the kind of "command and control" culture where you crack the whip and tell all your engineers that they're doing X and assign them. At Google they'll just leave your org and move to some other team, and you won't have the power to stop them.
Not saying that's a bad thing, but it has some bad outcomes occasionally.
If the world weren't so obsessed with differentiating pay, you would have people who are enthusiastic about a wider variety of things.
This. It generates the Bullshit Jobs that David Graeber talked about. As a middle manager or tech lead (Taskmaster) you hire people (Flunkies) to make yourself seem more important as well as for roles (Box Ticker) that you might not need but that any "important" project will retain. In the end, this generates duplicate effort and needless work that requires fixing (Duct-Tapers). The only one of the five Graeber categories not represented is the Goon, and that's because those get moved to MTV and fast tracked to the executive suite.
"The Goon" is the analyst from an investment firm who tells your directors and CEO how many of you are going to be fired to make him happy.
The other problem is that it becomes this game where nobody dares giving bad feedback to one another, because you know they could retaliate which could damage your chances to get a promotion. Everybody becomes "fake friend".
It seems that just about anything else devolves into an ontological mess of Byzantine proportions. At one stage in my career I was reporting to 4 different bosses in this weird interleaved hypercube topology. I spent most of my time giving status updates
There's a limit I guess, but sometimes having multiple people to report to can lead to checks and balances.
There's no inherent reason for management to be hierarchically superior. If you want productive relationships, you have to level the power dynamic more.
A corollary to this in my opinion is that if promotion is expected at some point, I think the business/organization/institution has a responsibility to try to facilitate people moving toward that through mentoring or at least clear expectations. If nothing else, it makes the expectations clear, which clarifies how those might be at odds with other goals such as what the blog poster is articulating.
It's complaining to managers/directors instead of talking to the person themselves (the recipient wont get to read your feedback for a couple months after). Even if you want to talk to a manager about some performance concerns, you should do that directly, instead of putting it in a record that sticks around for a persons whole employment
It's a bureaucracy game, and people who give bad feedback don't know how to play.
(I'm not endorsing the system at all, just rejecting the idea of it being retaliation-based. Anybody giving bad feedback doesn't understand what is going on)
All I ever got was stuff like "Joe writes excellent design documents! His code is always well tested. I always want Joe on my projects!" I'd write stuff like "Amy is extremely effective at solving problems with <blah> API's, and is a great communicator. She should do a brown bag session about her experience with <blah>." The reviews were all fluff. Some people wouldn't put in any effort at all, and write one liners. Seriously, one of my reviews was "Just keep on being Joe!" Thanks, but why bother?
The review process at most companies is a big waste of time and money.
Leave it up to the manager to interpret and read between the lines. At the end of the day, the better managers know it's all bullshit anyway.
This sort of BS review process is pervasive in the industry.
Raising up and increasing the productivity of your peers sounds like a good thing. I think I'm missing how this is a bad outcome due to a perverse incentive. Are you saying the value extracted from peers is not real value or that the focus on your raising your peers detracts from more important business goals?
In the common-case scenario, you figure out how to bribe / cajole / coerce them into putting time in on your project and don't really care about how things are going on their project, because we're all responsible engineers who can time-manage ourselves, right? So you get your promotion and they get screwed because the work they did to deliver on something valuable to the company isn't reflected in their OKRs.
It degenerates what should be a collective goal of accomplishing the company's objectives the best way possible into a slotting game of making sure you're always listed on paper as being on the right project, because your work won't have value if you applied it outside your bullpen.
It's this. Actually doing work is seen as simple and unworthy of a higher-level engineer.
Good engineers focused on problems (fixing complex bugs in distributed systems, adding fallbacks and failovers, improving the UI or performance of internal tools, etc) can add significant value to the company...but they won't be rewarded for it, because the perf process considers those to be simple, the domain of lower-level employees.
What the process _does_ reward is whitepapers, tech talks, daily updates, and delegation. It sometimes felt like the goal was to make every little change as noisy as possible: if you just fix something yourself, you get no points. If you plan it out, generate whitepapers, announce it, convince other people to work on it, send daily updates to every possible stakeholder and then a triumphant announcement, and then do a round of tech talks on every piece of it, you're a shoo-in for promo--whether on not the 'it' was actually important or valuable to the company.
Of course, people with those planning and communication skills are really valuable to a company. But somebody also has to do the work. Forcing _everybody_ to follow the one path to progress means a lot of noise. A lot of tech talks from people who have no real interest or talent for giving them, on topics that nobody is particularly interested in, just for the sake of a line on their promo packet. And a lot of effective engineers getting frustrated and quitting because they don't want to spend their days working on slide shows.
It feels to me like the people in charge of the perf process just tend to overemphasize their own strengths and skills. Kinda by definition, the people designing the system are going to be senior people who are interested in communication and process, so that's what they look for in others. If they were the kinds of people who were interested in identifying and solving particularly devious or consequential issues on their own (or as part of one of their peer's projects), they wouldn't be working on the promo process in the first place.
This is absolutely my experience at Google. If you want to move up quickly you have to write docs to convince people to work on your ideas.
> Forcing _everybody_ to follow the one path to progress means a lot of noise. A lot of tech talks from people who have no real interest or talent for giving them, on topics that nobody is particularly interested in, just for the sake of a line on their promo packet.
This doesn't really align with my experience. Most people I interact with at Google do not try to do this. They are happy being ICs at L4 or L5 doing their own thing. There is plenty of room to be an L5 or even L6 IC without constantly self promoting, it will just take you much longer to get there and you will never move past L6.
Well TBF, I was an SRE while at Google, so I worked with a whole bunch of other teams. And tech talks were considered a good way for SREs to familiarize themselves with partner teams' various systems. So my calendar had several weekly meetings for tech talks and other presentations...and they were usually pretty yawn-inducing. And at the same time, I felt a fair bit of pressure to prepare talks about my various projects and present them: it would help to spread my knowledge and (ahem) raise my visibility. But they weren't interesting projects, and I was not interested in making presentations about them (or in general).
If the problem is “this incentivizes engineers to make each other deliver more value”, that sounds like not a problem (and opens everyone up for increasing $X).
It’s a problem when you start to see your fellow employees as the competition instead of your actual competitors being the competition.
These are of course people, after all. Not robots.
It's good to have people who understand the difference between the prisoners' dilemma and the iterated prisoners' dilemma.
All founders/execs/early employees are easily aligned on compabt success. But how do you align incentive of later hires?
In order to reduce time spent on perf, you'd have to rely on a few people who knows an employee's work instead of a larger peer group and committee. The person entrusted with this decision (typically the manager) now wields tremendous amount of power over others. This leads to a different set of problems, like "B player hires C player", yes-man culture, ICs spending effort brown nosing instead of creating value, etc.
Building a culture is all about incentives, it's easy to identify and reward user/company impact when the team is small. But as number grows, it becomes harder to do that, and the declared core values gets ignored as the reward system departs from that.
i don't know what the answers are to manage that shift and avoid it going into the wrong direction.
I'll admit, I don't really have a good solution. My strategy has been to just stick to early-stage startups where everyone is aligned on company success. Would love to hear some more meaningful discussion of alternative systems for managing career ladders.
Give people some choices on leveling up -- maybe most people just want a bump to salary, maybe other people would like to gain more vacation, stock, half days Friday, a private office, a good parking spot, etc etc.
This happens anyway in Google's "objective" promo system. Your manager assigns your projects, gives you your non-promo performance ratings, sets direction for your team, they sit in the room with the promo committee, and their feedback is critical to the promo committee's decision. You need their help and support to get promoted. If they didn't have significant impact on your work, they're not a manager.
Ostensibly you can go try for promo even if your manager disagrees. I never had any evidence this worked for anyone and I have no idea how it would work. Sometimes borderline promo cases would go up for promo when their manager thought it was unlikely, and it would succeed. But if your manager doesn't think you should get promoted, they're going to tell the committee that, and I don't know what the promo committee would see that would cause them to overrule the manager.
The difference with Google is that: 1) you can give feedback to your manager, both anonymously and explicitly, and they'll affect their perf; and 2) your success, in terms of impact and promo are part of your managers success; 3) perf committee will challenge and can override your manager if the rating given seems too low/high given the evidence.
These forces while do not take power away from manager completely, they provide some checks and incentivize managers to respect and support their reports.
Of course, all these nice things come at a cost, that is perf becoming a somewhat transparent and heavy process that eats everyone's time and mental energy.
I agree that you're basically screwed, especially L3->L4, if your manager isn't actively counselling you on how to grow your career. You obviously don't have enough experience to do it on your own at that point, so you are at their whim. Even when you do have the experience, if you don't have a good working relationship with your manager, you're in trouble anywhere. It is ultimately going to be them or you, and you are easier to get rid of ("he took another offer" versus "everyone thinks your manager is a jerk, so we fired him, oh by the way in the meantime your career is on hold while we figure out what the fuck to do please keep showing up").
I don't know what the solution is. I've been at amazon, and the number of abandoned promo projects are insane. Microsoft has like 7 billion levels, maybe they have it right, you can promo someone without it meaning a whole lot, but it still gives them greater pay and a sense of progression.
Totally agreed.
One thing that killed my motivation in mega-corp(tm) is that your peers are, in reality, your competitors, despite the constant barrage of HR propaganda indoctrinating the opposite. Either directly or indirectly, you are incentivized to take high visibility projects for yourself, take credit for other people's work, and reinforce a narrative about yourself where you are better precisely than those around you.
As a result we ended up doing two things a lot:
1) over-engineering a feature that should be simple into something with architectural significance (e.g. a new set of services that could have just been a feature in an existing service)
2) de-prioritizing important things that were small in order to ensure everyone had a big project every quarter.
We ended up having to hire contractors to work on the small stuff because it was piling up and causing problems.
Ideally this gets people fired, not promoted. Google explicitly calls out "solutions to hard problems are easy to maintain" on its ladder, for example. People can fail to identify these cases, but the intention is to promote based on hard problems rather than complex solutions.
I've seen real bugs that bounce around for months, each time to someone who looks decides it isn't in their code and points to someone else: eventually we tell one engineer to solve it an a few weeks latter she traces it down through many different layers to figure it out. I've seen other cases where a great engineer spent weeks fixing bugs only slightly more complex a misspelling. In the end what counts it the quality of the product not the effort put into it.
Two of these are a signal that perhaps you shouldn't be promoted. The third is a signal that you should leave.
In a less generic sense, I think that there are almost always ways to improve incentive structures and encourage people to focus on specific problems that don't directly involve SVPs. Your manager has some control over your rating. If you can argue that "customer happiness" should be a priority and as part of that, end to end bug triage time will impact ratings, you have successfully created an incentive structure that will reward that, without involving anyone who can modify compensation structure.
Is the issue that Google, as a company, is not addressing user happiness enough? Or is the issue that some organization is letting bugs languish? The first is a much harder problem than the second. You don't need to solve the first to fix the second. I stand by my claim that it is feasible to address the first as an L5, that could reasonably get someone promo'd to 6, and you wouldn't need to involve anyone above a director to do it. Of course, doing so would involve writing very little code, because so much of this is procedural and political, so the engineer who just wants to be rewarded for fixing bugs wouldn't take the initiative to solve this problem. But alas.
If that's "below your pay grade" _and_ you're still capable of doing it, well that's kind of the problem then, isn't it.
Why should I spend a week learning a different domain when someone with experience in that code can possibly fix the bug in an hour? Passing the buck to the right person is the correct answer when you are not an expert and someone else is. Passing the buck too many times happens very rarely, most of the time it is the correct answer, so long as you pass it to the right person.
I can go into anyone's code and fix a misspelling. However if the problem is less obvious someone with experience can take a few days off my time just because they don't have to figure out how the code is supposed to work before figuring out why it doesn't do that.
No.
> Should someone ignore a bug report "The is not spelled teh?" until it has bounced around unsolved for months on end, then spend 2 weeks "investigating" to show that it is a hard bug?
No. Grungy work has to get done, but it also won't build a promo case. If a leader isn't finding ways to make sure that the grungy stuff is being completed then they are a failing leader.
However, if you give a reason for building the 2 new services (eg. more extensibility, enables a new flow, easier to use for other teams) then all of a sudden the complexity is justified and you'll appear to have solved a hard problem. No one is going to look super deeply and ask if those reasons are valid and if you even need the extra extensibility or if other teams will use the service.
Would the goal be to promote everyone? Who's going to do the work they all used to do?
Several years back, you had to also eventually get to L5. This was more affected by promo culture, but was also largely unenforced, which is why they get rid of the formal requirement to get to L5.
I'm unsarcastically glad that you had a different experience at Google than me. This was not my experience, nor the experience of anyone else on my immediate team.
I worked at a start-up that was later acquired by a mega corp. When it was a start-up, it felt like we were focused on growing the pie. Once we were acquired, everyone just wanted a bigger slice for themselves.
I also felt like we had a ton of terrible presentations, and it felt like a braggy culture whereby you had to promote the work you did and make it seem more important. The reality was we all knew who the good engineers were and who the bad ones were. It was just annoying to have to listen to people talk about a widget they'd built that tbh nobody really cared about.
I worked with people to make their talks less about promotion and more about education; that at least made the presentations bearable and engineers felt like they might have learned something from them. Eventually though I realized I didn't want to be in that sort of culture and joined a smaller company.
At that point, financial arrangements are presumably already all set.
Provide value, but _never_ get promoted. Every year come review season, talk about how your goals for the next year are to improve latency/perf/whatever. It doesn’t have to be specific, just something that’s important enough to be useful, but don’t be ambitious. Just keep your head down and make enough improvements that people consider you to be a good “grunt” worker.
Yeah yeah, inflation sucks and technically I’m making less because my RSU’s have mostly vested and my yearly grants haven’t made up for it, but I don’t care. I’ve saved up enough that I could retire now if I really wanted to.
Every day for me, I work 9-5, fix a few bugs, provide some value, then work’s over and I get to play with my son and completely forget about my job. Then once he’s in bed I smoke some weed, watch shows with the wife, talk about the good old days. It’s heaven.
(By the way, I say all this, but I kinda failed at it because I got promoted last year anyway. I got hella worried because I thought they’d start expecting more out of me, so I actually slowed down my pace even more. I just got a mid-cycle bonus last month. Maybe I’m not so great at keeping my head down after all…)
When I was at Facebook, this was administered by using the next level review guidelines after you had a position for N months (depends on the position), and if you don't meet those expectations, putting you into the firing pipeline (PIP, etc). One of many reasons I was happier when I stopped having people reporting to me.
But they put up with it because it's a career and not a job. Many of them couldn't handle a minimum wage or working class job. No breaks, short lunches, no wriggle room for life, permanent fast-tracks to firing.
But they were mostly being paid handsomely to apply those amazing skills to really humdrum tasks -- but painting them up to be really profound -- and that's the saddest thing.
The interview process is highly highly biased towards recent grads (algorithm/data-structure courses) and the kind of people who do super well in university show-and-tell.
I think promotions to the next level should just be considered a new job (in the same company), and you don't 'win it' or get promoted - instead you apply for it and go through an interview process. If you study/train and get through the interview, then you get the job and all it's benefits. This way, employees can focus on doing the right things for the company and if they feel they're ready for the next level, apply for it.
If they don't get it, its based on merit - they can go back, get more experience/study etc. and reapply later. Their ego isn't destroyed, they're not pushed to to do the wrong things simply to get promoted, and I bet most people will remain at the company.
That sounds like a recipe for an incredibly toxic environment. Not only are you hired for a specific pigeonhole, you are expressly forbidden from progressing through it: at least in some sane companies promotion is preceded by already having done the new role for a time and the title jump merely formalises the situation.
In fact, I thought the pigeonhole hiring in traditional finance was bad enough. You just managed to outdo decades of dysfunction in one try.
The last thing we need in tech is a codified caste system.
I've worked at a company that did both (internal promotion and internal re-hire) and IME people that actively applied to new positions had faster "career progression".
You're hired for a position, when you feel you're ready for the next level you apply, if not, just continue where you are. This doesnt mean you dont get paid more the better you perform. Why do you need someone above you to say you're ready for the next level?
how do you know that's what usually happens?
They try again next cycle.
"Build into core values wanting to create a culture where the end-user is the priority, not individual advancement up the ladder"
Is there any non-exploitative way to interpret this? The only thing worse than wasting my time on features for promo rather than users is working overtime to make more money for those with significant equity/ownership in ways that will never seriously affect my comp. Without promo or "promo by a different name" i.e. money, how do you incentivize people? How do you decide who to allocate your finite equity and money to?
As they say, the reward for being good at your job is more work. Expecting me to put in top effort for "the users" without compensating me doesn't work.
The idea that you can fix this with culture is wrong. It's been tried many times at many companies and it doesn't work for anyone but the owners. Unless you own a significant (let's say >5%) piece of the company, those late nights you work for "the user" will never be worth it to you.
You do not work for free. You are being paid. 'Top effort' needs not to translate to working overtime, more hours, etc.
This passage specifically:
> For as long as possible, make the success of the company the primary motivator, rather than promo
How do you simply make the success of the company the primary motivator? IMO, you either try real hard to pay/promote them based on the success of the company, which feeds into the promo culture problem, or you find people to work towards the company's success without explicit promises of rewards, maybe by alluding to potential rewards you may/may-not give them (aka maybe exploiting them).
One alternative is you can find people who are satisfied with their place in life, and willing to just crank out work regularly without promises of increased rewards. IME, people like that AND skilled enough are very rare. It would be very hard to build a company of solely those people.
Easy, there is no promo, you just pay everyone 450k like Netflix and raise everyone's pay each year to stay at the top of the market.
Does anyone remember this thread?
I work like 20 hours a week at my job, I almost quit because it's extremely boring and dysfunctional, but then I realized I can just disengage and enjoy my extra free time instead of pushing to exceed expectations. And I still get paid the same.
https://www.census.gov/quickfacts/sanfranciscocitycalifornia
It’s better to look at the average incomes of people who are buying houses in SF.
What is the median credit card debt for them in these cities?
What is the median annual savings for them in these cities?
I believe they relaxed that process when someone at the top took a look at their org-chart and realized they've become a big company where they need a critical mass of not-actually-interested-in-progressing engineers to keep the lights on and if they actually followed their policy, they risked churning those reliable workhorses out of the company because they couldn't actually afford to find a slot to promote them all.
It is hard to look at people who are objectively doing as well as each other, and rate some lower only because they have been at that job grade "too long".
The fig leaf was always that the ladders encourages keeping up with technology and the company, which meant people couldn't tread water at the lower grades.
But if the "new technology" isn't necessary for the job duties, labor lawyers can have a field day.
1. More money means less time till I hit FU money and can choose work without any consideration of pay
2. 200k/yr is not as much as it seems if you're in the bay area and have kids
3. Bigger title -> more input on core design decisions. Hate some idea coming from the higher ups? You're in a position to do something about it.
4. Bigger title -> more control in picking interesting problems to work on. People trust you to say "this should be a priority"
A lot of responses seem to be focused on high cost-of-living areas, which is kind of a chicken-and-egg problem. If you want to be a moderately checked out person, living in a smaller city and stretching your giant bay area salary is the way to go. If you want to be aggressively careerist, you have to be face-to-face in the bay networking.
More input and more interesting problems both feel like more responsibility for the same comp, imo, which might be appealing for some people but is anathema to me. The people higher up got there by being more argumentative, or backstabbing, or ingratiating themselves, and instead of going along with them now you get to fight them. No thanks.
And for the controversial part: The above is why I think it's insane to, for example, take 1-2 years of not working, early in your 20s, to go see the world and "find yourself." Those 1-2 years, if spent earning, could mean retiring an extra 3-6 years earlier.
If you finish uni and take 1-2yrs off, that puts you wayyy behind someone who goes straight into a job. If you take 1-2yrs off your knowledge won't be fresh and you'll not really be a new grad anymore.
Besides health there's a lot of reasons why being certain about doing something now might be preferable to putting it off for 10+ years.
No. I don't work that hard, and my work is generally enjoyable, I've made a lot of good friends, and get to live in the area I grew up in near my family.
> A lot of responses seem to be focused on high cost-of-living areas
Well, my response was to a poster asking "why do you care about making more if you make 200k?" and the answer for some people making that amount of money is that they are only able to find work paying 200k+ in a high COL area.
> More input and more interesting problems both feel like more responsibility for the same comp
The thing driving more interesting problems and more input is a title bump, which in my neck of the woods means a 50% or greater pay bump, so I would say that's not for the same comp. Whether it's more responsibility is variable, but I know engineers two levels above senior who more or less have the same responsibilities as a senior engineer except their project is "harder" and more important to the company (this does not mean the more senior engineer is actually working more hours though).
Perhaps a meta point here is also useful. Once you're senior, most engineering work available is not interesting and does not help you grow as an engineer. Engineering work that helps you grow as an engineer often makes you more valuable. Companies usually give interesting work to their best engineers. If you can quickly climb the ladder to where your job feeds you interesting work you can enter into a "winners-win-more" sort of feedback loop. This is a strong incentive to front-load your career growth by working really hard for your first decade in industry (or at least years 5-10).
This is probably one of the most dominant non-financial factor for engineers. Because if you want to make a visible, critical design decisions for billion-user products you usually want to be at least L6~L7, the level where you're now an owner of a non-trivial product/system spanning across teams.
I witnessed this more times than I can count.
Otherwise its all balance sheet calculations and maybe your manager can pull a punch or two if the product area is critical enough.
If you're senior or staff and haven't launched anything exciting lately, middle management might become less interested in whether the service is running well and more interested in having "career" conversations about how your role description says you're supposed to be launching cross-functional projects more frequently.
https://cdn.nar.realtor/sites/default/files/documents/metro-...
My experience at Google has been characterized by collaborating with the smartest and most driven people I've ever worked with. And I worked at several companies before Google. I think a side-effect of this personality type is that the engineers themselves want to make a difference, whether through maintaining Google's complex infrastructure or launching new products. And while it may be easier to show impact by launching a new product, it is by no means a problem unique to Google. Startups find it much easier to show impact by launching and buying users, rather than measuring how useful the product actually is.
I have come to believe that, lean-startup style, a good engineer should be able to demonstrate how the work they are doing is important to a company, a product or a product's users. With a little bit of thought around how to show that the work you are doing actually is valuable to your organization's OKRs, you can get promoted doing whatever work appeals to you the most.
Is there a 'safe' space I can give feedback regarding this that doesn't damage my chances of making it through the process?
Just roll with it. It's all upside from the interviews. It's largely a good place to work and worth the headaches during interviews. Smile and carry on.
Just be straightforward and ask if there’s another interviewer available
The example given by the author - fixing lots of tiny features in sheets - is the opposite. Difficult to measure, lots of little and difficult to explain implications, sounds kinda easy - many individual items probably are just work.
At a high level, promo is an incentive that directors and VPs use to keep an org working towards strategic goals. You may disagree with those goals, but that doesn't necessarily mean promo is broken.
Think about how companies choose between office and google workspace, especially excel v sheets, and the buying process. And think about the industry/function where it matters most - finance. You aren't going to see sheets usage tick up next qtr because you added 5 features that ibankers use. Usage of those feature will slowly go up, and when mixed with 20 other things you'll slowly see more finance users. Hopefully. Maybe Goldman will switch, and others will follow. Whoever is running Sheets is in a long term game. Much of enterprise software is like this. It isn't Facebook where you often get instant feedback.
Small annoyances might add up, and the GP's point is that this incentive system doesn't reward those who try to fix them. Unless... somebody's deranged enough to keep known and fixed bugs in a customer facing product behind an experiment flag to see how a small percentage of unlucky users would react...
If you put yourself in the shoes of an L3 or L4, you know this is not exactly true. Who your manager is and what their priorities are, and how they view the promo process can greatly affect your ability to get a promo. I mean, before you can apply you need to get "strongly exceeds expectations" for two consecutive halves. If you do great work that you think benefits Google, but your manager doesn't think you've sufficiently demonstrated things on the rubric (e.g. "google-quality delivery" or "autonomy") you won't get a promo. Managers also have their own agenda and list of things they need to deliver, so you end up having to work on things they want you to work on, even if they don't help you tick the boxes in the rubric. If you're lucky and get a good manager who helps you play the game, these things aren't problems. If you're well-informed, you know how to bail when you encounter such folks. If you get unlucky or don't wise up to how it works, you can be set back many years in career progress.
My point here is that my managers thought the latency of Google Maps was important, doing good work on it got me promoted, it was not a product launch, and things like this are happening all the time across the organization.
There is one extremely bad aspect of promo-culture not discussed in the article: Many promos in higher level have requirement that the person must become the people manager. The idea is that at certain pay level you must be able to "scale" you impact by directing others as opposed to doing things by yourself. In tech, this is extraordinarily flawed idea. Scale can be achieved by being manager but also by being individual contributor. People like Jeff Dean has contributed far more as IC than probably most VPs at Google. I don't know how many brilliant technical ICs have killed themselves by trying to be people manager to get that alluring promo.
Max Weber pretty much defined the modern conceit of bureaucracy. [1]
W.E Deming wrote extensively on the "American Disease". [2]
In a few words management and measurement are both inescapable beyond a certain organisational size, and they are the problem, because in almost all scenarios they will expand to displace/strangle the actual work.
It is a recognised general structural problem in systems.
Of course there is much more to it than the above simplification which may sound like an extreme philosophy - but I have yet to encounter good refutations or counterexamples to this tendency.
The answer, perhaps, is that small and many is beautiful.
At Google you could cheat the promotion system. Just spend more time optimizing for promo than for improving products for your customers, and you would be handsomely rewarded. You end up with the cheaters becoming the leaders and the good engineers leaving in frustration when they need to take orders from cheaters.
Welcome to Amazon! Just about everything in this article rings true at Amazon. In fact, I’d say Amazon is even worse.
I think L4 to L5 and L5 to L6 promotions have certainly gotten easier over the years, and promotions have actively been used as a retention tool, given all the other (dis)incentives that would convince talent to leave.
What I saw in Amazon retail and Alexa was a culture of:
1) refusing to work on valuable projects unless you could actively claim to be the lead
2) taking credit for others’ contributions, or deliberately throwing a teammate under the bus and saying X didn’t work because of some thing specific they proposed (even if you agreed with it at the time)
3) general culture of back stabbing and not helping your own teammates, especially out of concern that your teammate would reap the promo benefit over you
And at a higher level, L7 managers will attribute a failed project, mismanaged project, or other issues to a partner team. “Our team is blocked on this other team Y” - never mind the fact that all the contracts have been agreed upon and this L7s team never wrote a line of code.
By the time I left, Amazon had gotten horrendous with organizations trying to invent “frameworks” so A or B can be done in 1 click, and this became the way for Sr SDEs and Principals to get their promotion. They create complexity and deliver some half baked, constrained way of solving problem X. This lets you show “impact” across an entire organization, even if this new abstraction has made engineers’ lives a living hell.
This was a major reason I left Amazon. The company was running out of ideas, and instead of focusing on products and customers, the engineering culture was heavily focused on inventing complexity for the sake of promotion. 9 times out of 10, the son of a bitch creating this complexity would take his or her promo and then move to another org, a new greenfield project. Never sticking around to deal with the pain they’ve caused.
If engineering firms wanted to improve they'd ensure that everyone who has decision making power over a product, whether from a business or technical perspective, is at the same level and has the same input. That way refactor is weighed the same as a new feature or service.
Promos typically have a "pecking order", determined by how long you have been asking for one (or performing at the next level if you have some meritocracy), the amount of budget available for promos this time, your age (easier to promote "mature" people), D&I status, proximity of ethnicity to your managers biases (could be implicit, doesn't matter for the outcome), height (tall people promoted easier), introversion vs. extroversion, and just if your manager likes you.
Also they ask you to give vague, subjective snippets that will be weaponized against your colleagues in form of "feedback" for the next 6-18 months.
So it's better to not partake in this type of time wasting activity.
It doesn't mean I can't feel sad and deeply upset at this is what it takes to 'succeed' at a company I have honest admiration for.
BUT; I've been researching this 'problem'; which boils down to "is a hierarchical management structure needed" for a group of 'activists' to achieve great things? So far I have found no alternatives, why do we have to keep track of our 'success' and relative worth so intensely so share the pie around?
as the top responses says; everyone needs to chill out and I'd add "try to be nice and do no harm".
The only point I have to add is that as someone who wants to not participate and does not care what "level" they rank; f### off?
If a company, or speaking more locally, my manager doesn't do that, I'd rather just leave and try somewhere else. Some may view this as childish, picking up and leaving just cause I don't get what I want. I view it as exercising my market power and refusing to be pigeon holed into a system that exists just because that's the way it's always been.
This philosophy certainly benefits from the current job market and this makes me feel more empowered knowing I can just pick up and leave and get a better raise, promotion, new equity round etc.
A good signal for identifying these types of companies where this approach can work IMO is
- Smaller companies
- Ask and look into engineers seeing if there are lots of internal promotions
- Learn what the promotion process is at a company before joining.
I do think there is a balance though because at a lot of startups the incentive is to just crank out a lot of product code but not really think about multiplier type work.
Incentives make people do the weirdest stuff. It becomes pure politics at a certain point and largely a cool kids club of who you know to sponsor you and being generally well-liked. I'm not going to kiss ass for a title. I'm going to demonstrate I earned it the hard way. While most companies don't recognize that path as much anymore, it's not very hard to get the title at another company.
The people who bring the most value to each team are often the unsung heroes who don't get promoted fast either. Good leaders will take notice however.
The book "Staff Engineer" by Will Larson has some good bits on this topic.
Basically, turn it into a marathon not a sprint.
Good engineering can look simple. The best engineers I've worked with will make things look easy. This can be at odds with promo driven culture.
The Iron Law of Bureaucracy:
In any bureaucracy, the people devoted to the benefit of the bureaucracy itself always get in control and those dedicated to the goals that the bureaucracy is supposed to accomplish have less and less influence, and sometimes are eliminated entirely."
https://en.wikipedia.org/wiki/Jerry_Pournelle
Also called the tragedy of the commons.
Rumor I heard was that pre-IPO the only was to get a stock option/grant boost was to be prompted. I believe the first actual annual refresh was in '06. For several years after that it was 100% managed at the SVP level, so you needed to be known at the top of your management chain to get a refresh beyond the algorithmic minimum.
Also there was top level compression because Google didn't have L8, 9, or 10s for a long time - if Jeff Dean is a L8, a new hire previous "Director level" engineer lands at 7 if they are lucky.
Given that Google frequently hired at one or two job grades below typical Si Valley, promo was a MAJOR motivator, and you needed to seem as though you fit in at the next level up. Google's approach to the Peter Principle was that if you got promoted and then didn't meet expectations, they would manage you out.
The question was always "Is that project really L6, L7, L8, L9 work?" I saw someone who changed the way a longstanding internet protocol was seen and replaced it based on their research stuck in the "only L6 level work" category.
And of course the promo committees were filled with people who got promoted under these regimes.
Corporate culture gets set and maintained in strange and interesting ways.
I worked on features/products that could be built and supported by small teams. Once those projects were ‘done’, those same teams inevitably turned to unnecessary rewrites, expansions and redesigns. And they all got promoted for it. For turning a 5-person project into a 25 person project that did the same thing, but with more moving pieces.
Because you can’t usually reach L6 by maintaining a project, no matter how impactful.
My proposed fix is entire product groups and their members should be held accountable and directly take profit of what they earn. If the product does well that quarter, engineers should be rewarded. Something to keep them working on a great product rather than catastrophically forgetting.
But in engineering you need people to be thinking big picture, thinking collaboratively, taking risks, doing long term development, cleaning up technical debt. If you overly tie compensation to product revenue, you risk incentivizing your entire engineering staff toward short-term bolt-on-the-feature thinking.
That said, there were lots of people who obsessed over the process, looking for shortcuts or ways to game the system.
Not their fault. Sometime, as everything in life, you are in the right place at the right time. You get to work on a good project and bingo. But most of the time you will end up fixing bugs in some half baked, broken PoC that someone launched in production just to get that promotion, and now you got to make it to work, while the person who got promoted get to move on and draft another broken PoC, launch it etc ...
It depends if you are the one fixing shit and make things work (you rarely will get a promotion) or you are the lucky one who get to write spaghetti code on the next thing, cash out and move on onto the next thing ...
Life is not fair I know ...
I can honestly say I didn't care about promotion while I was on the Windows accessibility team at Microsoft (as a Software Engineer II). The quoted assertion makes me wonder if I was being naive or lazy. I truly believed that I didn't need to care about promotion because the work I was doing was worthwhile for its own sake, i.e. I cared about the product and the users. In retrospect, maybe I didn't make the most of the opportunity I had there; I suppose I could have had more impact if I had leveled up. But I wasn't thinking that way at the time.
I briefly had one person reporting to me (well two people, in sequence), and navigating performance reviews on behalf of someone else is not for me.
1. Don't hire junior engineers.
2. All ICs have the same title: Senior ____ Engineer.
Then it's likely 3% forever.
I was never interested in climbing the corporate ladder and prefer to impact the users but I found that unfortunately trying to avoid wasting time in this overhead is eventually working again the users because who prefer spending time improving the product does not get promoted.
(This was 6-10 years ago; I know some things have changed, but I hear from people there it’s still crazy).
- use continuous promotion screening instead of well defined annual periods
- use indirect measurement instead of candidate self selling (involve manager's and colleague's feedback, but not only because introverted people merit promotions too)
- measure things to be aligned with the success of the project and the company objectives
- increase impression of progress and success by increasing the number of promotions (gamification)
- reduce frustration and demoralizing effect by reducing the gains of promotions
- make the criteria clear and objective to reduce frustration and demoralization (clear goals, clear push directions)
It seam that a system based on points (or karma) might be interesting to explore. People would earn these points by different actions or indirect objective evaluations.
People may loose points if efficiency or contribution quality degrades, but smooth out to absorb "life accidents" (e.g. transient health or personal social issues), to give a second chance, etc.
That's what I would explore. It's not easy to align this promotion system with the benefits of the company. Not every company earn billions like google.
It inspired me to quit years later and write my own version: https://suketk.com/why-i-quit-google
What would a co-op look like?
aka Worker Self-Directed Enterprise. https://www.democracyatwork.info/democratizing_the_workplace
Could a co-op technology startup raise capital? I have zero clue about such things. My guess is that VCs want to control the board and exec roles, so wouldn't fund an efforts where they can't replace the leaders.
What about the co-ops and FOSS? I've been casually poking around, trying to see how misc projects are organized, governed. eg ZeroMQ, SQLite, Zig.
What about the maturity of an industry? Sure, emerging markets and hyper growth are probably hostile to co-ops. BDFL vs democracy. But search is now mature. Take away the advertising biz model and it's just a bog standard IT project. Surely something like DDG could be a co-op.
Another more radical approach - get rid of levels completely. Increase pay significantly, similar to a promo if someone is doing good consistently, don't if they're just okay, fire them if they suck, but make levels implicit.
Make a huge incentive of promotion, behind well defined rules, and smart competitive engineers will tlgame the system. Even if it's an actual negative value for the product and company. You can always change teams after promo and start fresh with your increased total compensation.
One day, the metrics stopped going up. In fact they went down a bit.
What happened? The manager went to his manager and gave the exact same presentation, in which somehow the metrics were still great news and the team was still executing really well. And his managers didn't notice. The praise came back, just the same as it always did.
At that point me and one or two others on the team became very cynical and lost motivation, because we realized that nobody who influenced our careers seemed to have noticed what was really happening. Celebrating an endless series of utopian success stories, regardless of truth, was more important than tackling reality.
One general solution is to flatten the hierarchy, which ultimately would reduce the spread in compensation and rewards from the bottom layer to the top layer. This would make promotion somewhat less attractive particularly if it came with heavier administrative responsibilities (generally less fun and more hassle).
This premise does not apply to everyone, there are many people who are perfectly happy with their current income and their current set of responsibilities. It's indeed likely that most people do their work for the money, and promotions do contribute directly to that incentive. But there is a sizable population who are not in it for the money, and they contribute to the company culture as well.
Related, this article reminds me of comments on an earlier article:
"Do Not Change Your Job": https://news.ycombinator.com/item?id=30437733
You might hate Google's choice, maybe enough to leave, but you might end up joining Microsoft/MANA and hate their incentives too. Basically, you're back to square one.
The Truth is, people really want promos for the extra money and more stock. I say, just give them the extra money and stock privately, and only promote people when there's a job to be filled for that position.
In essence, there's the E9/O1 problem. An elite engineer with 25 years of experience simply knows more than an entry-level manager. Organizations try to solve this by dual-laddering and saying that there are "Director-equivalent" engineers (e.g. Staff or Principal) and so on, to rectify the obvious injustice of a scenario where a fresh MBA is seen to outrank the best engineers because he manages a team and they don't. The problem is that this dual-laddering makes it worse, because it's so much harder to move up the engineering ladder. If you're a Software Manager I at Google, you have to shit five or six different beds not to make Director within ~6 years and VP within ~12. On the other hand, making Principal+ Engineer is quite difficult, especially if you're not in MTV. So it perpetuates a false equivalency in which the managerial and product folk are gods (because of their swift, easy promotions) while most of the engineers are leftovers.
The parity between the two ladders is something of a myth. At most companies, you can see that clearly if you count heads.
A director might oversee 150 to 250 people. There will likely be five second level managers reporting to the director, and maybe twenty first level managers reporting to those second level managers. So 30 manager level people.
And there will be maybe four or five Staff and one Principal engineer in the same organization. Sometimes even fewer.
So the parity really isn't there.
My point is not number of reports, but number of people.
A directorate might have 25 managers, and maybe 200 developers. Of those developers 4 or 5 might be staff/principal, and it might be as small as 1 or 2, or even zero.
So far fewer people move up the technical ladder than up the management ladder.
Proper bonuses (proper = multiple of base salary). If promotion is the only way to get comp then obviously it matters a great deal. However, if you can get good comp based on your performance (and not your rank), then promotion matter much less. At most investment banks/hedge funds the highest paid employee is NOT the CEO; it is somebody that made the the firm $248m last year and that got to keep a fraction of it as a bonus.
What would be problem with such a system?
Also it encourages a cutthroat competitive culture of stealing credit. At least with levels higher level people don’t need to steal credit from lower level people and aren’t directly evaluated against them.
After enough years are passed with this system in place, the company is full with people that rarely care much about the users and care a lot about their status and paycheck. In these kind of cultures what tend to flourish is ego-boosting shining objects that rarely impact the users for good.
The old way wasn't perfect either, but generally high performance was rewarded with broader scope. I assumed hard, high quality work was the way to get promoted.
Now with many public career ladders, employees realize they should take on broader scope (larger, complex projects) to look the part of a more senior engineer, even if that doesn't match their team's immediate needs.
I actually wish these would get written all the time. Not because of a promo-committee, but because post-hoc documentation explaining how the system works after it's already been built (as opposed to a design doc from the planning stages that may or may not reflect the actual state of the built system) is really valuable.
"We at Google are promoting the wrong things. We have necessary work that our code monkeys do but nobody wants to do because those jobs are not promoted"
As a manager of a company promoting the right things is your job.
Of course people want to earn half a million dollars if they can.
Real meritocracy is a market economy (barring corruption).
That is, if you don't get a promotion in a certain number of years, you will be encouraged to leave?
That would encourage making projects more complex than they need to be, to get that promotion.
This used to be L5 until a few years back.
Even the old system, where there was a formal expectation for every SWE to grow to L5, wasn't uniformly enforced. One person I know joined as an L4 SWE twelve or so years ago; they're still an L4 SWE.
Apple also survives on big bang releases - the next iphone, macbook pro, etc etc. But also is famous for not abandoning old phones. iphone 6 was still receiving updates in Dec 2021.
so how does Apple manage this dichotomy ? or is the company level yearly release completely wipe out the need for individual "hard problem" solving ?