[–]latino666 2 points3 points4 points 5 hours ago (0 children)
fucking this.
i've been working at the same company for almost 5 years now.
lot of shitty legacy code. is it fun? not in the slighest.
but thats always been my routine. was able to improve myself and get a lot of raises during my time here.
but for the last 6 months i've got a shitty ass manager who came out of fucking nowhere. do you know that stereotype of that micromanagement addicted boss? that wants to control every minute of your schedule even at a remote job?
yeah i got that one. i could take shitty tasks, sprints, code bases for years. but this man, i'm already doing interviews after like 5 months under him
[–]twistingdoobies 37 points38 points39 points 13 hours ago (0 children)
I believe I have serious potential.
Ego check: if you have serious potential, you should be able to deal wih shitty codebases. In fact, I would expect talented devs to thrive in shitty codebases, and methodically make them better.
I know that grinding like this won’t take me to the top.
What exactly is the "top"? FAANG? You will need to be able to work in massive legacy codebases with tons of tech debt to work at any sizeable company. It's basically a guarantee.
I had bigger dreams, building systems that scale to millions of users.
That is orthogonal to the problem you're describing. If you want to work on a consumer product with a huge user base, then apply to those jobs. That doesn't have much to do with clean code and good architecture.
[–]canadian_webdevfront-end 20 points21 points22 points 18 hours ago* (14 children)
written by an agency unwilling to share knowledge or documentation
This is happening at my in-house job as we speak.
We have a few react web apps I've built over the years (I came on as a frontend dev) that drive revenue. Our main website, that also drives revenue, is built in Sitefinity.
Any time my boss wants features added to the site, which means entangling dot net / razor pages / Sitefinity goup, they deal with it. And they won't share shit with me. And why would they? Less work for them.
Sitefinity is so niche that no one knows it. I've tried learning some parts to contribute in a full stack or backend way, but it's near impossible because there's barely any online resources to learn from or get help from. There's literally less than 20 jobs in all of Canada for it. It would be super dumb for me to invest anytime in learning it. Terrible for my career prospects.
I actually wouldn't mind taking a crack and learning it, but with having a non dev boss, he doesn't know his head from his ass with this stuff, and he'd expect me to build complex things within Sitefinity within a week of saying "yeah, I'm down to learn it".
So, I let them deal with the shit show and quietly upskill during work hours, building full stack projects with in-demand tech instead.
[–]canadian_webdevfront-end 8 points9 points10 points 16 hours ago (7 children)
I don't understand why it exists except to validate c# developers who don't want to learn PHP or node. It's expensive to run, license, and resource.
Haha, this is so true.
All the front end stuff in razor pages is c#. It's like these guys just hate JS and use a literal backend language for front end work.
And yeah - the company I work for pays like 100k a year for a Sitefinity license. And then, spend tens of thousands a year outside of paying me, to get this blackbox agency to add features to it. Insanity.
[–]SimpleWarthognode 6 points7 points8 points 18 hours ago (1 child)
I see the logic, but code is already a mess everywhere and people aren't fixing it
Generally speaking, people won't pay to fix something that is already working
Not saying this makes sense, it's a very short term view of a much bigger problem, but this has been my experience
[–]detroitsongbird 4 points5 points6 points 18 hours ago* (0 children)
Generally upper management only views features that bring in profit favorably.
Sure downtime is bad and those who bring it back up quickly are also viewed favorably. But then, “why did you let it get to this point?”
I seriously doubt any company is going to let you look at the code base.
[+]DealDeveloper 0 points1 point2 points 17 hours ago (2 children)
Don't count on it.
Review companies and tools that automate code cleanup.
If you like I can show you a demo of a system that can walk through your codebase cleaning up problems . . . by using existing open source software tools (that are not LLMs).
I'm designing it to work 24/7 and just lots of trial and error and feedback from numerous QA tools (that were designed, discussed, drafted, and developed by the most elite programmers in each language).
Automated tools exist, work well, and can be used to automatically clean up code (when paired with LLMs).
I'll triple down by saying as a human you simply cannot keep up.
The amount of code, number of code smells, security vulnerabilities, tests that need to be written, etc. There is an insanely long checklist that is simply too tedious and time consuming to approach it with human labor.
[+]DealDeveloper 0 points1 point2 points 16 hours ago (0 children)
Changes it to what?
I'm seeing "good enough" results from no-code systems already.
They get feedback from the user. The codebase may be crappy.
The codebase can be cleaned up and secured automatically.
Where do you see things changing to past vibe coding?
Aider and other tools are going voice to code.
Can you imagine just brainstorming, debating, and giving details in VERBAL meetings, then using LLMs to convert to text, and then feed that text to a reasoning model to generate the code?
Humans can SPEAK test cases already (to help confirm intent).
Have you seen what Codex et al can do already?
Where do you see yourself fitting in?
Vibe coders exist now (and will become skilled at getting results with practice). Imagine how little vibe coders are willing to accept for compensation . . .
[+]DealDeveloper -2 points-1 points0 points 17 hours ago (0 children)
Are you able to use the hundreds of existing free, open source tools to automate the process?
The LLMs are great a guessing code (but often get it wrong).
Are you able to develop a system that can determine when code is correct?
That way, you can create a feedback loop between the LLM and the QA tools.
The LLMs and QA tools are getting better.
Within the year there will be tools that do not need a human in the loop at all.
The devs (or users) will just review the systems AFTER they have been filtered through insanely strict quality assurance.
[–]knightcrusader 0 points1 point2 points 3 hours ago (0 children)
Yeah, this is a massive red flag. The only time we have problems with coders at work are the job hoppers, so we stay the hell away from them.
Our team's average tenure is over 11 years, so I guess we're doing a pretty good job keeping people around. My 17 years is helping keep that average up.
Job hoppers don't stay around long enough to see the consequences of their design decisions so they never learn how to write stuff meant to be maintained. It's always something that we have to re-do. Every. single. time.
[+]k2900 comment score below threshold-7 points-6 points-5 points 18 hours ago* (10 children)
tbh it's easy to spin a good answer to that question and get in
job hopping is not a death sentence.
in OPs case he can be relatively truthful and will get in at companies that believe their codebases are in good shape and emphasise craftsmanship.
also someone at the company who knows you personally helps a hell of a lot as recruitment will go to them for their take which sways things heavily in your favour over other candidates
[–]mq2thez 143 points144 points145 points 17 hours ago (6 children)
15 YOE and I’ve worked at some big name companies. None of them will show their codebase to an interviewee. All of them would view 7-in-5 as a massive series of red flags and would likely toss your resume to the side.
So, some advice from someone who has been doing this a while and had to learn this the hard way: the ego you’ve got going on will stop you from being the kind of developer you think you should be. The most amazing developers can jump into a bad codebase and make a difference. They focus on lifting the people up around them and understand that software is a team effort. They roll up their sleeves and make things better rather than leaving because things aren’t perfect.
There are absolutely bad codebases and shit companies and all kinds of other bad news. I’m not stating that you should stay at a bad job. I am saying that it seems like you’ve got some stuff mixed up. You want to be the kind of person people look up to and who can mentor other people? You have to sit down and do the work at a place where things are downright bummer town before you’re going to learn what you have to learn for that.
If you ever want to be hired at a big-name company, you’re going to have to find a job and stay there a couple of years. Same if you ever want to be considered a senior engineer.
- permalink
- embed
- save
- report
- reply
[–]Lankanator 30 points31 points32 points 17 hours ago (1 child)
Absolutely this.
I am not that experienced at development, but I have worked with some people who have the “this is a mess” mentality with no solutions, and what they add to the so called mess is not that much better. On the other hand, there are people who genuinely make it better. They are usually sr. Devs and you can immediately see that they are on another level not only technically, but as mentors and how they approach a teamwork situation. They tend to not even complain much, rather work on what they can to make any difference as they also push out work for the business (why we get paid to do this job after all).
IMO OPs mentality won’t work for many projects, or teamwork in general. Maybe greenfield projects, but then they will see it slowly decline in terms of standards as they push out features and the codebase grows. We just have to work with the situation we are in and good devs make it work, and make improvements in the process.
[–]vjmurphy 3 points4 points5 points 11 hours ago* (0 children)
Always ask "How is code deployed" and "how long is that process." I've worked in Marketing my whole career.
My first job in the late 90s? Five minutes.
My second job in he late 2000s: 30m to an hour.
Third job: we deploy every two weeks. Typo on the homepage? Sucks to be you. Early 2010s.
Current job: Deploys take an hour because we deploy EVERYTHING every time, not just the changes.
Developers don't understand that the speed of application deployments should not be the same as the speed of marking deployments. Higher up understand the former, but get annoyed by the latter.
[–]deadcoder0904 -1 points0 points1 point 13 hours ago (0 children)
you can now actually. the claude opening talk talked about this.
3-4 weeks turned to 3-4 days for reading ai code
this was one of the slides.
and i agree. using ai for code reading is so much better. you can even ask for refactors while keeping the same functionality (definitely tricky since it sometimes changes working code lol)
[–]knightcrusader 1 point2 points3 points 2 hours ago (0 children)
Yup, they are seagull developers.
They swoop in, make a bunch of noise, shit over everything, and then fly out leaving a mess for everyone else to clean up.
They NEVER are around long enough to reap the consequences of their poor coding choices so they never have to learn how to improve themselves.
[–]FeliusSeptimusfull-stack 6 points7 points8 points 16 hours ago (0 children)
Yeah, I've only worked 8 companies, but only 2 of them had decent code. One was a startup, and one was a small contracting business with a strong focus on code quality. In those cases every or almost every employee was a coder (even the HR guy had a pretty strong tech background).
The other places were all larger companies that had at some point decided they should write their own software. It all made money, but it was all of seriously questionable quality.
It's been somewhat frustrating that the processes (business users, budgeting, QA process) don't allow much developer latitude to fix/improve parts of the software that 'work' if there's no clear business 'ask' for the change (not allowed to make changes to code that isn't directly involved in a change request from business users). They didn't care in the least if it was buggy and difficult to maintain as long as it was making money.
While I prefer to work with good code, I don't mind too much if their code is bad as long as they're paying me well and not pushing back too hard when my estimates for a change a longer than might be expected due to code issues.
- permalink
- embed
- save
- report
- reply
[–]Glum_Cheesecake9859 3 points4 points5 points 16 hours ago (1 child)
Older the company's code, the messier it is. As more and more developers come and go and contribute to the code base, the messier it becomes. Just like a rental property. Do you think the landlord will keep the proprety as clean and maintained as his own residence, just so the tenants can feel better?
I have worked on projects with code bases ranging from 5 to 20 years old. Code so bad that it can give mental health issues trying to read it :)
If you are lucky, the company will allow a complete rewrite for whatver reason, and the cycle starts again.
Tools have gotten better, so it's easier to write cleaner code and prevent devs from straying away from standards.
- permalink
- embed
- save
- report
- reply
[–]mexicocitibluez 31 points32 points33 points 18 hours ago (5 children)
After switching 7 companies in 5 years, I can tell you one thing with full confidence: Clean code and good architecture? Yeah, that stuff's for the streets.
The irony in this comment is almost too much.
YOU'RE THE PROBLEM.
7 companies in 5 years means you aren't even average. you're below average
I absolutely love the idea that you have any clue what you're talking about when you haven't stuck with a company for more than 12 months.
- permalink
- embed
- save
- report
- reply
[–]shorttompkins 5 points6 points7 points 16 hours ago (5 children)
Complicated things are complicated. Who knew?!
If you get hired on day one in a startup on a greenfield project and have all the aspirations in the world to make things perfect from day one - spoiler alert: your codebase will turn "bad".
Large organizations running large projects require a lot of engineers writing a lot of code. There's just no way to ensure its all perfectly written and architected. Most of the time you have to be pragmatic and compromise sacrificing quality or tech debt for getting something done and out to users asap.
> Now we’re out here paying 10x just to keep the apps breathing under the weight of all that code smell and tech debt.
Yeah, like I said, complicated things are complicated. They are paying top dollar for people that know what they are doing to A) navigate the existing codebase and B) to make it better. Bitching and moaning is only going to get you so far - and from the looks of it that's about 9mos at any given role.
- permalink
- embed
- save
- report
- reply
[–]blackjazz_society 1 point2 points3 points 11 hours ago (1 child)
Large organizations running large projects require a lot of engineers writing a lot of code.
Are Amazon still using their two-pizza team rule?
In that case you can easily have someone per team who is tasked with keeping things from getting out of hand, not "perfect" but not complete insanity.
[–]rekabisexpert 2 points3 points4 points 12 hours ago (0 children)
17 interview rounds
The pope was elected after only 2 rounds of voting.
They don’t need to rope in 20+ people across 4+ interviews over 2+ weeks - not to mention the obligatory “coding test” that is only there for middle manglement to feel useful - just to hire anyone’s sorry ass.
- permalink
- embed
- save
- report
- reply
[–]HistoricalRespect293 5 points6 points7 points 18 hours ago (0 children)
There's no time to build super solid code unless you're a decent sized company already or have funding and know the app will be successful.
Like we don't know if this app will ever see the light of day, so might as well get it done fast and save everyone money..
I'm also working on like 5 projects so I gotta get this done lol.
Honestly I have a project with really really solid code but it was made years ago and I wasn't involved and the time it took to learn how to make even simple changes was a bit frustrating lol. Now thst I'm more familiar with it, it can be nice. But sometimes I'm like man you could've had this less abstract and I'd be done hours ago
- permalink
- embed
- save
- report
- reply
[–]automagisch 1 point2 points3 points 1 hour ago (0 children)
Also, quick PSA: I’m not joining any company again without a quick tour of the codebase I’ll be working on.
Add more companies on the resume within that year scale and no company will hire you anymore either.
You sound fussy and arrogant.
- permalink
- embed
- save
- report
- reply
[–]blackjazz_society 1 point2 points3 points 11 hours ago (0 children)
Places with proper "active" code reviews by people with a stake in the quality of the code and the authority to challenge people.
They would clean up every PR and discuss with the developer what they did and why.
So the time spent on cleanliness was consistent of a day to day basis instead of sudden.
[–]NiQ_ 0 points1 point2 points 1 hour ago (0 children)
Here’s a “harsh reality” for you.
You’re never going to find a codebase that’s in a good position. Not because they don’t exist, but because the companies that build them care about longevity of their hires.
You are a walking red flag for clean code.
I’ve been at my company for 5 years, prior to that I was in the same company for 11.
I built it up from scratch, maintain it, and set in patterns, processes, build tools etc that things remain stable.
I caught up with an ex-coworker from the same place a few weeks ago. Things are still going strong there.
We have a strict no-hire on anyone who has job hopped over the last 2 years. You are not worthy of seeing or touching our code.
Job hoppers like yourself complain about bad code, not realising they’re the rotting finger that creates it.
[–]TinySmugCNuts 2 points3 points4 points 18 hours ago (1 child)
absolutely agree with this.
especially these f'ing "twitter / youtube ai 'influencers'". they're living in another world. post after post of "OMG IT'S SO OVER!!!1!1!". they clearly don't live or work in the real world where it takes real companies years to implement any sort of meaningful change, let alone have ai take over all the coding roles. i mean, one company i just finished a contract with only just migrated away from SQL Server 2008. ffs.
and i'm saying this as someone who does have subscriptions to chatgpt, claude, and uses github copilot - if you know their strengths vs weaknesses, they can be incredibly helpful.
[+]dyngts comment score below threshold-6 points-5 points-4 points 19 hours ago (5 children)
Good advices and thanks for widening our eyes.
The thingsis that most tech companies started from experimental codes that continue even after growing into giant tech.
Many leaders think that the risk of maintaining messy codes is lower (by paying excellent software engineers) rather than refactoring to clean code which can slowdown or even break their production app.
- permalink
- embed
- save
- report
- reply
[–]blackjazz_society 0 points1 point2 points 11 hours ago (0 children)
Code grows to be messy over time.
And you can't rely on engineers never making mistakes, that's a fantasy.
Just have the right person spend a comparatively small amount of time on a daily basis on reviewing PR and you can guard the quality that way.
[–]Fluffcake -2 points-1 points0 points 17 hours ago* (0 children)
0% of companies worth working for will show you a line of their codebase before you sign a contract.
Clean code and good architecture is also impossible, because clean code enforce bad architecture. Assuming you mean literal "Clean code" by famous politician and part time programmer uncle Bob, and not just "have any sane code guidelines that are actually enforced."
The best you can realistically do in an interview situation is to ask about what code guidelines and standards are followed, and how they are enforced.
- permalink
- embed
- save
- report
- reply
[–]Deep_List8220 -2 points-1 points0 points 13 hours ago (0 children)
As other replies mentioned your ego is in your way. If you just want to work on most elegant code base, you are not worth hiring. No company that has software that went through a decade and different groups of developers is clean. Software grows, requirements change and also the developers and their opinions change. There is deadlines and sometimes you just go for the working solution, not the beautiful one.
If you think you are a good developer, take on the challenge. Your job is not just working with beautiful, clean code base, but help moving towards this. Instead of just adding to the mess, write tests and refactor. If you don't get the time to do it, document the hard to understand parts and layout a plan on how to make it better.
I would always take on these kind of challenges in the companies I worked for and while I thought 90% of the code base is pure mess, I helped making it more robust and enabled bigger refactorings through integration tests I added. This quickly lead to me being promoted several times and getting more responsibilities.
- permalink
- embed
- save
- report
- reply