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
New subscribed feed!
We just launched an activity feed of users you subscribe to + recommended users!
Tap here to read
I once worked until 8am to get a demo ready for a client of the client. I knew the client was a bit thick, so I made some comprehensive video demos and sent them over to him, to save him trying to demo it himself. I wake up at 11am with him screaming down the phone at me:
“It doesn’t work, none of it works!”
“What do you mean?”
“I go to login and I can’t enter anything.”
“I haven’t sent you anything to log into...wait, are you trying to log into a video? Tell me you’re not trying to log into a video of a login page.”
“Uh...oh hang on, it just worked. Ok no pr-“
“No wait, what do you mean it worked?”
“I logged in fine.”
“It’s a video. You can’t log into a video.”
“Uh...alright, bye mate, thanks!”
The moral of the story is: never assume any level of intelligence on the part of a client, even if they exhibit signs of it at first. If they are paying you they will forget how to tie their own shoelaces.17
I. FUCKING. HATE. MOBILE. DEVELOPMENT.
I already manage the data, devops, infra, and most of the backend dev.
We had a mobile guy. He was great. I never had to think about it and kept moving quickly on my work. #SpecializationOfLaborFTW
He left. Why? Because they wouldn't give him a small raise despite being one of the best mobile engineers in the firm. WTF.
I made the mistake of picking up just enough slack on this workflow in the interim such that I'm, apparently, the fucking god-damned release manager, fixer of pipelines, fixer of build configs, fixer of anything where someone just needs to RTFM for a half-hour to not fucking break things.
Now, 8 months later...and, apparently, Fortune 500 companies are too fucking god-damned cheap to pay for someone who actually knows WTF they're doing for a very reasonable thing to have at least one dedicated set of eyes for.
I never wanted to be a mobile dev.
I never will want to be a mobile dev.
And I certainly don't want to manage your HALF-FACE-FUCKED detached expo configs.
There's a reason I never intentionally involved myself in mobile. All the way down, it's just shitty cross-compilation, transpilation, dependency-hell, brittle-as-fuck build processes so we can foot-gun and mouth-gun react-native and expo and babel and whatever the fuck else cargo-culted horseshit into the wild.
And why? What's the actual fucking root cause? The biggest white elephant that ever fucking elephant-ed? It's because Apple and Google decided to never collaborate on a truly-native cross-platform SDK--where engineers could write native code that compiles to native binaries that's simply write-once, run-everywhere. They know they could have done that, and they didn't. So what'd they get back? Expo--a too-cleverly-designed backdoor/hack--more-or-less a way to circumvent the sane release process software has usually followed: code -> executable -> deploy. Or code -> deploy (for interpreted langs). Expo's like "keep your same executable, we're just gonna to do updates by injecting new code into it whenever we want". Didn't we learn anything with web? Shit gets messy real quick? Not to mention: HEY EXPO, WE WERE ALREADY BUILDING NATIVE APPS, YOU SHORT-SIGHTED FUCKS. THANKS FOR LURING OUR CTOs INTO FORCING EXPO DOWN OUR THROATS W/ THE IMPLICIT (BUT INCORRECT) TOO-GOOD-TO-BE-TRUE PROMISE THAT WE CAN HAVE WRITE-ONCE, RUN-ANYWHERE WITHOUT ANY BUY-IN OR COOPERATION FROM THE ACTUAL TARGET PLATFORMS.
And, we just, like, accept this? We all know it's garbage engineering. The principles we learned in the classroom aren't just academic abstractions--they actually yield real-world results--and eschewing them yields real-world failures. Expo is tightly-coupled to high-heaven, with leaky abstractions six-ways-to-christmas, chock-full of foot-guns, and fails the most basic test of quality: does it, "just work?"
Expo is fucking shameful and it should fucking die. Its promises are too bold, its land-mines too many, its future-proof-ness is alway, always, always questionable as fuck and a risk to every project that uses it.
You want a rant? This is my fucking venue, 'tis not? Well, then this is a piss and vinegar rant straight from my blood-red, beating fucking heart:
EXPO FUCKING SUCKS. AND IF YOU'RE A FAN, YOU FUCKING SUCK TOO.25
What the fuck is wrong with people that feel the need to schedule a meeting to ask me a fucking question.
If something doesn’t work then I’ll need to look into it and you sitting there silently while I look through code is an utterly pointless waste of time.
You can send an email, slack, teams, skype, fucking carrier pigeon, I don’t care. Just stop booking in pointless fucking meetings and learn how to write down a coherent question instead. Lazy fuckers!!11
Lads, I will be real with you: some of you show absolute contempt to the actual academic study of the field.
In a previous rant from another ranter it was thrown up and about the question for finding a binary search implementation.
Asking a senior in the field of software engineering and computer science such question should be a simple answer, specifically depending on the type of job application in question. Specially if you are applying as a SENIOR.
I am tired of this strange self-learner mentality that those that have a degree or a deep grasp of these fundamental concepts are somewhat beneath you because you learned to push out a website using the New Boston tutorials on youtube. FOR every field THAT MATTERS a license or degree is hold in high regards.
"Oh I didn't go to school, shit is for suckers, but I learned how to chop people up and kinda fix it from some tutorials on youtube" <---- try that for a medical position.
"Nah it's cool, I can fix your breaks, learned how to do it by reading blogs on the internet" <--- maintenance shop
"Sure can write the controller processing code for that boing plane! Just got done with a low level tutorial on some websites! what can go wrong!"
(The same goes for military devices which in the past have actually killed mfkers in the U.S)
Just recently a series of people were sent to jail because of a bug in software. Industries NEED to make sure a mfker has aaaall of the bells and whistles needed for running and creating software.
During my masters degree, it fucking FASCINATED me how many mfkers were absolutely completely NEW to the concept of testing code, some of them with years in the field.
And I know what you are thinking "fuck you, I am fucking awesome" <--- I AM SURE YOU BLOODY WELL ARE but we live in a planet with billions of people and millions of them have fallen through the cracks into software related positions as well as complete degrees, the degree at LEAST has a SPECTACULAR barrier of entry during that intro to Algos and DS that a lot of bitches fail.
NOTE: NOT knowing the ABSTRACTIONS over the tools that we use WILL eventually bite you in the ASS because you do not fucking KNOW how these are implemented internally.
Why do you think compiler designers, kernel designers and embedded developers make the BANK they made? Because they don't know memory efficient ways of deploying a product with minimal overhead without proper data structures and algorithmic thinking? NOT EVERYTHING IS SHITTY WEB DEVELOPMENT
SO, if a mfker talks shit about a so called SENIOR for not knowing that the first mamase mamasa bloody simple as shit algorithm THROWN at you in the first 10 pages of an algo and ds book, then y'all should be offended at the mkfer saying that he is a SENIOR, because these SENIORS are the same mfkers that try to at one point in time teach other people.
These SENIORS are the same mfkers that left me a FUCKING HORRIBLE AND USELESS MESS OF SPAGHETTI CODE
Specially to most PHP developers (my main area) y'all would have been well motherfucking served in learning how not to forLoop the fuck out of tables consisting of over 50k interconnected records, WHAT THE FUCK
"LeaRniNG tHiS iS noT neeDed!!" yes IT fucking IS
being able to code a binary search (in that example) from scratch lets me know fucking EXACTLY how well your thought process is when facing a hard challenge, knowing the basemotherfucking case of a LinkedList will damn well make you understand WHAT is going on with your abstractions as to not fucking violate memory constraints, this-shit-is-important.
So, will your royal majesties at least for the sake of completeness look into a couple of very well made youtube or book tutorials concerning the topic?
You can code an entire website, fine as shit, you will get tested by my ass in terms of security and best practices, run these questions now, and it very motherfucking well be as efficient as I think it should be(I HIRE, NOT YOU, or your fucking blog posts concerning how much MY degree was not needed, oh and btw, MY degree is what made sure I was able to make SUCH decissions)
This will make a loooooooot of mfkers salty, don't worry, I will still accept you as an interview candidate, but if you think you are good enough without a degree, or better than me (has happened, told that to my face by a candidate) then get fucking ready to receive a question concerning: BASIC FUCKING COMPUTER SCIENCE TOPICS
* gays away into the night44
Ladies and gentlemen, prepare yourselves for a rant with a capital R, this is gonna be a long one.
Our story begins well over a year ago while I was still in university and things such as "professionalism" and "doing your job" are suggestions and not something you do to not get fired. We had multiple courses with large group projects that semester and the amount of reliable people I knew that weren't behind a year and in different courses was getting dangerously low. There were three of us who are friends (the other two henceforth known as Ms Reliable and the Enabler) and these projects were for five people minimum. The Enabler knew a couple of people who we could include, so we trusted her and we let them onto the multiple projects we had.
Oh boy, what a mistake that was. They were friends, a guy and a girl. The girl was a good dev, not someone I'd want to interact with out of work but she was fine, and a literal angel compared to the guy. Holy shit this guy. This guy, henceforth referred to as Mr DDTW, is a motherfucking embarrassment to devs everywhere. Lazy. Arrogant. Standards so low they're six feet under. Just to show you the sheer depth of this man's lack of fucks given, he would later reveal that he picked his thesis topic "because it's easy and I don't want to work too hard". I haven't even gotten into the meat of the rant yet and this dude is already raising my blood pressure.
I'll be focusing on one project in particular, a flying vehicle simulator, as this was the one that I was the most involved in and also the one where shit hit the fan hardest. It was a relatively simple-in-concept development project, but the workload was far too much for one person, meaning that we had to apply some rudimentary project management and coordination skills that we had learned to keep the project on track. I quickly became the de-facto PM as I had the best grasp on the project and was doing a lot of the heavy lifting.
The first incident happened while developing a navigation feature. Another teammate had done the basics, all he had to do was use the already-defined interfaces to check where the best place to land would be, taking into account if we had enough power to do so. Mr DDTW's code:
-Wasn't actually an algorithm, just 90 lines of if statements sandwiched between the other teammate's code.
-The if statements were so long that I had to horizontal scroll to see the end, approx 200 characters long per line.
-Could've probably been 20 normal-length lines MAX if he knew what a fucking for loop was.
-Checked about a third of the tiles that it should have because, once again, it's a series of concatenated if statements instead of an actual goddamn algorithm.
-IT DIDN'T FUCKING WORK!
My response was along the lines of "what the fuck is this?". This dipshit is in his final year and I've seen people write better code in their second semester. The rest of the team, his friend included, agreed that this was bad code and that it should be redone properly. The plan was for Mr DDTW to move his code into a new function and then fix it in another branch. Then we could merge it back when it was done. Well, he kept on saying it was done but:
-It still wasn't an algorithm.
-It was still 90 lines.
-They were still 200 characters wide.
-It still only checked a third of the tiles.
-IT STILL DIDN'T FUCKING WORK!
He also had one more task, an infinite loop detection system. He watched while Ms Reliable did the fucking work.
We hit our first of two deadlines successfully. We still didn't have a decent landing function but everything else was nice and polished, and we got graded incredibly well. The other projects had been going alright although the same issue of him not doing shit applied. Ms Reliable and I, seeing the shitstorm that would come if this dude didn't get his act together, lodged a complaint with the professor as a precautionary measure. Little did I know how much that advanced warning would save my ass later on.
Second sprint begins and I'm voted in as the actual PM this time. We have four main tasks, so we assign one person to each and me as a generalist who would take care of the minor tasks as well as help out whoever needed it. This ended up being a lot of reworking and re-abstracting, a lot of helping and, for reasons that nobody ever could have predicted, one of the main tasks.
These main tasks were new features that would need to be integrated, most of which had at least some mutual dependencies. Part of this project involved running our code, which would connect to the professor's test server and solve a server-side navigation problem. The more of these we solved, the better the grade, so understandably we needed an MVP to see if our shit worked on the basic problems and then fix whatever was causing the more advanced ones to fail. We decided to set an internal deadline for this MVP. Guess who didn't reach it?
Hitting the character limit, expect part 2 SOON7
I got called for a meeting with a nice lady recruiter.
She goes about saying I'd be working for a top innovative firm in that part of the country.
I call out the name of that firm.
She goes yes, indeed. She thought I got excited for the presented opporunity.
I go "No way, you may keep this gig."
She goes: "But why?"
I tell her how they called my firm to present them with a possible open source solution for their problem only to take it and not involving us in the process. They do this a lot to others aswell when they run out of fresh ideas. Nobody who ever went there before on a meeting ever wants to meet with them again. This is not even the main reason for not wanting to go there.
Then she spills that only the recruiter who gets the cheapest labour gets paid.
I tell her to never call me again and leave.
From that point on I first interview the recruiter that calls me to see if I even want to hear about what they have to say.8
My boss is still forcing us to support IE11. Recently, we started having even more bugs with one of our vendors on IE. We filed bug reports with the vendor to fix it, and they came back with "no. Why would we fix anything for IE11? Not even Microsoft is fixing anything for IE11." Boss's answer: well, let's make a separate component for IE11. Probably using flash and/or silverlight. We asked about redirecting IE traffic to Edge, he said that's "the nuclear option." So, doing the thing that Microsoft suggests, that involves not much work at all is "the nuclear option"; ignoring industry standards and recommendations, introducing well known security vulnerabilities, losing money, and trying to circumvent the vendor that serves out our major product, however, is totally reasonable. Our IE traffic is less than 3% of our users at this point.28
Me: code quality is important
Everyone: <no shit given>
Director: code quality is important
Everyone: yes, it is very important, hurray!
Fast forward few weeks/months...
Me: why this function accepts 14 arguments?
ShitDev: yhm, you know, we need to fix it... maybe
Me: why this exception is swallowed?
ShitDev: oh, really? yhm, yhm
Me: why this function is copy-pasted and repeated (20 LoCs)?
ShitDev: yeah, true, but we wanted to make it fast.
Me: Dear director, this project sux and its quality is shit.
Director: you're exaggerating, it can't be that bad, it works, right?
Me: <polishing CV>
ShitDev: got praised for delivery10
I hate how willing companies are to let someone go over money.
I’ll use a real life example with someone I knew. This person joined a company at the entry-level developer and worked up to a senior level. His pay rises were around 3% per year with around a 5–7% promotion raise (there were two of these).
At this point, 4–5 years after joining, he was making far under what a senior developer salary was in his area. Eventually, he interviewed on the team of a friend at another company and was offered a 40% increase. Four-Zero. CRAZY.
What the company did is baffling to me.
His boss said they may be willing to increase 5%, but there was no way they could even match what the other company offered, let alone beat it. The benefits were better at the new company, but he would’ve stayed with the original for a salary match.
So he left…
But what did the original company do? Hired a new senior level developer for the same dollar amount the dev was offered at the new one, then lost about 6 months ramping up that developer due to a super complex code base, and the new developer turned out to be much less capable than the one they just let go.
So wtf? It’s flat out stupid on the company’s part. Some sort of effed up pride or something.
They’d rather let someone walk out the door, knowing it’ll cost just as much to replace them, plus losing literally tens of thousands of dollars on ramp up time, and they gamble on getting a capable developer instead of a known, proven, loyal developer.
Thankfully, the younger tech companies understand this, and many pay people appropriate to level and talent, regardless of what they were making before they advanced to that level.13
I just nailed an online interview for a job that I’ve been trying to get for ages
However, during the interview my dog just would not stop barking. I told the interviewer that I needed just a second to take care of it, and I got up to put my dog in another room.
Although I had a nice dress shirt on to appear professional, I didn’t think it was necessary to put on dress pants since only my upper half would be on screen, I instead opted for a pair of comfortable green athletic shorts and moccasins. I did not realize until after the interview was over that I had accidentally made a fool of myself by showing my entire outfit while walking to my bedroom door. I bet he will have a good laugh with his colleagues about that one.7
This is not a joke. This is not something I wrote to be funny. This is not found randomly off the internet. This is a real part of the project I inherited: a function that not only is more cumbersome to use than the simple <Array>.contains that it wraps, but rather than returning the boolean result from the function, sends it through an if statement and returns hardcoded true and false values for... Good luck? I guess?37
The network starts slowing down, transactions start to fail across the 450+ stores, the website starts to spit 500 errors what is going on?
Queue a frantic running around the office working out what was going wrong... Calls from all 3 data centres, nothing is going in or out of the network.
Notice the network admin come back to his desk, his eyebrows raise and he looks left and right before unplugging his laptop ethernet from one of the server access points
The network rushes back to life, everything is fine.
That particular network mapping tool is now banned for use on production.8
OMFG!! I just discover a fucking bug in a library used by thousand of people in scientific community!! 🤩🎉
Started when my program outputting strange result. I was in a huge fight with my supervisor about one of the function from the library. My hunch was telling me that this function is the source of the problem, but he insisted that no such bugs could exist in the library that has been used by thousands of people.
I couldn't reproduce the bug so I just stayed silent at that time,
But now, I finally got the bug showing. Yeah I am gonna shove it to his face next week.✊
I will also let the people who maintain the library know.
Feels so good being able to be a contributor PR to this famous library 😎
The downside is now I can't use this function, I have to implement by own function.6
I used to measure my performance in features per day (or week, depending on their scope), or tasks/day or loc/day for huge projects. My usual was two to three small features a day, and some progress on a larger one.
Now I’m so burned out and depressed that i measure my progress in the amount of days per week that aren’t “zeros” — as in days where i get literally nothing done. Now any day where i get _anything_ done, no matter how little, is a “good day.” I partially refactored about fifty lines of json builder spaghetti on Tuesday. That was a great day.
This week I’ve had two zeros, and it’s Thursday morning. I think it’s going to be a three zero week.
Worse: performance reviews were due weeks ago. I still haven’t written mine, and have no idea what i would even write. How can i make myself sound good when i can barely even force myself to eat or take a shower?54
One team was delivering for 12 months.
... but definition of done not met. Code crap everywhere. Tests barely there and are total mess.
I inherited mess after previous lead engineer.
I exposed all the issues to the management in a straight way, no sugar coating.
... and now guess who's the bad guy for "complaining" instead of shut up and "making it work"?
"Giving accurate report about situation" is seen as "complaining".7
I guess schools in DE are very safe, because this kind of behavior is normally punched out of you around 4th grade.
Just close the fucking window and shut the fuck up instead of snitching in a chat where the boss can see. And why the fuck was that guy in the lab on Sunday?
BTW, there is no chance anyone could pull our 75+kg robots out of that window. Not to mention they are like 20 years old and their only worth is as scraps.13
Oh damn....I just realized that I am working with a scammers' company. They wanted us (new employee) to create an app behave like keylogger for Android(not in Google play , because Google with ban this one).
Today I asked the manager about our salary. He said that our salary are based on commission. So look what happened, one of my colleague disappeared since yesterday (as in not coming to work without warning)14
So my marketing dept request us to perform a SQL injection to someone's bank account. I refuse to do it.
1. Most bank no longer use Relational Database , they use something like NoSQL Database.
2. Even if the bank Use Relational Database system, I assume their security must be high, validating my session maybe...
3. I am not going to do shit like this for illegal purposes, well this task sounds super illegal to me
4. Hacking is not a part of my job description. I was hired to be a Senior Fullstack Mobile App Developer.
This is screwed up !27
Yes, senior developers get stuck just as much as junior developers do, the difference is that they get stuck in places that junior developers can’t even access. That is partially because senior developers are expected to do so much more than just simple coding, they need to also grasp and untangle client requirements, communicate clearly and thoughtfully with the team, be some sort of guiding/mentoring/leading figure, make sweeping architectural decisions, and so on and so forth.
A junior developer is struggling with making relevant columns of a table a nice shade of purple. A senior developer is struggling with making sure that implementing new client requirements will not have a destructive impact on the current infrastructure, there will be no regressions elsewhere in the system, tries to pinpoint what prior assumptions the new stuff breaks (it inevitably does), and how to reconcile everything.5
Recently I've played around with the Seam Carving algorithm for the content-aware image resizing.
It turned out that the algorithm is pretty powerful, elegant but yet simple. One of the interesting parts was that it might be optimized with the Dynamic Progrming approach. Also, it may perform a simple object removal from the image without even modern ML algorithms.
I've tried to describe my experience here in the interactive article: