I apologize for bashing Java so hard in the past. I wish everyone wrote everything in Java these days. Digital life would be so much better.
Fuck no.
I wish everyone used C#, Scala, Rust or Python (DSLs like VHDL, SQLs and CUDA and super specific languages like C, Erlang, Haskell and Bash notwithstanding).
You can hate on them, sure, each for their own reason, but they’re all very well supported and good for what they’re intended for.
You owe royalties
Yeah, Oracle licencing has really taken the shine off Java and relegated it to the legacy dust bin.
Ok, now fire him.
The fact they had to do this to earn a promotion is an institutional problem. Don’t hate the player, hate the game.
the player can always choose not to play, though
It’s a big company. Someone’s going to play.
Yes, everyone should be evil at all times because otherwise someone else might out-evil you.
No. That putting the onus of change on individuals is a losing proposition. The incentives have to change or no number of good people will fix it. I hear the French have had very effective solutions in the past.
That’s just repeating the same thing: you think life being shitty is a reason to be evil, and someone not you has to make life less shitty before being evil is no longer acceptable. I disagree.
You seem to believe that I think it a justification for evil. I do not, people should not do such things and they are shitty people for doing them.
I’m saying that the idea of some good people doing the right thing fixing the problem is naive and doomed to failure and a real solution to the problem has to be bigger than the lazy “just no one be evil” proposition you seem into to champion.
hate the game.
Game rules: You want a promotion? Make something cool, improve something while using approaches that will show that you deserve a higher position and, therefore, a bigger salary.
Player: (Lies and creates shit that is even worse than the initial situation.)
Lemmy: Don’t hate the player, hate the game.
But that isn’t the game rule, now is it?
The rule is more: convince the c-suite that you deserve a promotion by any means necessary. Even if you have to make things up.
This is the difference between RAW and RAI.
You are contradicting yourself. If writing bullshit and making things worse gets you a better career position
You want a promotion? Make something cool, improve something while using approaches that will show that you deserve a higher position and, therefore, a bigger salary
Is not the rule of the game. Sell your story to your superiors is the rule of the game, that’s the real metric, the the thing that really matters.
Some people will do anything to justify scumbag behavior. How about instead of trying to define what a player and a game are we just say “this guy is clearly a scumbag, he should be sued”.
The scumbag behavior is from the employer. He’s only fighting fire with fire.
Some people will do anything to justify scumbag behavior
You are contradicting yourself.
Do you want me to present you with a definition of “lie”? I believe you don’t understand the phrase “Lies and creates shit”.
They built something worse and we’re still promoted for it despite it being demonstrably worse. Where’s the lie? They described something complex and techy sounding, did it, and got the promotion anyway regardless of the actual results, proving the results didn’t matter.
So you want the manager to be cleverer than the engineer in engineering, so the manager would be able to detect a deliberate lie from the engineer?
I’d expect a manager to be able to determine that testing data for the new process is showing it is worse than the previous system it replaced, and NOT promote that person, at the very least …
Yes, but more competent, not cleverer. Some managers aren’t fit to be in IT.
More like game rules: manager needs shiny buzzwords and big number go up. Having something that works fine for 5 years is considered stale and corporate culture is all about useless innovation.
I can do both, tbh. Though I do generally hate the game more than the player.
Fire the manager too.
What’s L5 and L6? What’s TC?
At 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
Career levels at Amazon (basically pay grades)
Total CompensationL5 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 tend to just pay “us” to do it instead lmao.
It’s open source - literally the opposite of black box.
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! 😅
Big tech pays large amounts of money. This is why people choose to work there.
Well yes, that goes without saying…
PS: 🇸🇪👋
Not really. That’s just how it works at mega tech corporations. He should try working for a startup.
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.
Swap Java and Go in text, then I buy it. Java is memory hungry monstrosity that runs on JVM and idiomatically uses piles of abstractions. I have exactly opposite experience, when rewriting a microservice from Java to Go reduced memory usage tenfold and sped up requests processing.
No, I believe it this way. It used to be one service that had access to everything it needs. Now it is microservices, so each microservice is caching a bunch of stuff, but of course all the wrong stuff, so every request requires at least one network call downstream. Thus more memory usage and slower.
Well, that’s the architecture problem, not the language.
With a little effort, one can write bad code in any language.
I don’t know why you keep getting downvoted, there’s no good code in all the universe written in a language that contains the letters j-a-v-a.
If the Java monolith used 6 gb of ram and each Go service uses 500mb of ram, but now there are 16 micro services, which uses more memory?
Monoliths are more efficient, but hav other issues.
Can be more efficient, but it’s not always. You can scale those services more too. Do you need all 16 running on idle? Lazy load then as needed. Also does it really need a whole 500mb? Why? If its just a cache made that’s better handles with another shared service (redis, etc). If it’s software, why? A full “fat” Suse Base Container image uncompressed is 94.8mb and not all of that will be loaded in RAM. Going down to a micro at 23mb. All this and now you can deploy it on the shared infra, no separate OS, Management/security/logging/networking solution.
Sure, but they also have duplication, IE database connections. Each service needs at least 1 connection versus one for a monolith.
There are pros and cons to any architecture.
This isn’t about architecture, this is about java being a blight upon the world 😭
According to votes, hating Java is bad, but hating microservices is good.
Nothing in my message is about microservices. I don’t care about that fight. I just hate java.
I was referring another comment in the thread, sorry for confusion. The OP attacks both Go and microservices, although it’s no Gos fault in the story.
Also I just hate Java too, and OOP in general.
Java’s biggest strength is that “the worst it can be” is not all that bad, and refactoring tools are quite powerful. Yes, it’s wordy and long-winded. Fine, I’d rather work with that than other people’s Bash scripts, say. And just because a lot of Java developers have no concept of what memory allocation means, and are happy to pull in hundreds of megabytes of dependencies to do something trivial, then allocate fucking shitloads of RAM for no reason doesn’t mean that you have to.
There is a difference in microservices between those set up by a sane architect:
- clear data flow and pragmatic service requirements
- documented responses and clear failure behaviour
- pact server set up for validation in isolation
- entire system can be set up with eg. a docker compose file for testing
- simple deployment of updates into production and easy rollback
… and the CV-driven development kind by people who want to be able to ‘tick the boxes’ for their next career move:
- let’s use Kubernetes, those guys earn a fortune
- different pet language for every service
- only failure mode is for the whole thing to freeze
- deployment needs the whole team on standby and we’ll be firefighting for days after an update
- graduate developers vibe coding every fucking thing and it getting merged on Claude’s approval only
We mostly do the second kind at my work; a nice Java monolith is bliss to work on in comparison. I can see why others would have bad things to say about them too.
Sounds like whoever decides these things knows nothing about IT.
they don’t. I mean for example Amazon puts all new hires on “on call” status for like a week every month. the LAST people I would want working On Call and waking up at 2am to try and solve something are fresh grad hires. You can actually watch videos on youtube of new grad amazon hires doing this, they actually document themselves, and the vast majority of them are “well it’s 1am and I just got a call…I’m going to try and fix this ticket but really I have no idea what I’m doing” annnnnd generally nothing gets fixed or they break it worse. So they end up being sleep deprived, going into the office the next day and sleeping at whatever workstation they can find available and it leaves you wondering “what’s the point?”
I personally am of the belief that being on call for stuff like this is pointless when you’re world wide and could literally just transition the stuff to a different team in some other part of the world but I guess Amazon treats it as a sort of initiation process or whatever.
“You are saying you are superfluous to the organization, gotcha.”
Amazon puts all new hires on “on call” status for like a week every month
That’s insane. Where I worked you had to spend about 6 months learning enough that they trusted you to be on call. For months you’d just learn the systems. When you and your team agreed you were probably ready to be on-call, you’d be the “shadow” on call. The primary would get paged and you’d get paged too. You wouldn’t actually do anything, but you’d watch while the primary tried to solve the problem and take notes. If that went well it would switch to reverse-shadow. Then you were on call but there was an experienced person who was paged and ready to step in if you needed help. Only if that went well could you proceed to full solo on-call status.
being on call for stuff like this is pointless when you’re world wide and could literally just transition the stuff to a different team in some other part of the world
Where I worked there were 2 teams in 2 different time zones. But, you still were up late or early at times because there’s no perfectly-opposite time zone where team B is exactly 12 hours behind team A throughout the full year.
Also, if you recorded yourself doing on-call activities on YouTube or TikTok or something, you’d be fired. It would be the same thing as speaking to the press without authorization.
you should really watch some of these videos on youtube, there’s quite a few of them and yes you’re 100% spot on that if I recorded myself doing this stuff I would be fired but some of these kids go into great detail as to what issues Amazon is having, the details of said issues, and potential work-arounds/fixes their seniors suggest to them. When on call only the new hire is paged and it’s up to them to page a senior or someone else on the team when they’re stuck. The problem is these kids don’t want to admit they’re stuck to their seniors or other team members because they feel it’ll impact them negatively. They admit to it. So I’d say 8 times out of 10 the tickets they get paged for don’t get resolved and are passed on to another team in the morning. So the whole thing is pointless.
In one video I watched they do have a shadow but it was reversed. the senior is the shadow and ONLY during the day. the new grad hire is still doing all the work. and after office hours they’re no their own. I wish I could find the video again as it was awhile ago but one kid recorded himself working on a ticket at like 3am and I was almost screaming at the screen like “NO DON’T DO THAT OH MY GOD PLEASE CALL SOMEONE!”
It’s like when AWS went down a few weeks ago I was thinking “probably one of these new hires at 2am trying to fix something”
Its not an initiation, it’s hazing
I wonder if you’re actually right. I’ve held positions I had no business holding. Ended up having to escalate half across the world anyway. But sure got my feet wet. Don’t know how much the company lost. Sorry, companies.
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.
Not untrue. I don’t understand or give a fuck about the business side. Same goes for my business colleagues about software.
How do “real” engineers handle this shit? I feel like IT shouldn’t have to reinvent it
Perverse incentives combined with underskilled management 😐
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.
All of you who can’t understand the concept of feature complete (see syncthing drama for example) find something useful to do. I promise it’s out there.
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
Yep, this is the culture I keep running head first into as I try to level up my career.
Same. Generally speaking our company is pretty healthy, but we’re still stuck in this really stupid leveling system where advancement is tied to greenfield development and I’ve been doing maintenance and compliance work for the last five years.
Man, it’s so frustrating. I just can’t turn off my own qualms with shitty corporate culture and it means I will be less successful by the metrics we’ve set ourselves.
It’s ironic how so many of us find ourselves being extremely valuable for the exact reasons they can’t stand us. As IT, I’m used to being seen as nothing more than red marks on a budget to the folks making decisions. The only thing they hate more than listening to us, is when they have to.
Kinda got a chip on my shoulder today it seems.
You get the behavior your incentives encourage, whether you realize what those behaviors are or not.















