Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "legacy code"
micromanager: "Quick and easy win! Please have this done in 2-3 days to start repairing your reputation"
ticket: "Scrap this gem, and implement your own external service wrapper using the new and vastly different Slack API!"
slack: "New API? Give me bearer tokens! Don't use that legacy url crap, wth"
prev dev: "Yeah idk what a bearer token is. Have the same url instead, and try writing it down so you don't forget it?"
Slack admin: "I can't give you access to the slack integration test app, even though it's for exactly this and three others have access already, including your (micro)manager."
Slack: "You can also <a>create a new slack app</a>!" -- link logs me into slack chat instead. After searching and finding a link elsewhere: doesn't let me.
Slack admin: "You want a new test slack app instead? Sure, build it the same as before so it isn't abuseable. No? Okay, plan a presentation for it and bring security along for a meeting on Friday and I'll think about it. I'm in some planning meetings until then."
This job is endless delays, plus getting yelled at over the endless delays.
At least I can start on the code while I wait. Can't test anything for at least a week, though. =/18
My previous manager always complained about the programmer that used to be there before me was utterly incompetent and unable to work.
One day checking a legacy app that needed a minor update I was looking at the code and said: “It is true the previous programmer didn’t even know how to put together 2 lines of code, this is literally the shittiest thing I have ever seen, thank God he is not around anymore!”
Manager: “Actually I wrote this myself”
That moment when you resign from a place filled with politics and legacy code and unqualified people ...
Yo, is this devrant or spamspace???
Like, do you even fucking work, mates? Are you a dev? How doesn't a fucking legacy code piss you off on a daily basis? What are all the ways you want to respond to your customer's/PM's abuse? Does your lead dev even know jackshit?
Where did all your quality rants go? Why do you all sound like second graders writing essays for school? Have some passion for your job, and hatred for the incompetence for others!
Now, go produce some quality rants! Funny ones too! Bonus points if it's angry-funny.21
Gunnery Sgt. Hartman:
What do you code, anyway?
SIR, JAVA, SIR!
Gunnery Sgt. Hartman:
JAVA? Holy dogshit! Only steers and queers code in Java!! And you don't much look like a steer to me so that kind of narrows it down. Do you suck dick?
SIR, NO, SIR!
Gunnery Sgt. Hartman:
I BET YOU'RE THE KIND OF GUY WHO'D WRITE LEGACY CODE AND NOT HAVE THE COMMON COURTESY TO WRITE ANY COMMENTS.8
An ancient legend goes that there exists sacred knowledge that enables anyone possessing it not to turn one’s career into a constant uphill battle with the management.
I sought this knowledge, I travelled the world, to no avail. Once upon a time, I climbed the Mount Fuji and met the wizard in his pagoda on the mount. I won in a CSS-golf battle with him, and he revealed the sacred truth: one need to chose companies that do business instead of constant backroom deals and dick-measuring contests.
Like Prometheus, I give this knowledge to you. An ancient scroll says that for this I’ll be chained to the mountain of PHP legacy code, and HRs will peck my brain for eternity, but I found Arachne, the queen of HRs, and exchanged the keto-diet secret for freedom.1
i understand some developers like to write wrapper functions to handle tedious things, I even understand how to write dynamic SQL queries, but for the love of fucking god and sanity, NEVER FUCKING DO THIS!!!!
Yes its PHP, but its not even bad PHP, its a fucking abomination from hell of PHP.33
Oh boy, my riskiest coding decision was certainly that one time when I refactored some 50k lines of critical legacy shit code in 3 days, straight up merged everything into master and then deployed to prod.
Luckily there was only one minor bug I had to fix after that... phew...
(To my defense: I was solo-working on it - the infamous CMS Of Doom™)2
Fuck this completely abysmal CMS!!!!
Not even god damn Einstein would be smart enough to understand this stinky pile of legacy code!
No, it's not enough to write an HTML template in PHP with less than 500 lines of code, noooooo, every god damn template HAS TO BE AT LEAST 3000 FUCKING LINES OF CODE WITH RANDOM INCLUDES EVERYWHERE!!!
Every fucking thing I fix spawns at least 2 new bugs! I FUCKING CAN'T!!!
I swear, if I meet these fucking worms of developers... someone will eat fresh turds mixed with puke from a highway toilet!17
I don't know if I'm being pranked or not, but I work with my boss and he has the strangest way of doing things.
- Only use PHP
- Keep error_reporting off (for development), Site cannot function if they are on.
- 20,000 lines of functions in a single file, 50% of which was unused, mostly repeated code that could have been reduced massively.
- Zero Code Comments
- Inconsistent variable names, function names, file names -- I was literally project searching for months to find things.
- There is nothing close to a normalized SQL Database, column ID names can't even stay consistent.
- Every query is done with a mysqli wrapper to use legacy mysql functions.
- Most used function is to escape stirngs
- Type-hinting is too strict for the code.
- Do not use a package manger composer because he doesn't have it installed.. Though I told him it's easy on any platform and I'll explain it.
- He downloads a few composer packages he likes and drag/drop them into random folder.
- Uses $_GET to set values and pass them around like a message contianer.
- One file is 6000 lines which is a giant if statement with somewhere close to 7 levels deep of recursion.
- Never removes his old code that bloats things.
- Has functions from a decade ago he would like to save to use some day. Just regular, plain old, PHP functions.
- Always wants to build things from scratch, and re-using a lot of his code that is honestly a weird way of doing almost everything.
- Using CodeIntel, Mess Detectors, Error Detectors is not good or useful.
- Would not deploy to production through any tool I setup, though I was told to. Instead he wrote bash scripts that still make me nervous.
- Often tells me to make something modern/great (reinventing a wheel) and then ends up saying, "I think I'd do it this way... Referes to his code 5 years ago".
- Using isset() breaks things.
- Tens of thousands of undefined variables exist because arrays are creates like $this = 5;
- Understanding the naming of functions required me to write several documents.
- I had to use #region tags to find places in the code quicker since a router was about 2000 lines of if else statements.
- I used Todo Bookmark extensions in VSCode to mark and flag everything that's a bug.
- Gets upset if I add anything to .gitignore; I tried to tell him it ignores files we don't want, he is though it deleted them for a while.
- He would rather explain every line of code in a mammoth project that follows no human known patterns, includes files that overwrite global scope variables and wants has me do the documentation.
- Open to ideas but when I bring them up such as - This is what most standards suggest, here's a literal example of exactly what you want but easier - He will passively decide against it and end up working on tedious things not very necessary for project release dates.
- On another project I try to write code but he wants to go over every single nook and cranny and stay on the phone the entire day as I watch his screen and Im trying to code.
I would like us all to do well but I do not consider him a programmer but a script-whippersnapper. I find myself trying to to debate the most basic of things (you shouldnt 777 every file), and I need all kinds of evidence before he will do something about it. We need "security" and all kinds of buzz words but I'm scared to death of this code. After several months its a nice place to work but I am convinced I'm being pranked or my boss has very little idea what he's doing. I've worked in a lot of disasters but nothing like this.
We are building an API, I could use something open source to help with anything from validations, routing, ACL but he ends up reinventing the wheel. I have never worked so slow, hindered and baffled at how I am supposed to build anything - nothing is stable, tested, and rarely logical. I suggested many things but he would rather have small talk and reason his way into using things he made.
I could fhave this project 50% done i a Node API i two weeks, pretty fast in a PHP or Python one, but we for reasons I have no idea would rather go slow and literally "build a framework". Two knuckleheads are going to build a PHP REST framework and compete with tested, tried and true open source tools by tens of millions?
I just wanted to rant because this drives me crazy. I have so much stress my neck and shoulder seems like a nerve is pinched. I don't understand what any of this means. I've never met someone who was wrong about so many things but believed they were right. I just don't know what to say so often on call I just say, 'uhh..'. It's like nothing anyone or any authority says matters, I don't know why he asks anything he's going to do things one way, a hard way, only that he can decipher. He's an owner, he's not worried about job security.13
Problem: ugly-ass php spaghetti code that has a technical debt of 16(!!!) years. I mean, it's so spaghetti that has two legacy frameworks that talk to each other inside the same monolith.
Observation: after two months my colleagues, trying to refactoring stuff, they were able to touch so little stuff that it almost made no difference.
How much is worth a rewrite? Because i don't think i can make a difference on a codebase so messy.
I know that rewrite is not the answer 99.9999% of the time, but i have tons of doubts here.14
Sometimes my boss wants me to fire a bullet without a gun, they want me to throw the bullet so hard that it feels like it was shot via a gun.
Maintaining a legacy app sucks so bad when you don't even have the full codebase and some douche bag decided to just randomly throw the codebase on the fucking SVN. 😠1
"Biggest challenge you overcame as a dev?"
Overcame? I wish! I'm in the midde of fixing the worst legacy code clusterfuck I have ever seen...
Yes, it's even wayyyy worse than WorstPress...
There are days where my coworkers hear profuse laughter coming out of my lone bureau, some of them might already be thinking that I've gone mad. Maybe I have... bwahahahaha3
We recently had an error in legacy systems about a user trying to find photographers in Virginia but somehow it shows photographers in Mexico. Apparently it's because both Mexico and Virginia have the same zip code XD guess whatever it uses to search stuff didn't think the company would be used past the US.10
The worst part of being a senior software engineer for a team is that the legacy code of the company is not clear, and there's no documentation.9
I really hate sales people. My stakeholder wants to buy an address verification service but is hesitant to purchase now because the dev time needed would be substantial. Now the sales rep has planted seeds of doubt in my SH and SH thinks I grossly overestimated the labor I quoted.
Sales rep is all “major corporations have installed this in a weekend.” 🤬🤬🤬 Major corporations also have more than one developer and probably aren’t dealing with a website that has a dozen address forms that all work differently. Oh, and I DON’T WORK WEEKENDS MOFO.
My SH originally requested a labor estimate for installing the AVS on all address forms and that’s what I delivered. My audit revealed a dozen different forms. I’m working with a legacy code base that’s been bandaged together and maintained by an outside dev agency. The only thing the forms have in common is reusable address fields. They all work differently when it comes to validating and submitting data to the server and they all submit to different api endpoints. At least a quarter of those forms are broken and would need to be fixed (these are mostly admin-facing). I also had to provide an estimate on frontend implementation when I have no idea what they want the FE to look like.
My estimate was 5-8 weeks for implementation AND testing. I wrote up my findings and clearly explained the labor required, why it was needed, and the time needed. All was fine until the sales rep tried to get into SH’s head.
My SH is now asking for a new estimate and hoping for 1-2 weeks of labor, which is what will SH to buy the AVS. Then go to the outside dev agency you used to work with and ask for a second opinion. I’m sure they’d also tell you at least month if not more for testing, implementation, and deployment because you have a DOZEN FORMS you want to add this to. 1-2 weeks is only possible for a single form.
My manager doesn’t work in the same coding language I do, but he read my documentation and supports my original estimate.
I honestly want to ask my SH if this sales rep is giving a very good price for the AVS. If not, are there other companies in the mix? Because right now you have a sales rep that’s taking you for a ride and trying to pressure you all so he can get another notch in his belt for getting another “major corporation” as his account. I don’t think it’s a good idea to be locked in with a grimy sales rep.3
There are devs who are chill. Then there's me. Deadlines give me anxiety. Being responsible for the code I didn't write and being blamed for the bugs I inherited stress me out.3
There is a commercially sold ERP solution that has it's DB schema in excel and Other documentations in MS Word. And its not even properly structured, no schema diagrams, last updated for a 4 year old major release 😒😫.
I have to develop a custom module for it and that requires building an ActivexDLL Project in VB fucking 6 😭😭 .
Tell me if you want ss in comments.5
After a rough exit from one company, I was diverted into Ops just to continue to have food on the table and keeping the lights on. This, over time, unfortunately made me more or less unemployable as a dev again. Got stuck in that place 13 years doing almost no professional coding.
During the last 5 years I took courses, got side jobs writing articles and tutorials, went to interviews and generally worked hard to get the fuck out of ops and into development again.
After getting to choose between level 1 customer support and quitting in a re-org, I quit without having a new gig. I got a lucky break through someone I'd worked with earlier to start a junior position working on some legacy systems with legacy tech.
After all that work late nights churning away using up my passion for coding, I now can't make my self pick up even Advent of code or Hacktoberfest... My passion is dead... I hope I get it back, but for now I fill my spare time with my guitar...3
A legacy custom made WordPress Theme.
Old developer made main styling sheet with 8000+ lines of code with no component separation.
You know the PHP legacy code base is complete garbage when it requires a script memory limit of 1.5GB.9
Feels like every damn day I'm learning about another language feature that we CAN'T use... So much legacy code everywhere.
C# is more like C-blunt at this point.2
- I built a good automation mechanism with a decent UI [slackbot]
- used as few frameworks and ext libs as I could. Mostly based on bare java
- client wanted to migrate it to Spring
- got 3 peeps assigned for the migration
- 2 months later their effort failed.
- win: my project has not been molested with Spring
- i had an idea to develop smth on top of jmeter, using jmeter as a lib
- I downloaded and imported jmeter's src code
- static contexts, singletons, jmx/rmi everywhere [java is deprecating rmi support]
- not gonna happen... Not gonna build a new project on top of a legacy codebase.5
I hate the fucking Spring WebFlux and the goddamn Project Reactor on which it depends!
Even debugging a simple CRUD microservice with simple business logic is such a pain in the ass, exception handling has a lot of "magic" implicit stuff which makes me waste hours in fucking trial & error and I have to use very little breakpoints because if a request is paused for more than few seconds it gets terminated.
I love functional programming but why shove it in fucking Java making me waste 90% of my time in trying to guessing what the fucking framework is doing, why not just use Scala which runs in the JVM? We don't even need compatibility with legacy code since it's a greenfield project!
And before you ask yes, I read a fucking book about Project Reactor and Java reactive programming and a lot of docs on Spring, Spring Boot and Spring Web Flux.2
I’ve become so indecisive in terms of knowing what I want from my career.
All I know is what I don’t want (to end up a in management)
I’m definitely getting a new job and right now it looks like I’ve got 3 offers on the table
Option 1, a previous company I worked for. Still the same problems with the company there as before but the work was interesting and unusual. and my line manager was a good guy.
They have practically no legacy code.
Not much in the way of company benefits but they’re local and it would be nice to see friends again.
So feels like the pull to this is strong.
Option 2, a fully remote company that I’ve been referred to by an ex-workmate.
They’ve not even tech tested me because they’ve read my blogs and GitHub repos instead and said they’re impress. So just had a conversation with them. I feel honoured that they took the time to look at what I’ve done in my own time and use that in their decision.
Benefits are slightly better than option 1 (more hols)
But they’re using .net 6 and get a lot of heavy use on their system and have some big customers. I think the work is integrations to start with and moving services into docker and azure.
Option 3, even though I’ve got an offer from this one but they can’t actually explain the work until We can arrange a call next week (they recruit and then work out what team your in, but Christmas got in the way of me having a call with them straight away)
It’s working on government systems and .net is their least used stack so probably end up switching to Java. Maybe other tech stacks too.
This place has much better benefits than option 1 and 2 (more hols and more pension), but 2 days a week in office.
All of the above pay the same salary.
Having choice feels almost as bad as having no choice.
It’s doing my head in thinking about it , (even tho I might as well not think about it at all until the call with option 3 happens).
On the one hand with option 3, using a tech stack that’s new to me might be refreshing, as I’ve done .net for 10 years.
On the other hand I really like c# and I’m very good at it. So it feels a bit like I should be capitalising on that and using my experience to shape how the dev is done. Not sure I and I can do that with option 3, at least for a while.
C# feels like it’s moving forward nicely and I’m not sure I can say the same for Java or other languages.
I love programming and learning new stuff but so unable to let things go. It’s like I have a fear that c# will move on without me and I’ll end up turning into one of those devs whose skills are a decade out of date.
Maybe the early years of my career formed me in this way.
Early on I worked at a company where there was a high number of Cobol devs who thought they had a job for life.
But then redundancies came and many left. Of those who stayed they had to cross train to Java and they just couldn’t do it.
I don’t think the tech was hard for them, I think they were just so used to not learning that they could no longer adapt.
Think most of them ended up retiring after trying to learn Java for a few years.8
About a year ago I had the great idea to enforce ago I had the great idea of proposing that we all lint our legacy code base using eslint to increase the overall quality of our JS.
I distributed the task of initially fixing all the errors eslint would find to the whole Frontend team (Luckily we only use JS there). I've finished my part in a couple of weeks and came across this piece of spaghetti.
One of the guys who has been with the company for over 10 years said, that the guy who wrote this monster was very proud of it...
In case you cannot understand what this does: It calculates the distance between 2 points on earth.9
Does wanting to leave a company simply because of legacy code with no documentation and too much work a bit reason? I guess it probably is as anywhere could have the same thing :) Maybe management would be better suited for me, time to take courses8
Idk why but this morning I was thinking about this high school elective class where we learned Adobe flash. But specifically 2 instances where I ignored the teacher and did my own thing
1. We were using Sprite sheets and he had us use photoshop to cut out the Sprite to a different layer and manually save each Sprite one by one to disk to use in flash. Some sheets had 50 fucking sprites
2. Our final projects we could do anything but he suggested not doing anything too complicated cause of time constraints and he barely taught is the scrptinh language for Adobe flash so making flash games was almost out of the question.
Me being stupid really wanted to make a working pong game. So I spent too long watching a German (i dont know German) tutorial video I found, and troubleshooting outdated code from that video. And improving things where I could with my limited knowledge made worse cause I wasn't interested in programming and didn't start learning python until the following year
Yeah don't know why I was thinking about those. But I feel it's a good perspective on how far I've come. From hacking together a pong clone with no skills, to being hired to automate and optimize processes and legacy projects
♫ It's high time we reviewed our design, ♫
♫ The code behind our system is just too byzantine, ♫
♫ We'll rewrite all the legacy and take it off line, ♫1
I can work productively and for very long hours with a lot of stuff which many dev considers productivity hurdles:
- single small monitor? No problem (in fact in one occasion in which my roommate accidentally broke my laptop charghing port and I couldn't get a spare I worked on an iPad connected trough SSH to a Linux machine completing one of the hardest tasks I ever did without significant loss of productivity)
- old machine? That's ok as long as I can run a minimal Linux and not struggle with Windows
- noise and chatter around me? A 10€ pair of earbuds are enough for me, no noise cancelling needed
- "legacy" stack/programming language? I'd rather spend my days coding in Swift or Rust but in the end I believe which is the dev and its skill which gets the job done not fancy language features so Java 8 will be fine
- no JetBrains or other fancy IDE? Altough some refactoring and code generation stuff is amazing Neovim or VS Code, maybe with the help of some UNIX CLI tools here and there are more than enough
despite this I found out there is a single thing which is like kryptonite for my productivity bringing it from above average* to dangerously low and it's the lack of a quick feedback loop.
For programming tasks that's not a problem because it doesn't matter the language there's always a compiler/interpreter I can use to quickly check what I did and this helps to get quickly in a good work flow but since I went to work with a customer which wants everything deployed on a lazily put together "private cloud" which needs configurations in non-standard and badly documented file formats, has a lot of stuff which instead of being automated gets done trough slowly processed tickets, sometimes things breaks and may take MONTHS to see them fixed... my productivity took a big hit since while I'm still quick at the dev stuff (if I'm able to put together a decent local environment and I don't depend on the cloud of nightmares, something which isn't always warranted) my productivity plummets when I have to integrate what I did or what someone else did in this "cloud" since lacking decent documentation everything has do be done trough a lot of manual tasks and most importantly slow iterations of trial and error. When I have to do that kind stuff (sadly quite often) my brain feels like stuck on "1st gear": I get slow, quickly tired and often I procrastinate a lot even if I force myself out of non work related internet stuff.
*I don't want this to sound braggy but being a passionate developer which breathes computers since childhood and dedicating part of my freetime on continuously improving my skill I have an edge over who do this without much passion or even reluctantly and I say this without wanting to be an èlitist gatekeeper, everyone has to work and tot everybody as the privilege of being passionate in a skill which nowadays has so much market1
There's nothing worst than legacy code without documentation. That means I have to spend more time understanding the legacy code than actually coding.4
Can a React.JS expert help me to understand something?
In short, I would like to know what are the main differences between react version 15.6 and 17, in terms of browser issues, and component compatibility?
We have a legacy code base that is in version 15.6 and the team wants to upgrade it and I am attempting to argue with my dumb CTO to upgrade to version 17. However, I’m not versed in react, I'm just a PO and the CTO doesn't know anything but for some odd reason is adamant about staying on an older version. The developers gave me their opinion but I'm interested in an outside opinion.5
When your course's interactive code breaks the course runtime environment because of synthetic events and they are still using React < v16
Jesus, this one is a real headscratcher, amazing I never ran into this until today:
update : we are at hr round baby!!!
part 1 : https://devrant.com/rants/5528056/...
part 2 (in comments) : https://devrant.com/rants/5550145/...
the tech market is crazy mann! it's one of the top indie fintech companies in our country and has a great valuation.
i totally felt that they i am crashing the interviews , and am seriously not trying to be humble. before the dsa round , i was trying to mug up how insertion sort works 🥲
now my dilemma is should i switch if i get the offer. in a summary:
- small valuation but profitable (haven't picked funding for last 3 years , so poast valuation is some double digit million $, but can easily be a unicorn company)
- very major b2b player in my country. almost all unicorns (including this fintech company) and some major MNCs are their client and they have recently acquired a few other companies of us and eu too, making them- a decent global player
- meh work : i love being a cutting edge performer in android but here we make sdks that need to support even legacy banking apps. so tech stack is a lot of verbose java and daily routine includes making very minor changes to actual code and more towards adding tests , maintaining wrapper sdks in react/cordova/unity etc, checking client side code etc.
- awesome work life balance : since work is shit and i am fast enough, i am usually working only 2-4 hours a day. i joined gym, got into shape , and have already vsited 5 places in last 6 months, and i am a guy who didn't used to have time even on sundays. here, we get mote paid leaves than what i would usually need.
- learning opportunities: not exactly from the company codebase, but they provide unlimited access to various course learning platforms like linkedin learning, udemy and others, so i joined some web dev baches and i now know decent frontend too. plus those hybrid sdks also give a light context to new things
new company :
- positives : multi billion valuation, one of the top players in fintech , have been mostly profitable ( except a few quarters)
- positive : b2c so its (hopefully) going to put me back into racing shoes with kotlin, jetpack and latest libraries.
- more $$$ for your boy :)
- negetive : they seem to be on hiring spree and am afraid to junp ship after seeing the recent coinbase layoffs. fintech is scary these days
- negetive : if they are hiring people like me, then then they are probably hiring people worse than me 😂. although thats not my concern what my main concer is how they interviewed. they have hired a 3rd party company that takes interviews of people FOR THEM! i find that extremely impolite, like they don't even wanna spare their devs to hire people they are gonna work with. i find this a toxic, robotic culture and if these are the people in there then i would have a terrible time finding some buddy engineer or some helpful senior.
- negetive : most probably a bad wlb : i worked for an year for a fast paced b2c edtech startup. no matter how old these are , b2c are always shipping new stuff and are therefore hectic. i don't like the boredom here but i would miss the free time to workout :(
so ... any thoughts about it?4