Details
-
AboutCynical Programmer who rants if something annoys me. Like coding backend once every three months while being pure frontend developer (#angular) otherwise. And of course it's basically everytime a layer 8 issue 😅
-
SkillsAngular - > Typescript Pug SCSS Django - > Python .Net Framework and Core - > C#, a little EntityFramework and LinQ of course
-
LocationGermany
-
Website
Joined devRant on 5/5/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
Back in Hell, we had a “company summit” where everyone flew in for an all hands meeting.
It was three days long in a tiny office with very lacking air conditioning in the middle of a Las Vegas summer. Basically the entire thing was the CEO / goblin salesman king chewing at us and expounding about / proselytizing his latest and greatest sales ideas and how they’ll change the world. And randomly asking “which of you are HUNGRY?! Which of you want to be FILTHY FUCKING RICH?!” etc.
One good thing came out of it, which was that any and all new endeavors needed a “co-signer” and a sign off from development before we (developers, or more accurate: just me) would work on it. It reduced the growth rate of my backlog by like 80%, which was nice.
While dreading the “summit,” I hated him more than I had in quite awhile.
During the summit, I hated him more and even flipped him off.
After the summit, I swore to leave the revolting wreckage that was the company.
(And months later, I did just that —after becoming the sole dev and the only person holding the damned company afloat. When I gave him my two weeks’ notice, I absolutely relished his terror. And my time spent writing my 43 page no-sugarcoat handoff document that was guaranteed to scare off any hapless dev he might find. 😇)
But I digress, three 10-hour days with him and the rest of the sales team, the sleazy lawyer, the CTO who mentally checked out years ago, the yes-man contractor, and me. The only good thing that came out of that meeting was one good idea that he dismissed, and the sign off idea that saved my backlog a bit.
One of the sales people quit shortly thereafter. So it was a huge expense that wasted everyone’s time and added absolutely nothing of value to the company. GG!
Oh, it was also in the “totally better” office — meaning… cheaper, unfinished (literally plywood floors), and was one room in another company’s office, who often locked the door leading to their offices because they trusted him so much. But it was in downtown Las Vegas, with no parking at all, where gang members were hanging out almost every day, and it was next to low-income housing and weird no-service restaurants with shockingly high prices.
Weird and scary.
Very scary.
Totally carried pepper spray every time Mr. Goblin asshole forced me to go into the office. Didn’t get raped, though, or my laptop or car stolen. So that was nice.5 -
A sidebar.
Literally just a sidebar.
And yes, this was in Hell.
Its code was spread across at least 40 files, and it used a bunch of freaking global variables to unfurl accordion sections, hide other sections/items, highlight the active item, etc. These were set (and unset!) in controller actions, so if you didn’t unset one, it remained open and highlighted until another action unset it.
Some of the global variable checks (and permissions checks) were done in the individual views, some outside of the `render` statements that include them. Some of them inherited variables from the parent, some from the controller, some from globals. Getting a view to work was trial and error. Oh, and some had their own inline css, some used css classes.
Subsections were separate views, so were some individual items, both sometimes rendered using shared templates, and all of the views and templates had the exact. same. filename. (They were located in different directories, and thus located automagically via implicit relative paths.) So, it was a virtually endless parade of`render partial => “sidebar”`. Which file does that point to? Good luck figuring it out!
Also, comments in several places said adding a new section required a database migration. I never did figure out why.
Anyway, I discovered this because I had an innocuous-sounding ticket to rearrange the sidebar, group some sections/items under different permissions, move some items to another menu, and nest some others differently.
It took me two bloody weeks, and this was when I was extremely productive every day.
Afterward, I was so disgusted by it that I took a day and removed every trace of the sidebar I could find, and rewrote it. I defined the sidebar in a hash, and wrote a simple recursive builder to generate the markup. It supported optional icons, n-level nesting, automatic highlighting of the current item and all parent nodes, compound and inherited permissions, wrapping of long names, hover and unfurl animations, etc. Took me a couple hundred lines of Ruby at the most, plus about the same of css.
Felt so good to remove that blight.5 -
I am backend + a bit devops
8 months I worked with front-end person in react.
8 months he was telling me.. git usage is not needed for front. There is no need for that, it is not like back.
Recently he made refactorization in a week time, this idiot did not do even single commit in the process.
4 months he was telling me, testing is not needed in front. Even if the work is complete, there is no point to cover with testing.
Today I heard from him, adaptive web design is impossible to do in css only, it needs having javascript to control right height and width size for elements.
At last. I got freed from him. He got fired.5 -
Me: So, I've been looking through the code and there's barely any comments and documentation. What's up with that?
Him: Yeah, it's really complex and low level, so it's difficult to actually describe what it does.
Me: But that's exactly why you should document it! 🤦🤦🤦
Him: ...3 -
Adventures in security land, part II:
I’m getting pulled off the security review team and instead relegated to part-time security tickets alongside my usual dev work. (So, someone else finds them, i fix them.)
Guess I found and debated too many problems with the lead dev’s code. 🙄13 -
Got laid off my by old employer back in 2019 because they have their priorities completely wrong.
Got a mail today whether I could fix something for them (ofc, they wanted me to do it essentially for free).
One of the websites I built for a customer back when I still worked there had a massive bug (that I was aware off and patched in later versions of the library causing it).
They never updated it so, I told them "just update the library".
Apparently, the idiot that was in charge of maintaining said site after I left didn't know how to and completely broke everything.
The hilarious part: While I setup everything using stuff like Docker and Git to make rollbacks easy...
That idiot went back to FTP and manually upgrading the databases through PhpMyAdmin :^)
He nuked the entire site.
Database? Gone.
Codebase? Borked (installed a version with a lot of breaking changes without properly reading the migration guide).
And knowing that shit company, they don't have any backups either.
They said "I wasn't needed because we have other good devs" when they laid me off.
Uhu, I can eh... see those good devs doing their job :^)51 -
Worst coding interruptions are, by far, instant messages. Especially messages I don't care about. People who tag an entire channel when they shouldn't. The Diversity and Inclusion channel that everyone has to join that tags the entire channel, all 2000 members, at least once a day to share some blog post nobody wants to read. Other employees sending "Hi" to me and expecting an immediate response even though I don't know what they want yet. People who think Slack is an alternative to our support ticket system.
I am often tempted to just sign out for the day, but unfortunately some of the messages are actually important...8 -
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 -
Every time management says "were now using SaaS product X, and they're giving a webinar so we can learn how to use their solutions to take our business to the next level!" — I can't help but associate it with Nigerian Prince scams.
The longer I'm a developer, the more I think vertical integration and inventing your own shitty wheels isn't such a bad idea.
Their generalized, overpriced seat-per-month service always boils down to "vendor lock-in, nothing can be customized or exported, integrations are a pain in the ass, and within a few months the bills will explode because of some overage fee".10 -
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.27 -
This is the kind of shit that I don't want to write.
The kind of shit that should be in an STL so I never have to include it in a project.
Because it doesn't belong in a project.
And it doesn't belong in a dependency tree either.
It belongs in a language. -
Licensing is so freaking weird and stupid.
I mean, I just forked this repo with an Apache license, so I could update a .json file.
"You must cause any modified files to carry prominent notices stating that You changed the files"
Plain JSON allows no comments.
I'm going to jail.30 -
when recruiters would use the same tactics when dating:
Recruiter:
Hi, I see that you are currently in a relationship and even married for over a year now. And you are perfect relation material for a friend of mine. I'm reaching out because you would be a perfect fit. Can you give me your phone number so that we could meet?1 -
I just got a text from T-Mobile telling me about their updated privacy policy and that I can “opt out.” So, naturally I do exactly this.
After a little bit, I land on their “Do not sell my data” page and discover that, not only does it have 175+ trackers,
it doesn’t even fucking work. Also, on the desktop version of the site, the very control allowing the user to opt out of having their data shared/sold doesn’t even render.
These are all absolutely inexcusable.20 -
Example #1 of ??? Explaining why I dislike my coworkers.
[Legend]
VP: VP of Engineering; my boss’s boss. Founded the company, picked the CEO, etc.
LD: Lead dev; literally wrote the first line of code at the company, and has been here ever since.
CISO: Chief Information Security Officer — my boss when I’m doing security work.
Three weeks ago (private zoom call):
> VP to me: I want you to know that anything you say, while wearing your security hat, goes. You can even override me. If you need to hold a release for whatever reason, you have that power. If I happen to disagree with a security issue you bring up, that’s okay. You are in charge of release security. I won’t be mad or hold it against you. I just want you to do your job well.
Last week (engineering-wide meeting):
> CISO: From now on we should only use external IDs in urls to prevent a malicious actor from scraping data or automating attacks.
> LD: That’s great, and we should only use normal IDs in logging so they differ. Sounds more secure, right?
> CISO: Absolutely. That way they’re orthogonal.
> VP: Good idea, I think we should do this going forward.
Last weekend (in the security channel):
> LD: We should ONLY use external IDs in urls, and ONLY normal IDs in logging — in other words, orthogonal.
> VP: I agree. It’s better in every way.
Today (in the same security channel):
> Me: I found an instance of using a plain ID in a url that cancels a payment. A malicious user with or who gained access to <user_role> could very easily abuse this to cause substantial damage. Please change this instance and others to using external IDs.
> LD: Whoa, that goes way beyond <user_role>
> VP: You can’t make that decision, that’s engineering-wide!
Not only is this sane security practice, you literally. just. agreed. with this on three separate occasions in the past week, and your own head of security also posed this before I brought it up! And need I remind you that it is still standard security practice!?
But nooo, I’m overstepping my boundaries by doing my job.
Fucking hell I hate dealing with these people.14 -
Seriously what's wrong with the market right now, this is basically what some job ads said. They were even from the same company
Frontend job ad: are you a rainbow rockstar developer who just loves to code OwO(unpaid overtime) [buzzwords...]
Embedded systems job ad:
Serious job description
Required experience in c/c++
Other non bs stuff8 -
So today , a company phoned me for a job I applied in Jobstreet. So the conversation goes like this.
Com " Do you have any experience in Android studio? "
Me : " Yes . I develop android application, it is compulsory to know actually."
Com :" ok... Do you have experience android SDK?"
Me : " I believe you are referring to the Android studio, yes."
Com :" do you have experience in Android programming"?
Me :" Yes. I do android application for both native and hybrid. As for hybrid, I use flutter."
Com :" Ok...but I was asking about android."
Me :*explaining what I just said *
Com: " you no understand! We need android programmer! Not native or flutter programmer!"
Me *explaining what native and hybrid is (in simple terms)
Com : " it is ok then.. our company prefer those who can develop android app , not native programmer or anything flutter programmer.
"
(Btw , I transcript how exactly that person talk to me)
My question to this person is.... WHAT THE F*** IS THIS? WANT AN ANDROID DEVELOPER BUT NOT NATIVE OR "FLUTTER"? WHAT THE FUCK DOES THAT EVEN MEAN ? IF ANDROID IS NOT WRITTEN IN NATIVE OR HYBRID THEN WHAT YOU EXPECT ME TO USE THEN? USING ASSEMBLY X64?14 -
I hate when a retard fuckstick user on FuckOverflow gives answer like this:
"I suggest a read of the documentation instead of only hacking around"
IF I'M ASKING A QUESTION IT'S BECAUSE THE fucking doc wasn't clear to me, it was longer than the dick of the horse that fucked your mother, or simply I didn't have the fucking time and I hoped somebody would help me out, you dumb fatherfucker17 -
Fucking hell. Today we reviewed candidates for a web dev position. I already fucking know that here we ain't gonna get a top motherfucker, i already know that the person selected will have to be rigorously trained AND THAT IS FUCKING FINE WITH ME.
The thing is, fucking head of the departmen was hellbent on just grabbing people with the highest education possible setting aside lack of experience. I would not have minded if it weren't because we have a secretary that applied...that got her degree in our very own institution and that has worked with our CMS admin creating web stuff. She is smart and has the drive man, and i don't even like her, but i could see her being in the position, being trained and doing good.
Hod said no, because of her lack of education and experience.....BRUH she got her associate's at OUR SCHOOL wtf do we have students go through it if we ain't gonna hire them if they intend on applying to work with us like wtf might as well advertise that: the degree provided by this institution is not good enough to work with us :D that would be 3000 for those two classes thank u.
Holy fuck i was beyond upset man, if i am to train these fuckers might as well be someone that i know will give it her all and studied with us. Dude quoted favoritism and i said that i was just going by the data that i have on her holy fuck.11 -
Drop ur file here to convert it to another file type
10 mins later after conversion
99%
"Sorry but u can't convert ur file cause u got an adblocker enabled pls disable it and try again"
Have u guys ever whipped ur dick out and smacked the monitor with ur dick with hope that ur dick smack will transmit the smack into the website across their face9 -
A girl just canceled our first date to watch Avenger's Endgame with her friends. Pres ++ to pay respects.45
-
"Oh no this platform is serverless"
I hate this "serverless" term.
How does a cloud platform run serverless?
HOW?!
"yeah but like we don't have to run updates and manage the underlying stuff and can thus deploy stuff serverless"
NO.
THERE ARE ACTUAL SERVERS RUNNING IN ORDER TO RUN THIS PLATFORM.
YOU CANT RUN THIS FUCKING PLATFORM WITHOUT ACTUAL SERVERS.
HOW WOULD IT RUN THEN, ON FUCKING STARDUST?!
IT. IS. NOT. SERVERLESS. AS. LONG. AS. SERVERS. ARE. INVOLVED. AT. SOME. LEVEL.73 -
1. The quality of the coffee and toilet paper you encounter during an interview tells you more than promises about table tennis or fruit baskets.
2. Try to determine who their primary client is: subscribers, app buyers, advertisers, etc. It's a major influence on the company dynamic.
3. Before an interview, you can just say: "I would like to sit down with a PO and run through one backlog feature and one bug, to get a feel for the type of tasks at the company". Such an activity immediately reveals team structure, whether they have product owners & scrum masters, what a sprint looks like, how they prioritize tasks, and how organized/chaotic your work experience will be.16