"Bloated" isn't for engineers to decide really, we're terrible at judging efforts involved.
Disclaimer: I work at Amazon as an SDE II on the logistics side of retail.
If you have to fire the bottom x% of your team every year due to low performance, doesn't it mean that you have a constant low performing cadre? Otherwise, why would you get rid of them?
So I don't think it being "cut throat" and there are "many low performers/bloat" are at odds.
No matter if your team is amazing or not, 5% getting cut.
A slight correction: An organizational unit larger than a 2 pizza team -- think 50 engineers, is expected to cut 5-10%. A team within that unit may lose 0 engineers, which is how high performing teams that meet all their goals stay intact.
So Amazon, like every other FAANG, is very bloated. I've yet to experience any sort of major layoff in the industry at large. They seem mostly isolated to these mega-corps that got PPP money, hired way too much, and are now trimming back the fat. It is sort of icing the fungibility of jobs for now but not in a way that I am at all worried about.
I think your general point is correct: FAANG over hired during the pandemic, but I'm not sure you understand how PPP worked or how the money was distributed. Google, Amazon, and Meta weren't the primary recipients of PPP money (they directly received 0 of it).
Their stock price increased due to both performance during the pandemic, and the general loose environment created by the Federal Reserve which probably played more of a role than PPP targeting mid-size businesses.
1. Your manager is the one putting you in PIP (firing plan). If you're friends with your manager, he won't put your name, even if your performance is below the bar.
2. This is applicable in every single avenue of life, but your reputation is everything. Work hard for the first few months after joining a team and impress your leadership and your colleagues on your first few tickets, then you can dial it down and still be 100% safe and be regarded as a top tier engineer. You will be "the guy that ramped us fast and executed well" for the rest of your time in that team. If you have setbacks, you won't even need to justify yourself, they will just know that "hey if this top guy is struggling it just means it's very hard".
On the contrary, I have witnessed people being fired or looked down upon just for having a bad reputation, even when they were doing just fine or had legitimate roadblocks on some tasks. One of my good friends got fired because he was the party guy of our team, so nobody was ever taking him really seriously.
I rarely have seen (1) come into play. I'm sure it happens, but there is a lot of scrutiny of the stack rank, enough where I think it would be hard to pull off. I think most friend managers would tell their friend months ahead of time -- you really need to do XYZ or things are going to be tight at review time.
(2) is very true though. Reputation and perception is super important. Although I think companies now do take a harder look at delivered impact either via KPIs or OKRs.
In my experience, most engineers are pretty good. And I've struggled to find people to put in the bottom of the stack rank, because I didn't feel that their compensation would reflect the impact they had. IMO, after having to do layoffs, it is the hardest part of the job. And it sucks because there is very little way out of it for the manager. Helping person X do better, just means that now person Y is at the bottom of the stack.
In Amazon you will be PIPed (or rather put in focus, which is a first step that may lead to PIP) if you are marked as "Least effective" which is the bottom 15%.
Your manager has to demonstrate why you are "Least Effective", and they have to demonstrate why you are "Top tier". However, they don't really have to justify themselves to put you in the middle of the pack, where you will be safe from PIP.
So, for sure, you may not be ranked in the top of the team if you're buddy with your boss, which means you won't get a salary increase for example, but at least you won't be PIPed, which in the end is what I assume most people care the most about.
Worked in a company that does stack ranking. Here's how you do 1 (in the opposite sense): Give the person tough tasks, with very tight deadlines. Repeat till the employee screws up, and start building evidence for a PIP. Get others involved (customers the employee is interacting with, your own manager, etc). In most cases I've seen, if a manager is unhappy with you, the others (customers, your manager) will follow your lead to get rid of the person.
If/when the employee contests this, most HRs will pick someone from the same department to be the investigator. Since it's the same department, it means it's the same culture your manager is exhibiting. They will much more likely believe them than they will you.
Source: I got semi-fired this way. To give you an example: The investigator wanted proof for everything I was claiming in my defense. Not only that, they held it against me if I had not sent emails to my manager saying I disagreed with his behavior. Eventually, I asked the investigator: "So, did my manager show you proof for all his claims?" The investigator responded with "Good point, and once this process is over I will send him and his manager feedback on the mistakes they made." Umm - sure, but why should I be punished and not them? No answer.
I somehow stayed at the company (they made an exception for me and let me change teams) - and over years saw this process repeat over and over. When an employee is in trouble, I immediately start advising them on the steps their manager will take - it usually plays out as described above.
The challenge most of the people outside of Amazon do not realize is that micro-service architecture imposes a heavy penalty on team co-ordination, esp. as the software matures. A large part of core services have been built over several years (and decades) and they have been architected to optimize for some operations at the cost of other operations. You can think of this as how you would design a DB schema. It is a trade-off between write speed, query speed and availability. Now, think about it happening at massive scale. As an engineer, you would spend a lot of time working/waiting on partner teams to prioritize your changes while under pressure to deliver. A lot of teams ended up building the pieces on their own into their own services leading to a larger maintenance and operational load.
From the outside, you are very likely to think that the team is bloated and slow-moving because you are assuming green field development. Internally, Amazon is a 25-year old legacy platform with almost no single vision across teams, tons of semi-duplicate functionality and heavy operational load. Keeping the lights on (KTLO) was a big ticket item on every annual plan I created when I was there.
That being said, Google for comparison does have good code re-use for certain core resources, like spanner, cloud, tensorflow, borg, etc. If you're talking about bedrock infrastructure like that, it's quite a different picture.
I think I am regurgitating mythical man-month here and will shut up.
Maybe I'm doing it wrong but I often find that doing a new greenfield project sounds easier but by the time you make deal all of the non-functional stuff (connectivity, resilience, logging, build tools, documentation etc) you might have been quicker holding your nose and bodging it in somewhere vaguely appropriate in an existing system.
This is, by far, the hardest scaling problem in SaaS: How do we divide responsibilities amongst our (code|services|teams) efficiently?
You can only grow each so much before they become unwieldy to manage.
Divide scope too much and communication becomes complex.
Divide along the wrong abstraction and you get duplication, overlap, and confusion about what's responsible for what.
And as time passes, decisions of the past constrain and complicate your options to redesign/rearchitect/reorg today.
...which is a fairly obvious observation. "Bad <x> imposes a heavy penalty on team co-ordination" is generalizable.
I recommend you find a way to spend time with someone who knows how to design a quality microservices architecture. It will completely change your opinion about how microservices interact and the supposed "pain" therein.
You have no idea what I do and what my competencies are, yet, you are assuming you know a lot more about system design than I do and I am missing something simple.
Here is another take from Bryan Cantrill [https://www.youtube.com/watch?v=30jNsCVLpAE&t=1413s]. Very likely, he does not know anything about services either, I guess.
Nowhere did I say, "It is obvious how to design a good microservice." but it seems like you're arguing against that statement, not the one I made.
And for what it's worth, I don't give a hoot who you are, who Bryan Cantrill is, or what your supposed competencies are; make your argument, don't rely on your pedigree to speak for you. That should be obvious.
There is no magical model for this, no buzzword, no single practice, because different businesses and use cases need to be adapted to it. But there's 70+ years of study into methods to do this, and I believe they're taught by all the business schools. It's just nobody wants to do the work.
....On the other hand, nobody teaches MBAs how drastically different tech is than other industries, and thus how you run your "factory floor" has to be different. But the basic principles above should still be applied; they just have to be adapted to the industry and work. What one should not do is just accept things however that industry does it, because they probably aren't doing the above principles either.
In front end development people NEED the world's largest application frameworks (sometimes plural) because they cannot figure out state management. State management is stupid simple and a solved problem, but whatever. It will still, at the job, take you all day (maybe a week) to make that 30 second change.
If you try to bring up that the days work could be solved in less than hour if only we didn’t make all the wrong decisions and fear the platform they will look at you like you’re retarded. I have heard this mentality expressed perfectly in the movie Edge of Tomorrow: Don’t tell anybody. Are we clear? Best case scenario you’re gonna end up in a psych ward. Worse case you’ll get dissected for study
Here is the summary:
* You need a storage location
* You need a defined data structure to store your state data. I recommend storing everything in a single logical storage object, because 1 is simple and simple is good.
* You will need to update and save your storage object at the needs of your application. I do it on each user interaction, because this is cheap.
* On page load you will need to access your storage object and apply it to the user facing event handlers that create your state artifacts that otherwise normally execute in response to user interactions.
That’s it. Consider the problem from the goal and work backwards to the solution.
There are a lot of teams working on either useless or _duplicate_ products.
Amazon is a place where it is frequent to discover that an another team is doing pretty much exactly the same thing as you, despite both teams existing for years.
And then there are a lot of teams working on products that do not and will never bring revenue, such as a big part of Alexa.
I generally see this play out as, one team trying to tackle the problem with a prototype and demonstration of tech. The other team just acquires as many people as possible and writes a bunch of documents. Then it gets run up the flag pole and the solution seems to be to go with the team that already has all the people.
Scenario A: Task a single team, staff them and let them do their thing. Cross your finger and hope they get it done.
Scenario B: Look across offices, org groups, whatever, and task 2-3 (sometimes more) teams with your task. Let them start work on it and get regular demos and updates. Eventually, pick a winner.
B looks very wasteful from the outside, until you realize that many software projects fail (like 50%). So more attempts give you a higher chance of success. Downside: Internal politics, waste, attrition from engineers throwing away code/busy work.
A is great if you can do it, but you're putting all your eggs in one basket.
A lot of times this is just bad org/bureaucracy though, but it can be done to great effect.
Disclaimer: Worked for a CEO with a large outsourced engineering base and several offices. Would see multiple attempts at different offices all the time. Eventually, grudgingly acknowledged there was a method to that madness. Trump also is famous for this (although his seemed more madness).
What actually happens is Scenario C - it doesn't arise from a top-down planner mandating it, it arises from middle managers (or their subordinates) further down the food chain each trying to grow their own kingdom, who all get the same idea at roughly the same time, and each build their own solution to the same problem.
During times of plenty, or if the top-level planner is only absent-mindedly managing that part of their org, the firm will be willing to tolerate these competing implementations, but during lean times, they cut, cut and cut and consolidate down to one winning solution.
A lot of corporate politics and strategy makes a lot more sense when you start looking at the personal motivations of the participants in it.
Some orgs within the company are fairly lean, some are hugely bloated. Amazon isn't homogeneous. For example, Alexa is very over-resourced and it's common to hear about 4+ teams working on slight variations of the same project. Lots of redundancy there. I believe Alexa as an org is losing $5b+ per year. Contrast that to all the criticism Facebook is receiving for their investment into VR/AR. The investment in Alexa was a platform play. Amazon thought that voice would be the next big platform. I'm not sure results and trajectory justify the investment anymore.
It makes a lot of sense if you can afford it.
This goes all the way back to his early days (I think I remember a scene about this in The Pirates of Silicon Valley), but also reportedly multiple teams were building very different original iPhones
I think its easier to adjust pure software iteratively than hardware. So with hardware, it makes sense to have different teams working on similar but different things because variations of ideas need to be fleshed (and thoughts that spawn off those ideas) and it can be hard for one team to do this iteratively.
If you're right and this is where it came from, I think largely pure software teams doing this are wasting resources, but if its hardware I don't agree its wasteful
I ran into this a couple years ago with partially duplicating a service that existed under another SVP org. It didn't feel good at the time but in hindsight it was probably less effort and higher chance of success than trying to align priorities across SVP orgs and making their thing work for our slightly different use cases.
Contrast that to VR, which is in a much earlier stage of its technology and adoption cycle: Meta has a strong technology advantage, currently has the best overall platform and _if_ VR becomes the next big computing platform, Meta is in a strong position to capture a significant proportion of market share. It's a big if! but at least there's still a chance.
As a primary interface voice was very widely used in the 80s and 90s in the form of IVRs and the industry was immediately destroyed by web browsers as fast as was possible. Nothing makes people angrier than having to go through a phone menu system and that’s just an organized version of your more general voice interface.
“Alexa set a timer” defines the kinds of interactions that are sensible to do with voice and it is very, very narrow.
It was never, ever going to be big.
Alexa is full of horrible managers that only care about growing their teams so that they can get a promo.
Or work consistently.
"Alexa play music".. Nothing... Do it a few times and it finally does play music? I could have gotten up and done it myself easier/faster at times.
the links and offering is solid. I have spotify connected to my amazon account and this is NICE..but as i said, the inconsistency is frustrating.
The former is a low single digit profit margin business, the latter probably has a decent profit margin.
I wonder if, within my lifetime, it will be possible to tell a digital assistant to "order all the ingredients I need to bake the cinnamon buns as detailed in the cinnamon bun baking video I watched last month with the Chinese lady that doesn't have an accent"?
It'll be useful when you can have it create, say, a menu and shopping list for your week, interact conversationally to tweak it including understanding that something like "I'm allergic to that ingredient" means never ever try to include it again while other statements of preference may be much softer, learn your preferences so those conversations get shorter every week, and order the ingredients for you, too. It barely matters if that happens over keyboard input or voice, because the hard parts of that problem have nothing to do with how the input is done.
You want to be able to give a few parameters for a trip you're taking and get some choices back. But, as you say, that's far more about "intelligence" than the type of input.
Nothing reminds you about the difficulty in cleanly parsing human language more than trying to work through a voice interface. I'm not sure what is missing precisely, but I'd say "an ability to use semantic understanding" might be helpful. All of our AI works explicitly with no understanding of semantics, but it's becoming clear to me that the ceiling that places on their "intelligence" puts them still leagues away from the world of true AGI.
Amazon music subscriptions are $15.99/month. Doesn't that count? Sure, you can buy that without an Alexa, but that is the whole reason people do.
It turns out that there are many interaction models where Voice is clearly inferior. Visual discovery (contrast with music) such as for videos, as well as navigation in a UI, are poorly done via voice.
"Alexa, set a timer for x mins / wake me up at x time."
"Alexa, what's the weather today?"
"Alexa, can dogs eat <type of food>?"
"Alexa, play <the song I just referenced so my wife knows the reference even though she doesn't care>"
Mostly just the first two. I don't care about anything else they try to push on me.
People talk about food waste, but how much code is wasted?
Every time you hear a story of someone at Amazon being pip'd it always comes as a surprise to the IC and, most importantly, they don't know how to avoid it.
This doesn't happen in a world where creating value is well defined. For example in the sales world nobody is confused about their performance. Sure there may be unfair reasons for having a poor sales cycle, but the sales person has zero problem identifying how they can create more value to the company: close more deals.
But I see lots of comments, both in person and online, of Amazon employees fearing a pip and not knowing the right way to keep their manager happy. This, at least to me, is evidence of the bloat. The high pressure ironically comes from the fact that nobody knows how to create real value, so they are stressed out trying to figure out how the game works.
What is the value of managers? What is the value of research? What is the value of procurement/ hr? What is the value of IT and internal support tools?
None of these individually provide value, but remove one and the company will collapse.
:eyeroll:
This reads like PR fluff and flies against the experiences shared by a lot of employees, current and former. Amazon is a huge company with a lot of variation between teams so I'm sure it's not a meat grinder for everyone, but they don't have this reputation for no reason.
My boss at Amazon told me he was happy that his baby was born prematurely, because it meant he could be back at work in time for a launch.
I keep hearing this, but as a customer, I don't see it.
Amazon retail experience is poor.
The layout of the site sucks (so many clicks just to see all the reviews).
They used to allow comments to reviews, which often were very useful (e.g. top review complaining about something not working, and the comments explain how to fix it). But reviewers weren't notified of the comments so they couldn't engage. And to top it all of, they recently removed all the comments.
The reviews have been gamed, not very useful.
They still let people make product pages with very different products as "formats", and that skews the reviews the wrong way.
Lots of counterfeit product issues. Perhaps more common: Problems with comingling items. I know it doesn't happen often, but being burned once is bad enough. I recently bought a toy for my daughter's birthday. The box had creases. Upon opening it was clear this was a used item. Some of the items were out of their (sealed) packaging. Perhaps my mistake for not examining it before, but whenever I buy from Walmart or Target, I don't even have to think this will be a problem. Fixing it up with a great return policy is not a solution. Oh, and I couldn't return it. They recently made it hard to contact a human, and the automated return system on their web site wouldn't let me return if I had used it. I had to open it as we couldn't change her birth date.
The search sucks. Way too many results that have nothing to do with what I searched. eBay, of all sites, is way better in this regard.
I've also been an Amazon seller (FBA). The seller portal was crap.
I thought those news articles were about warehouse workers, not IT workers.
They easily pay 30% more for the same engineer just because of their culture/reputation.
The simple reason why most don't notice it is people really intuitively overestimate how big 6% feels, especially when a good chunk of the people who leave and satisfy the unregretted attrition quota look just like someone leaving to another company but who were in focus or pivot when they left.
To refresh the exact rules for those not in the know:
- Amazon requires 6% of employees who leave the company every year to be unregretted attrition aka URA
- To be marked as URA an employee must be in Focus aka Devlist aka Devplan when they leave
- Talent Review aka OLR must occur at least every 6 months for each leader with >=50 employees under him
- Every employee is ranked from Least Effective - High Value 1-3 - Top Tier with quotas being 5:35:25:15:20 % respectively
- The 5% rated LE must be entered into Focus
- This effectively results in 10% of employees in Focus per year
- Around half fail improvement plans in Focus and are presented with Pivot, which 90% results in firing. This is the oft discussed "Pip"
- Rest either get out of Focus or leave themselves while on Focus and are still marked URA
One of the advantages of Amazon's notoriety is you can know exactly how the process works. At other FAANGS it remains more nebulous and obfuscated to my knowledge. There still is not a concrete answer on who will actually get fired under Google's new GRAD system, and Meta does not seem particularly consistent with how they target double rated meets most. I understand the least about Microsoft and Apple, despite working there.Low performance can be gauged in many ways and what is a high performer in the context of a team or org may be a low performer if taking value to the overall business into account. Headcount allocations do not always reflect value (and that value varies greatly when comparing short term to long term).
These days things have leveled out a little bit and I think of Amazon as a new IBM in the making. More corporate, more cruft, more politicking. This is especially true on the retail side, as Amazon has become so complicated and specialized that you'll have specific tech teams for handling edge cases for particular types of products. I think I recall there basically being a 'shoes' team that would implement features just for selling shoes on the site, etc.
I will say though that when I was in AWS a few years ago, that I was downright shocked at how lean some of the teams were. IIRC there were less than 100 developers that maintain all of dynamodb for instance.
Including systems engineers ups it to 348.
This means a lot of managers hire for the sake of hiring, and create projects to facilitate that hiring rather than because the projects add any real value. They'll work with their PMs to invent some numbers to sell the project to leadership, but at the end of the day a lot of what goes on there is makework, solving problems that don't exist or re-solving solved problems without improving the solution significantly.
That said, since there's so much cutthroat resource contention, plenty of extremely important/valuable projects are chronically understaffed. I'm sure there's meaningful work for most to all of the engineers currently working at Amazon, but a pretty significant chunk of them are absolutely not doing anything meaningful today.
"Amazon is very, very bloated. So there's lots of people there but they're not providing a lot of value so they're first on the chopping block."
This is counter to what I have heard about Amazon, which is that it is a ruthless environment where low performers are stack ranked out of the company. Does anyone have any insight?