Well at least harming Amazon is a net good
Imagine getting paid to do it.
Was in this position at Microsoft for two years. I already hated them because I ended up working for them after they acquired my smaller company. Pennies on the dollar, massive layoffs beforehand, fired literally all the most important people (which is why I wasn’t fired, I really am just trying to collect a paycheck and do nothing more).
Anyway, ended up basically being placed in a middleman position that I quickly realized didn’t need to exist. Basically, spent two years slowing down communication between my companies team and the existing Microsoft team. Literally, I just kept the two teams from directly communicating and going through me for everything. I think I wrote less than 1000 lines of code during that time.
And no, I didn’t like my team either from the original company. They were all new hires prior to us being acquired and they fired everyone on my team that had worked on the project for nearly 5 years. So, didn’t feel bad about slowing them down either.
Basically a shitty startup that milked it’s employees with hopes of Microsoft becoming our customer. Encouraging people to exercise their options only to sell the company for pennies on the dollar and fire them.
Got through two years of slowing down an awful genocide supporting company before the layoffs finally got me.
Was a good run.
Not really. If that service costs x2 in compute, it also means it causes x2 pollution.
And this is why you rarely find decent people with good income in todays economy.
Sounds like whoever decides these things knows nothing about IT.
Technical people don’t understand the business, you see.
You fuck over poor people for money, it’s not complicated
As long as I fuck over more people than fuck me over, I’m ahead.
Ah, a republican!
Zero Sum Party 4 Lyfe.
You write clean code and you get replaced in 2 months, because everyone can work on that code.
You write an unreadable mess that no raise will convince other employees to work on and suddenly your holiday requests don’t get declined anymore.
These days it’s also because you want the AI to get confused by your code too. If it’s too clean you’ll have a PM with cursor making PRs wondering why your salary is justified.
It’s almost like the “meritocracy” under capitalism is a bald faced lie.
Reminds me of the time when we wrote an internal tool with strict SOLID principles. As new programmers came on, they had no idea what was going on cause no one in college told them about design patterns. Most of the OG’s quit soon after and the new guys remained.
Or you get fired because everyone else says your code is an unreadable mess.
In my experience… nope. Never seen it happen. Even when there are clear coding guidelines, and stacks of code smell violations.
If the code actually works and is vaguely important, I think you are right.
If anyone ever has to fix it because it’s also broken on top of being a mess, well they aren’t quite so safe. Maybe if you are always available to fix it same day, but if you ever go on vacation and it hits the fan while you are unreachable…
In my experience, nope. Assuming it works as promised, the situation (usually) gets viewed as a skill gap. You think their code is bad, because you don’t understand it well enough. Unless you are personally willing to redevelop it, of course.
Depends on the company. You wouldn’t last very long at mine putting out garbage.
What’s L5 and L6? What’s TC?
L5 and L6 is a label for career progression, like getting promoted from staff to senior, just with different words. TC is total compensation.
Total compensation per what, year?
Yeah, typically per year. And usually it’s called Total Compensation because some of it is in salary, some in stock, some in stock options, sometimes even some kinds of perks, etc.
So all of that gets balled up into Total Compensation, which is different than annual salary
$550,000 a year as a software developer. That’s insane money. You could buy a luxurious house in the city CASH after saving for two years with that salary, where I live. Including other expenses. They are making 3x my salary, also as a software developer.
Amazon throws money at people with niche skill sets.
They were paying engineers with experience with SELinux and CDS developers nearly 500k the past few years.
Insanity
Tbf selinux tends to be a hell of a black box. Anytime my shit doesn’t work and I can’t explain why, I default to blaming selinux and hit up IT. Seems like I’m right about half the time lol
SELinux is super simple, you just gotta understand how the system works.
Once you understand the syntax and flow of SELinux policy then writing it is easy. Writing GOOD policy on the other hand …. Lmao.
Typically most IT departments “fix” it with
setenforce 0which is the equivalent of removing the seatbelt cuz you can’t figure out how to latch it.Android has one of the most “robust” applications of it but it doesn’t serve the purpose a good policy does, it does add a substantial layer of defense. Apple contracted my company to come out and teach them how to SELinux a few years back. Ultimately they (companies that desire SELinux as an added layer of defense) tend to just pay “us” to do it instead lmao.
Big tech pays large amounts of money. This is why people choose to work there.
Well yes, that goes without saying…
PS: 🇸🇪👋
The “where I live” part is key. Because very likely this person is in SF, where they cannot buy a luxurious house cash with that money, and where cost of living eats surprisingly far into that stupid high number.
But notably, this is why all the normal people who don’t make a half million dollars a year can’t live in SF! 😅
That’s why I mentioned “where I live”. 😉
Career levels at Amazon (basically pay grades)
Total CompensationAt Amazon you have the following levels
L4 - Junior. A new grad. Expected to be promoted within 2 years or let go
L5 - Mid engineer. Very wide band. Encapsulates anything between a level 2 engineer and a team lead at other companies. Can be expected to lead individual teams at times. Is considered a “terminal” position (there’s no expectation of a promotion past here)
L6 - Senior. Has the scope of what a Staff engineer would at other companies where you’re not only concerned with your team but others in the department. I think like 10% of engineers ever hit L6
L7 - Principal Engineer. You have like 1-2 of these per department. These are more like architects at other companies. About 1-2% of engineers ever hit this band.
L8 and beyond are for fancy hires and shit. Very few if anyone ever works their way up to those bands.
So, where are L1-L3?
Are L3 student programmers?
L2 people who never coded anything in their life?
L1 are people who can’t read? Like babies?
Non-engineering roles I think.
IIRC levels correspond to all employees across the company.
Yeah it’s weird and I don’t get it either.
Non-engineering positions
Is that why they are gradually replacing the bad AWS Console UI with something 10x worse?
Apart from being slow, having discoverability issues, not being able combine filters and actions so that you frequently need to fall back to shell scripts for basic functionality, it being a complete PITA to compare things between accounts / regions, advanced functionality requiring you to directly edit JSON files, things randomly failing and the error message being carefully hidden away, the poor audit trail functionality to see who-changed-what, and the fact that putting anything complex together means spinning so many plates that Terraform’ing all your infrastructure looks like the easy way; I’ll have you know there’s nothing wrong with the AWS Console UI.
Funnily enough I joke all the time that the new UI is a subtle ploy to get us to terraform everything. Still PITA when you want see what is fucked up in an API Gateway route… So… Much… Wasted… Space
Probably, it’s also why Google has 100 different chat clients.
I fought for getting a 4/5 rating at an old job and gave lots of examples. Their argument was that I didn’t deserve it because those were just expected. I pointed out my work compared to others in my team and was told that it compares across the company, not the team. I kept causing a fuss about it because I was so angry about it and finally my manager said something about the bonuses has already been communicated and people would be angry to get less. I was confused because I didn’t want more money, I was just offended they said I was performing on average when I was going above and beyond every day. It was also really embarrassing to me. If they’d just said the rating doesn’t affect anything except your bonus I wouldn’t have even cared.
The whole thing is all BS.
finally my manager said something about the bonuses has already been communicated and people would be angry to get less
That’s because they have a fixed budget and the proportions are tied to evaluated performance tiers, increasing your rating would contractually require them to compensate you more from the same pool of money
You’re falling for the “we’ve constructed this machine to tell you no so you can’t argue with us” ploy
No, as I said to another, upper management has every opportunity to fix the budget. Your direct manager however can not
I’ve found that laughing in their faces and putting in 2 weeks is fairly effective at breaking that wall. Amazing what money they can find when faced with the alternative. Otherwise, the correct move is to actually leave. All of you cowards that submit to the machine make it worse for everyone.
And I have in fact left that kind of jobs myself. Not trivial in a job market like this one though.
Need to make unions stronger again.
Nah, that’s bogus. It’s a private company, they can do what they want. They could have absolutely given OP the 5/5 rating, and just had them sign something saying that they were content with the bonus appropriate to a 4/5 rating. No one would have had to receive a penny less.
It’s very annoying to have managers say their hands are tied when they very well could go to bat for you with their superiors. I was lucky to have one manager really push for me in the past like that. It’s rare.
That fixed budget is what they always say. The budget for the company is their problem, not yours.
Upper management can certainly increase the budget. Your line manager probably can’t
Yeah exactly. So it keeps everyone in their place, powerless to change anything within the structure that exist. Exactly as intended.
Yeah, no shit, thank you for repeating what I said. The point being I never cared about the money and didn’t even understand it was only about the money. I only wanted recognition.
At one job, my manager had a spreadsheet that he was tapping away at during my review. He had the audacity to tell me that he had to downgrade some things so that he wouldn’t have to go to a committee to defend at the individual or group level.
I transferred to a different product.
You will soon become just as jaded as the rest of us, and stop expecting your company to appreciate you. It wont feel good but you can change jobs often and get your salary up without any feelings of illusional loyalty.
Haha, the same. Was doing great, supported customer calls, onboarding new engineers, along with ongoing incoming tickets and got 3/5, wrote a few good and a dozen bad RFCs.
Then the manager had the audacity to ask why I am changing the company with a 40% raise. I could’ve asked for promotion, he said.
I don’t work at Amazon, but we have a similar system. I’ve gone all-in on a couple of subordinates saying they deserved a 4/5 for this or that work. And because they were new-hires, I eventually got the grades punched through after a bunch of hemming and hawing.
Also advocated for my own higher-than-average marks on a few occasions. And just arguing the case gave me the grade as often as not. If everyone in the department had been as stubborn and insistent, I don’t know that they’d have given the whole floor these grades. But the squeaky wheel…
Not really. That’s just how it works at mega tech corporations. He should try working for a startup.
Yeah this was my experience when I worked there. Driving goals and doing good work isn’t enough. You need a fancy project to demonstrate “expanded scope” otherwise your promo would get rejected.
Sometimes things worked the way you wanted and people got promoted doing their normal job. A lot of times though there were a lot of fancy projects built to get people promos that suckers got stuck with the bill on.
This ain’t a case of one dude scamming the system as much as it is institutional rot from red tape.
Perverse incentives combined with underskilled management 😐
You get the behavior your incentives encourage, whether you realize what those behaviors are or not.
The whole thing is pegging my BS meter, including letting an L5 deploy without a code and architecture review, TC, and the fact that they’re posting this and claiming they’re still there.

I’ve got a few friends who work at Amazon, and while the story certainly sounds embellished and a bit too “just-so”, the corporate attitude of make-work to justify a promotion even when its a waste of time and resources rings true as a bell.
Did this guy actually oversee a fully transition to a new service and waste a bunch of internal time and money for a system that’s sub-optimal by any conceivable measure? Idk, maybe. If he’d just written “Twitter” instead of “Amazon”, I’d have taken it at face value no problem.
Did this guy author an overly-complex plan as part of his promotional material, get it vetted and reviewed and rubber stamped by a bunch of friendly higher-ups because they wanted to justify his promotion, and then stuck on a shelf marked “Maybe we’ll do this in 2029 if we’re not busy with something else”? Equally likely.
Does Amazon have a bunch of bread and butter break-fix work they could be dedicating staff to, rather than chasing the next digital White Whale so they can feel cutting edge? Yeah, no shit. Absolutely.
I believe it. I don’t work at Amazon, but I’ve seen proudly launched pieces of shiny crap support promotions at other companies.
I’ve seen some garbage slide through code reviews. Most people don’t do them well.
I’m doing contract work at a big multinational company, and I saw a syntax error slide through code review the other day. Just, like, too many parenthesis, the function literally wouldn’t work. (No, they don’t have automated unit tests or CI/CD. Yes, that’s insane. No, I don’t have any power to fix that, but I am trying anyway). It’s not hard to imagine something more subtle like a memory leak getting through.
In my experience, people don’t want to say “I think this is all a bad idea” if you have a large code review. A couple years ago, a guy went off and wrote a whole DSL for a task. Technically, it’s pretty impressive. It was, however, in my opinion, wholly unnecessary for the task at hand. I objected to this and suggested we stick with the serviceable, supported, and interoperable approach we had. The team decided to just move forward with his solution, because he’d spent time on it and it was ready to go. So I can definitely see a bunch of people not wanting to make waves and just signing off on something big.
I can’t speak to this situation, but broadly speaking I am familiar with general messed up stuff like this as well as perhaps adjusting some fine details to make the scenario relatable to an audience unfamiliar with the specifics of the real situation and/or obfuscating the details so that the person doesn’t out themselves to someone else familiar with the specifics enough to recognize.
The broad strokes seem plausible and any oddities in details I consider to be less important and/or understandable if it was tweaked for an internet audience.
This almost makes me appreciate my current job, where most stuff has been in place for years and any changes take forever.
It’s kind of a bummer that it’s going to take like six months to add a linter, and they only started using git like last year.
I worked in a heavily regulated industry. Everything required a manual test. Let’s say you have an employee ID that is 10 digits long which they use to log in. You had to have some else (couldn’t be the developer) to write a series of tests, get those tests approved by 5 people(with specific titles) then a third person to execute the test, then the second person had to write a report saying it all passed, then that report had to be approved by the same 5 people.
That typically wasn’t the delay. The delay was to execute the tests we needed to stop production. That typically was a 6 week wait(unless urgent for “reasons”) and changes like “I will drop scrap by 83%” was typically told wait till July 4th or Christmas breaks. Why? Because production would be down for 3-4 days typically. Someone had to start the system, ok no entry produces error, executor and developer have to sign a physical paper, restart the whole system, now an entry of 1 digit produces an error, sign the form, repeat for all digit quantities up to 9, repeat for all digit quantities up to the choosen value(based on severity if an issue occurred), 2 people sign for each one, system restarted between each. If you had say an enter button and a cancel button each had to be checked for each quantities of digits. Oh but wait what if someone just types there name… Now repeat everything for alphabet values… What if someone does combination, more tests, more restarts, more signing.
Reports easily surpassed 1000 pages, no one really had time to check all that so I saw so many missed signatures and missed tests. I asked the “senior validation expert” can I just automate a lot of these tests using unit tests and attach a computer generated report of all tests passing and the source code of the tests? " the response I got was" what’s a unit test? "they still don’t use any of them to my knowledge.
Similar boat, it’s kinda frustrating that it takes 6 months to approve 30 minutes of work, but at least the job is boring.
Which VCS did they use before git?
SCP to prod, or ssh in and copy paste. Devops only removed write access to prod machines this month, and people complained. (No, we don’t have docker)
I think they used Amazon CodeCommit for a while, but I don’t know what that’s like.
Wow, I imagine that caused a lot of problems.
You would be surprised how far that type of thing can get you when the team is small and experienced.
It tends to explode when you hit a certain number of people or you replace a senior with a junior who promptly explodes the thing.
we dealt with similar stuff at our company as the design team grew. amazing how far simple systems can get you with basic practices and common sense.
now with triple the team size and a few less than extremely competent people, we have tons of file management issues, even though there are more processes in place to avoid them. I hate it.
I’d ask if you’re at my work, but this is an amount of organizational improvement that they haven’t yet been able to begin
[ In lieu of a comment, please see “Bullshit Jobs”, by David Graeber, which is incorporated here by reference. ]
Sounds about right. There is no longer any incentive to focus on maintenance and incremental improvement (the stuff that actually keeps the lights on and the revenue flowing). It’s all about the new and shiny–even when it results in regression.
Which is why AI and vibe coding will survive. Besides the part where it’s not my code, the company owns it. The fuck do I care how good it is. If it works and gets me a promoted or moved to a new spot in a different company. Heck yeah. Issues down the road are not my problem.
Personal project: page load takes under 10kB and any button or link loads in millisecond.
Work project: Fuck it 26MB page load. It’s not like the pages load in under 5s before anyway.
The personal project is a matter of personal pride, whereas for work, any old thing will do, as long as it meets the requirements.
I’m in business operations, downstream from you guys. Reading posts like these are helping me understand better what you all are going through.
We had several of our systems “upgraded” and broke a lot of our tools. The dev team vanished off to work on the next shiny bullshit “upgrade” and turned my 15 minute tickets into 3-4 hour tickets.
My manager was telling me to ping someone and let them know. After nothing happened there, I started opening tickets. After about 140 in 2 weeks, I finally got someone’s attention and we’re grudgingly getting a couple devs assigned to start repairing the automation that broke.
I am sorry to have to do that, but our entire team was drowning and pinging someone on teams with API errors wasn’t getting anything done.
It’s a terrible working arrangement in most companies–particularly between dev and infrastructure teams. “Legacy” sysadmins that were previously celebrated for maintaining rock-solid environments with high uptime are now denigrated (and eliminated) when they can’t make up a new shiny for MBA managers (who are not real leaders)–to peddle the same bullshit to senior executives.
It’s all fucked.
















