How good engineers write bad code at big companies
Posted by fagnerbrack@reddit | programming | View on Reddit | 104 comments
Posted by fagnerbrack@reddit | programming | View on Reddit | 104 comments
AdUnlucky9870@reddit
the real killer is when the person who wrote the original bad pattern left 2 years ago and now everyone treats it like "the architecture." seen whole teams cargo-culting patterns that started as a quick hack someone never came back to clean up
seweso@reddit
HR never seems to focus on employee retention, do they?
G_Morgan@reddit
It is a prisoner's dilemma. Basically everyone in software is better off if businesses removed all the "come join us" benefits and just paid more money. Then nobody is suddenly getting a pay cut and being incentivised to move again.
However do that and the one company that does big signing on bonuses has an edge over the others. So everyone else does it.
seweso@reddit
Signing bonuses is actually not a thing here (in the Netherlands).
Are those at least bound to staying an x amount of years?
Magikarpical@reddit
in California, they can say you have to stay for x amount of time but legally they can't take it back once it hits your bank account 👌 every signing bonus i've ever received was paid within the first two paychecks
serrimo@reddit
It's not popular at all in Europe, but American companies in Europe does do it.
You need to wait up to 4 years to unblock all.
helm@reddit
We still need to change employer to get a raise.
RegisteredJustToSay@reddit
That's stock vesting, and is no different from regular stock refreshes (so called golden handcuffs) which usually happens yearly. Sign up bonuses are normally cash and paid+taxes along with your first paycheck.
OMGItsCheezWTF@reddit
I've worked in several large tech firms in Europe and RSUs are very rare if ever used at all. I've only received them working for US tech firms.
cauchy37@reddit
I've worked in few, and American companies give you RSUs if you're going for a high enough position, it's a big incentive.
CpnStumpy@reddit
Signing bonus isn't RSUs though, two totally different things
cauchy37@reddit
Also, I was replying to a comment about RSU, not signing bonus. Someone higher did, though.
cauchy37@reddit
I understand, my current company does both. Signing up bonus (cash) and RSU package for joining, prorated for 4 years and first vest after a year.
gimpwiz@reddit
Every signing bonus has a different agreement behind it, the ones I've seen are for 1 or 2 years, usually where if you quit you need to repay the pro-rated amount, but others are written differently.
ScriptingInJava@reddit
I've never had one, the conversation around them always died at the first mention too (UK based).
Recently joined Microsoft and asked "is a signing bonus part of the comp?" and immediately got one 🤷♂️
RecentSubject3918@reddit
My sign on bonus was $70k USD and only had to be paid back, at a pro rated rate, if I left in under 1 year.
Sign on bonuses are meant to bridge the gap between equity vests so you don’t feel like you have to leave your old company on a specific date and instead join the new company immediately
verrius@reddit
It's not really a prisoner's dilemma though. Because companies could just offer better salaries and bonuses to people who have been around for a while; this makes business sense, because people who have been around longer are generally better at providing value for the company. Signing bonuses and pay bumps for transfers make sense as a direct result of companies not compensating existing talent. But they'd all rather play the short term game because ....???
DropTheBeatAndTheBas@reddit
thats called contracting
az987654@reddit
HR isn't here for employee happiness, it's here to protect the company
RedRedditor84@reddit
It takes a level of business maturity to go from transactional employee life cycle to strategies around talent management, development, and retention.
seweso@reddit
Would you start out a business using the former or latter?
campbellm@reddit
That's not their job. They're there to keep the company from getting sued, mostly by current and ex-employees.
SanityInAnarchy@reddit
They don't seem to, but the article makes a very common mistake:
For this, it cites a StackOverflow blog from early 2022 with this title:
I emphasize the timeframe here because this was before the wave of layoffs that we're still dealing with. Companies were still growing.
And, well, do the math: Growing the company reduces average tenure. Even if you had 100% retention, if the company doubles in size every year, your median tenure will be less than two years.
That's not really a problem for OP's observations: The relative beginners outnumber the old hands on any given project. But it matters if you're proposing doing something about it at the executive level. If the company is growing relatively slowly, then retention would absolutely make a difference to this dynamic. If the company is growing at the stupid rates Big Tech has, then it probably doesn't matter as much.
And the author also points out internal mobility as a factor driving this... but that's one of the best things about working in Big Tech: You don't need to find an actual new job and everything that entails (new insurance, new commute, maybe a new city) just to find a new project to work on.
UNisopod@reddit
And those layoffs came after a huge influx of people into software over the pandemic, so it's basically counting this one-off surge event as being representative of the industry's structure.
ChrisRR@reddit
What does this have to do with HR? Everything in the article is to do with devs/engineers, not HR
phillipcarter2@reddit
Why would HR have any power here? They are rule enforcers, not the group that sets priorities.
CherryLongjump1989@reddit
It’s a snake eating its own tail. The MBA executives almost always defer to common HR design patterns for how to run their companies. And HR always defers to the executives and cancel any plans to improve any of those best practices, even when you have HR professionals who are smart and can see that it’s a broken system.
It’s the same sort of self perpetuating system that explains why the Russians keep doing meat wave attacks in Ukraine.
CherryLongjump1989@reddit
No, you need a union for that.
coderemover@reddit
I generally don't agree with the main points of the article. A experienced engineer usually produces higher quality code even when working in a language or tech stack or codebase they learned 6 months ago, than a junior with 2 years of experience only in one tech stack. I do agree with the point that sometimes people work under pressure and are overloaded, so they take shortcuts.
I think the main culprit for producing bad code is this spiral of death:
- Engineers need to add a feature into a subsystem that was never designed to have such feature.
- Engineers can change the existing code and implement the new feature properly, or just put a few more ifs on top of it, adding complexity, but it would be shipped faster.
- The management wants the feature fast -> engineers take the shortcut.
- The code gets more complex.
- Everything works for a while fine.
- The cycle repeats.
- The code gets overly complex, all abstractions are broken/leaking eventually.
- Defect rate goes high.
- Before each release there are a few critical bugs that need to be patched fast so the release goes out in time.
- The result: more hacks on top of more hacks. But all bugs are eventually fixed and the code gets shipped.
- After the release - one of the engineers wants to go back and refactor/rewrite most fishy code and wants to remove the hacks and fix the abstractions. He's told "Don't touch what ain't broken!".
spline_reticulator@reddit
This is actually where things like Cursor are great. It's pretty easy to get it to write a bunch of integration tests and then have it do a medium to large refactor, so you can write the new feature in a better way.
electronaut_ritual@reddit
I’m a mid-level developer at a company I’m absolutely positive you’ve heard of, and what it comes down to is sometime my manager asks me to implement features well, but more often than not they asked me to implement them either quickly or inexpensively
UNisopod@reddit
The classic two-out-of-three dilemma
electronaut_ritual@reddit
Size, price or location, pick two
coderemover@reddit
When asked directly every manager will tell you they value quality and correctness just as much as shipping fast. And they will even tell you things like - don’t rush, take your time, make sure the code is rock solid. But words are cheap, and it all doesn’t matter when there is a deadline. And often the very same people construct incentives to ship fast and with low quality (by e.g. praising people who shipped fast).
dessmond@reddit
This may be by design. After 10-15 years you'll migrate to a saas solution where you only have to 'configure' the inner company's processes.
runawayasfastasucan@reddit
This is how the culture apparantly was where I started and I hate it.
stumblinbear@reddit
Fuck, we're at the "after the release" part now
At least we've been given 2 weeks to refactor it. Not enough time, though, the feature is pretty big
i860@reddit
It’s a combination of bad management who don’t understand what good engineering actually is combined with hacks who don’t understand what abstraction and encapsulation are so they just shit all over the code until they get something resembling what they want.
It’s why AI is perfect for them. There was never any craft in the first place.
coderemover@reddit
I also noticed that it’s extremely hard to get out of this spiral. Once you have enough bad code, and enough bad choices have been made, the cost to fix it gets much bigger than the cost of adding more hacks. I tried a few times improving the structure of code somewhere and a few times I realized I’m refactoring half of the system and had to stop (rewrites are of course not allowed).
RecursiveServitor@reddit
Turns out writing truly modular code is kinda hard. Hyrum's law also applies, I think.
Photoperiod@reddit
At my current big tech job it all stems from top down management pressure. Engineering is never given the time to actually build something good. Everything is a PoC/mvp that gets promoted to "production" because some estaff asked for it now.
120785456214@reddit
This has been my experience at every job 😔
anonomasaurus@reddit
You are describing my week perfectly. :-(
okenowwhat@reddit
I write bad code at a small company lmao
entropic@reddit
I'm waiting for the version of the article for bad engineers to write bad code at a big company, so I can get that promotion I've been wanting.
LikeASomeBoooodie@reddit
Article focuses on big tech but there’s a simple pattern I’ve seen everywhere I’ve worked:
Funky247@reddit
There's also a naive perception that you can just come back and fix it later.
A few months later: - it's integrated into everything now and it's way more work to fix - a bunch of other things have copied the bad pattern - fixing things doesn't make sense in the short term because you're risking breakage by changing working code for no feature gain
The only two moves I know to deal with this are: - do a refactor pass to clean up the area before you do feature work, but only if you have the breathing room - put extra effort into doing it well the first time
Both of these go straight out the window if you're under the gun to ship. Also, engineers that don't bother with this can ship faster than you so you need to make sure you can justify what you're doing. The bar should be pretty high (i.e. the existing code has to be pretty bad), or the cleanup should be pretty straightforward.
The only incentive to do this seems to be your own pride in your work. If your team values this sort of thing, you might get some respect from your peers too.
yel50@reddit
that's, honestly, the truth behind 10x engineers. nobody is that much faster than everybody else. everybody's car is going 60 mph. the only way to get from A to B faster is to cut corners, which is what 10x engineers do.
davidlormor@reddit
I think you hit the nail on the head with the last point about other engineers shipping faster. In my experience most devs just don’t care and are just willing to grit through the “bad” code to get done with the task and move onto the next thing, making anyone willing to fight the mess look slow or pedantic or whatever…
I’m not sure if it’s my ADHD or what, but I’ve always had a MASSIVE aversion to bad code. A lot of times I’m willing to take the fall for being “slow” and fixing things, because I almost literally can’t start working until the code is “ready”.
tooclosetocall82@reddit
There’s a third move, hide the refactor in other work. This probably mostly falls into your pride point, but if you have a few engineers on a team who do care, this method can slowly clean up a codebase without raising red flags to management.
dreadcain@reddit
It'll work for a while but if communication has broken down to this point I'd probably be looking for an exit. Management isn't going to be happy if they figure it out. Doesn't matter how needed it was, if they understood that you wouldn't have had to go behind their back. They'll just see it as you taking time away from their priorities.
Schmittfried@reddit
There is really nothing for them to find out. They define the priorities, I define the how. If I think it’s necessary to refactor a service to implement the feature they want and if it fits in the time frame, I will. They won’t even ask about it because they don’t know and don’t even wanna know how the sausage is made.
unicynicist@reddit
The problem with a slow refactor is you temporarily increase technical debt during any migration. There comes a point where you have bifurcated implementations, two (or more) simultaneous paradigms where some parts are using the old way and other parts using the new way.
If something comes up and the refactor or migration never completes, you're left with an oddball codebase in worse shape than before. A stalled strangler fig migration looks like something out of a Cronenberg horror.
This happens when management fails to prioritize paying down technical debt. Refactoring is always a bit like debt consolidation with a higher interest rate: you really want to be sure you can pay off the balance before the balloon payments start.
nierusek@reddit
That's how I do this.
GabiTheProgrammer@reddit
It seems reputational risk of the company as an incentive is a myth. It barely works for security issues.
stumblinbear@reddit
Our codebase has been pretty well maintained because management generally gave us the leeway to do things at the pace we set. It's very easy to work in the codebase, now, and we can ship things at a reasonable pace. I attribute this mostly to the fact that they now understand that the reason we've now gone through two entire rewrites of our product in 4 years (it was genuinely unsavable, we all knew the rewrite was doomed from the beginning, but we had an emperor's new clothes problem) is because we hadn't been given time to do things correctly
... Except recently they decided to silo one newer engineer to do an entire feature against everyone's recommendations and common sense. The feature is messy and doesn't follow our patterns, but they were "under the gun" to ship it, so we had to merge it as-is. I made it very clear that this is unmaintainable, that they are the only person who barely understands how it works, and part of the reason the feature got delayed in the first place (a couple months behind) is because they weren't following proper patterns and now it's difficult to reason about how it functions at all. There are lingering spooky-action-at-a-distance bugs that we are having trouble tracking down
We've been given... A whole two weeks to focus on a refactor of it. While also doing other feature work, so it's not actually time to focus
Not sure what this brings to the conversation, I think I'm just venting a little bit, haha
Kalium@reddit
I've found that a lot of middle and lower management at big companies have adapted to this situation by ensuring engineers are always under the gun to ship. It gets features off the feature factory floor longer and that's often the only thing middle management cares about.
VictoryMotel@reddit
Exactly, bad architecture is software poison.
If moving data around is not straightforward, people will have to do hacks to figure out how to get all their data from one place to another and not just the data that was planned for.
If the data model isn't planned well then people will have to do hacks to store the data they want.
If error data isn't handled well then hacks will be built around that too.
Same goes for scheduling, anything that needs to happen asynchronously, and on land on until it's all hacks.
ShedByDaylight@reddit
I feel like this rarely, if ever, happens, and often those major overhauls fail for other reasons.
mguid65@reddit
Spoiler alert, there is never time allocated for maintenance or refactoring tasks.
hiddenhare@reddit
There are two problems here, feeding into one another.
Firstly, many codebases are difficult to edit, so refactoring is more expensive than it ought to be. The scoped "refactorings" you describe are often veiled rewrites, because that part of the codebase has been totalled. In other engineering disciplines, this usually involves some kind of catastrophic accident - but in software engineering, because nothing physically explodes, catastrophes are routine. When engineers are forced to meet an impossibly short deadline for a complex feature, causing so much damage that it triples the cost of editing that module, don't expect an invite to a post-mortem meeting; most of the time, the mistake won't even be acknowledged.
Secondly, most engineers suffer from a low-trust working environment. All substantial work requires authorisation, and to be authorised it needs to be visible to non-technical managers. Such environments either drastically reduce maintenance work, or eliminate it completely; an unmaintained codebase will inevitably fail, like a machine that nobody is oiling.
When code is cheap to edit and engineers have more control over their own time, spontaneous drive-by refactorings become viable, and poor choices are no longer locked in. (We could daydream about going even further, and setting up an engineering team where it's safe to talk about casual maintenance work in front of your managers, so that it can be organised and systematised - but let's be realistic here...)
m0j0m0j@reddit
And the point 1 is often because: “we don’t even know if this survives so no reason to invest too much into it, and the deadlines are extremely aggressive anyway”
stumblinbear@reddit
The really annoying part is the survival is generally dependent on it being stable and performant
.... Both of which require more investment
phillipcarter2@reddit
I disagree. Survival and success is usually due to external factors from the actual engineering. Users who love a product put up with a lot of faults for a long time, but good architecture and rock solid stability doesn’t usually get someone to use or buy something.
stumblinbear@reddit
Yeah, fair. I'm biased because we've been bleeding users due to crappy performance for years and have done two full rewrites to try to fix it. We survived initially with terrible performance because we were really the only option
Only the most recent rewrite has shown any success on the performance and stability front, but we'll see if it pans out
phillipcarter2@reddit
Yeah that’s a good point, especially if competition can offer a smooth offramp and you’re hindered by a bad design or whatever, it can be rough.
KindOfPoo@reddit
I think it depends K what the product is. Infrastructure software for data centers, for example, benefits greatly from stability and performance, both of which are predicated on code quality
phillipcarter2@reddit
Sure, it definitely does. Although there’s some wiggle room there too. I am a happy user of Railway because of an incredible developer experience for the build->deploy->observe pipeline, despite sometimes failing a deploy because the github integration didn’t clone the repo. Easy enough to restart it in the rare occurrence it fails.
watduhdamhell@reddit
This. It's often too much work to rework the existing code and is rarely worth it, especially if it's already in production and working/it's a mature/commissioned system.
It's rarely worth it as opposed to just maintaining it, which will require, as you said, to integrate new code in the same shitty fashion the old code was implemented. Otherwise none of it will make any sense at all and it will be totally fragmented.
I'm a controls engineer so this happens with graphics too (which we also make in my field)- if you show up and the graphics are ass, well. You often just have to make your own graphic additions ass too. It has to match what's already there. It's soul sucking sometimes...
LethalBacon@reddit
I worked at one company for a decade. Monolithic legacy app, written in VB in Italy in the 2000s, then converted to C#. Very few architecture docs, and even then most were outdated. About half the method/class names were in Italian. Zero comments in code.
I just thought I was a bad dev until I started seeing properly documented enterprise applications.
Zanion@reddit
A simpler explanation is that the base competency and skill level of big tech engineers is vastly overestimated relative to the industry mean.
Your shit ain't that hot.
znihilist@reddit
I know it is a just my own perspective, but after working in big tech it is obvious (again to me) that people who are good at selling themselves as really good are the one that get hired, not the ones who are good. Obviously some people are good at marketing themselves because they are good, but the majority just learned the trick.
My favorite example is me joining the bar raiser interview at Amazon for an L6 candidate, something caught my interest that the candidate said in one of their answers (no red flags though), so I asked a follow-up, and they failed to answer a very basic question regarding recommender systems, so I followed with a clarifying question to make sure they understood what I was asking because I don't want to fault them for somehow using different terminology, nope, it was clear they are at least lying because at some level if they don't even know about the concept then something must be off. But the bar raiser was very impressed with their answers, so an offer was made, my thumbs down did not matter, no one bothered to follow-up with me regarding my recommendation not to hire.
Serious-Regular@reddit
This is tinfoil hat level bullshit. No one at any large company has a view into what all of the engineers are doing. Not individually and not in the aggregate. Nor does anyone want this view - that's what org structures are for.....
Parasin@reddit
I’m at a very large software company and I agree with you. Especially the fact that things definitely don’t move slowly. I have a project right now that they want to take from greenfield to prod in max of three sprints.
cheeto2889@reddit
Hahahahaha, I'm sorry for laughing but it is my coping mechanism for the PTSD after every call with every business PM trying to shove through an exponentially more advanced project than the one before. They have no clue and my default answer to them these days is just a simple, I'll let you know. I hate it 🤣
Parasin@reddit
The culture at my job rn: “well now that you guys have AI, you can write the code faster!”
They have zero understanding that writing the code has never been the bottleneck. It’s getting clearly defined requirements and designs, which match the customer needs.
DarthNihilus@reddit
I'm getting the exact same thing and it is driving me fucking insane. Just cutting timelines by like 1/3rd "because AI". We're going to burn everyone out, and release garbage products while doing it. Great leadership.
The AI psychosis gripping tech leaders at the moment is easily the worst trend I've seen in this industry
Parasin@reddit
We had a very senior member of our company Say “with all the time savings that you’re getting from AI, you can use that time to have AI fix the problems it creates.”
cheeto2889@reddit
I just have a meeting yesterday to go over a new flow, we design the requirements and then hand that off and let the AI create everything start to finish, I laughed a lot during that call. Apparently we are to have AI debug everything and fix it all now as well lmfao. I feel for all of my devs, the only thing management cares about now is that the architecture and design are right, which I do, and the rest they want AI to do. My team size about to get REAL small 🤦🏼♂️
strangepostinghabits@reddit
Lots of micromanaging managers want exactly that.
Things are not good. Why? I don't know, but it makes me feel insecure. I must fix this by chasing security and taking control. I'll start by extending standups so the engineers can explain everything they are doing and why every morning. I'm sure eventually I'll get the hang of it and start understanding what they say.
Serious-Regular@reddit
The claim is about org level visibility not manager level.
lppedd@reddit
Yeah I've worked for multiple companies and the talent level doesn't really change that much. I honestly have asked myself how some people managed to get hired for "cash cows" projects (which need high quality and stability over time), but than I remembered orgs get restructured once a year and problem is always for the next person.
edgmnt_net@reddit
I wonder what counts as "cash cow" projects. I suspect highly-visible stuff has dependencies which require a lot more care than the "main" stuff. Meta has Facebook and then it has some engineers that contribute to the Linux kernel. The latter stuff tends to go through a lot of filters due to the nature of the project and may have hidden but important returns for Meta. Talent concentration is likely high there, but it's less visible and head counts are low in that particular department. So we tend to look at stuff afflicted by creeping featuritis instead, which has lower talent density and maybe even low impact density on a per-feature / per-dev basis. These companies deal with both interesting work and stuff that's more like pumping money around.
edgmnt_net@reddit
On the first read I kinda agreed with it based on my own idea, which is somewhat different: companies prioritize horizontal work scaling. Maybe this isn't about visibility per se, but I think it is a lot about throwing a bunch of devs at the project. Cheap devs, if possible. Enterprise software architecture is pretty terrible. Yes, even in FAANG there's probably a lot of work like that (most of it by head count?).
kunthapigulugulu@reddit
Big companies do move slowly. But that is for the overall project. The actual development part is always under a tight deadline.
yojimbo_beta@reddit
Sean Goedecke is a Professor Pangloss character who constantly writes apologia for tech management and is loved by HackerNews
But I find a lot of what he writes flimsy and without substance. A mix of pseudo behavioural economics (HN loves that) and "contrarian centrism" (I wish I had a less political term for it, but you know what I mean)
I have worked in companies big and small and I have found the main problem is just that large systems are hard for small individual human brains. People do stuff that only makes sense locally, to see beyond a local context requires focus, depth, time that most managers are unwilling to give people, mostly because they are only thinking locally
Serious-Regular@reddit
Accurate.
surger1@reddit
Tech doesn't make decisions, even when tech tries it's always the purse holders.
Bad software exists because the same reason big projects often suck. The people running it are greedy and stupid. Only willing to pay enough to do it, never enough to do it right or to fix it.
Worked in finance software, I took all my money out of big banks, stopped working with all major telecom's. I raise chickens now.
GregsWorld@reddit
Bold assumption, what motivators are there to produce your best work? Pay is the same if the code is sloppy or not. The only reason not to produce bad code is to avoid it causing yourself future hassle.
"That's my only real motivation is not to be hassled, that and the fear of losing my job. But you know, Bob, that will only make someone work just hard enough not to get fired."
squeezyflit@reddit
What about pride in your work or reputation? Admittedly, I'm a greybeard, but that used to count for something.
gimpwiz@reddit
Pride in one's work counts for a lot. Lack of pride is pretty easy to see, too. Some environments are filled with people who don't care, some are filled with people who do care, and some are in between and everyone is ripping their hair out, hah.
Same pay or no, I'd rather do better work than worse.
GregsWorld@reddit
Reputation is more a social skill than an effect of work quality imo. I agree it's good to be proud of what you've made, but I think that's hard in a corporate environment when you have constraints which prevent you from doing decent work.
strangepostinghabits@reddit
Maybe 5% of developers I've worked with so far did anything but their best out of sheer pride and joy of the craft.
If your developers to a large extent do the bare minimum, that means working for you is so bad they mentally checked out to avoid depression.
gimpwiz@reddit
I don't think this is true, and I am not sure it was ever true. I struggle to believe the average tenure at Google was 1.1 years either, at any point. Some younger folk would switch every couple years, but not as many as is stereotyped and the average published doesn't account for all the ones who didn't. Considering the number of people I know who've been at google 10+ years, for each one of those you'd need 10 more quitting within a year, and that just doesn't track. Not then and certainly not now.
At quite a few of these companies, annual refreshers are standard for anyone in good standing on their annual reviews etc etc (ie, almost everyone). People don't really wonder or worry all that much. At other companies, yeah, there's a lot of wondering. It depends.
That's crazy, bro.
gimpwiz@reddit
There's not much of an employment contract in the US, you can get laid off tomorrow, so I'm not sure how much this feels accurate to me.
Refreshers usually work on a multi-year basis. Assuming you have (eg) 4 year vesting cycles, if you simply don't get a refresher one year, your pay doesn't drop 50% (assuming your RSU vesting accounts for half your pay and it's always an even amount per year, which is simplistic but let's go for it), it drops 12.5% next year. That's a good amount of time to figure out if you're going to find a new employer or find a way to stay on and get back to your previous level of pay. Realistically in many cases it is a clear sign it's time to move on, but it's easy to take a few months to search for a job from a position of strength. It's probably not immediately catastrophic to your financial planning like an immediate 50% pay cut would be.
Fuzzy_Paul@reddit
That underlines the big importance of documentation over and over again. You can't have two decades of active rewritten code be reversed engineered by juniors. That's the real problem. Most programmes hate documentation case they are under corporate time pressure. Don't let them it is an essential part of programming. Big tech should ease up on programmers so everyone benefits from proper docs.
Brojess@reddit
Deadlines dawgs
def-pri-pub@reddit
I've seen good and bad code, both at large and smaller companies. It moreso comes down to whoever is the most senior person making the quality decisions. I have seen MANY software engineers my senior, easily by 25+ years write some awful code. But because they are higher up in the food chain their design decisions pass.
merry_go_byebye@reddit
I have no idea who this guy is or why the discussion is more about his tone than the content of this article, but in my experience in big tech, this is spot on. I am one of the "old timers" in a project with an ever revolving door of engineers. I am not able to review everything so of course new approvers who themselves have no good idea what they are doing can rubber stamp work from an junior engineer copy pasting from Claude. Every so often some new engineer will try to refactor parts of it without passing Chesterton's fence and, lol and behold, now we have a new pattern that said engineer will fail to champion for the codebase as they've already moved on to the next thing.
Evening-Gur5087@reddit
Tbh when I had period working on some shit Fintech revolut-like system I just.. couldn't give a single fuck.
I just went there temporarily as I was dealing with some stuff, but seriously, most of people there don't give a single fuck.
It's shit app, doesn't do anything good for the world, it's boring and copy pasted idea. Seriously, bare minimum brain activity was given to work.
My_reddit_account_v3@reddit
Writing code is just like writing text. Skill and experience are a major factor towards quality but it goes without saying that a draft will never be as good as the final revision, and sometimes code that is in draft gets released as is.
BadlyCamouflagedKiwi@reddit
I don't agree with this argument about how frequently engineers move around and hence they're always unfamiliar with the codebase. In a healthy case, you have people who are experienced with it there already, and the newcomers can get advice / reviews etc from them. I suppose there's an unhealthy case where the whole team is new to it, but that isn't the common case.
Also I have mostly seen problems from the inverse - people staying too long in one area and ossifying. There's a point where the team actually starts to get worse because they're not getting any new ideas and they aren't challenging themselves to do anything new. This isn't the case everywhere but it's more common than you'd hope.
jet_heller@reddit
I opened it only long enough to see the entire article wasn't "With AI". Kinda useless then.
aanzeijar@reddit
Corporations optimise for the bus factor. How many people can you project lose before everything breaks down. By constantly shifting people around you avoid creating the one guy you cannot afford to lose to an accident or a sudden better offer from the competition. That's actually pretty sensible.
But the proper reaction to that is too invest more into documentation and processes. If you skip on that just to meet kpis and deadlines, that's not sensible.