Details
-
Aboutoh... A space about myself... well I am a music lover, an otaku.....and oh, sometimes a developer
-
SkillsPython, Javascript
Joined devRant on 12/6/2016
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
-
- Cookie warnings
- Autoplay videos
- "It's better on the app!"
- Surprise paywall
- Newsletter popups
- "Sorry, this content is not available in your region!"
- Lazily paraphrasing another website without disclosing the source in an obvious way
- Anti-adblock popups
- "Become a pro-member today: starting at $4.99/month!"
- "Sign up here to get my free e-book! :)"
- "keep reading" button to load the rest of the damn article
- "We have a podcast!"
- ...
I hate the current state of the web.13 -
“Competitive pay”
Translation: We are so embarrassed about how fucking little we are offering we can’t even bare to say it out loud. Maybe after 7 rounds of interviews when we feel a little more like friends we’ll be willing to let you know but only if you promise not to tell anyone.
—-
I’ve noticed literally every company with *actually* competitive pay will tell you RIGHT OFF THE BAT what that range is because they are PROUD OF IT.
Anyone who doesn’t? Well you fill in the blanks.9 -
Manager (via phone): You need to setup the CEO with access to the app IMMEDIATELY
Dev: Ok…What’s the occasion?
Manager: There is a big important meeting right now where we go over our achievements for the year and my plan was to have him log in and play around.
Dev: Likely would have been worth mentioning at this mornings standup.
Manager: Don’t be a smart ass. In fact, if you were actually smart you would have given him an account in the first place! So you’re just an ass then, what kind of idiot doesn’t give the CEO an account to an app like this?
Dev: Actually you specifically asked for him to be removed when I added him. “Unnecessary Optics” you said.
Manager: THAT’S BULLSHIT, I NEVER SAID THAT!!
Dev: It’s in our meeting minutes from 2 years ago.
Manager: STOP WRITING THE THINGS I SAY DOWN IT’S COMPLETELY UNNECESSARY.
Dev: I’ll make a note of that request
Manager: YOU ABSOL—ok looks like he’s waving me back in the room now the account must be working now bye. *click*.
Dev: Moron.9 -
> Find cool repo on GitHub
> Works very well
> Respectable weekly downloads
> …Hasn’t been updated in a year
> …Owner from Shanghai, China
> …Hasn’t pushed to any repo in over a year
> Last profile update: Feeling sick 🤒
> …
>😔
> Rest in peace friend, thanks kindly for the time you’ve saved me.16 -
Dev: Why did you suddenly start adding random whitespace to the end of all of the files in your PRs?
Manager: IT’S NOT RANDOM!
Dev: ?
Manager: That’s a way I came up with for tracking my contributions. Every time I edit a file I add a line of whitespace at the bottom so it’s clear to everyone how much and how often I’ve contributed to the team. Although I haven’t been doing it this entire time so I had to make up for this by adding more to files that I *know* I’ve touched a bunch before. Just think! Especially with how big my PRs are compared to everyone else the tally of my contributions is going to get huge!
Dev: …21 -
The nightmare continues.
Currently dealing with a code review from a “principal” dev (one step above senior), who is unironically called a “legendary dev” by some coworkers. It’s painfully obvious he didn’t read the code, and just started complaining and nitpicking.
It’s full of requests to do things that make absolutely no sense, and would make the code an unmaintainable mess.
• Ex: moving the logic and data collection from the module’s many callers into the module instead of just passing in the data.
• Ex: hiding api endpoint declarations by placing them in the module itself, and using magic instance variables to pass data to it. Basically: using global functions and variables instead of explicit declarations and calls.
• Ex: moving the logic to determine which api endpoint to use, for all callers, into the view.
More comments about methods being “too complex” (barely holds water) right next to comments saying “why are these separate? merge them together!”
Incredulously asking how many times I’m checking permissions and how ridiculous it all is. (The answer? Twice.)
Conflating my “permissions” param and method names with a supposedly forthcoming permissions system overhaul, and saying I shouldn’t use permissions because my code will all have to get rewritten. Even if that were true, and it’s likely not, the ticket still needs to use the current permissions. I can’t just ignore them because they might be rewritten someday.
Requests to revert some code cleanup because the reviewer thought the previous heavily-nested and uncommented versions (with code duplication) were easier to read. Unsurprisingly, he wrote them.
On the same ticket, my boss wants me to remove all styling and clientside validation, debouncing, and error messages from a form. Says “success” and “connection failed” messages are good enough. The form in question sends SMS and email using arbitrary user input for addresses. He also says it shouldn’t be denounced on the server, and doesn’t want me to bother checking permissions. Hello, spam!
Related: the legendary dev reviewer says he can’t think of a reason why we would want to disable the feature for consumers, so I should remove the consumer feature flag.
You can’t make this stuff up.7 -
So because of the sheer number of interviews I’ve been doing I’m starting to get a bit brazen with them since I’ve started to really not give a fuck about most of them and I’ve started to notice patterns in common lines of questioning resulting in this unexpected gem today:
Interviewer: So we always start our devs off on the bottom end of our salary band.
Dev: Either give me the top or I’m not interested.
Interviewer: 😡. But if we start you at the top of the salary band we’ll have nothing to give you later. 🥺.
Dev: No need, I’ll take the money up front. Companies don’t give raises these days anyway, it’s just a carrot to dangle in front of the naive.
Interviewer: 😡. Well if all you care about is money so focussed on money you’ll just leave if a better offer comes around!
Dev: All the more reason to give me the highest number possible to defend against that possibility.
Interviewer: 😡. But there are other devs on the team with similar experience that will be making less than you.
Dev: Sounds like they fell for the negging and guilt tripping you are currently attempting on me in order to save a buck. Salary is not based on your skills or experience anymore, it’s based on your ability to negotiate. Here’s mine.
Interviewer: ………………. I’ll pass you along to the hiring manager.
Dev: ???? wtf
HOW THE FUCK DID THAT ACTUALLY WORK ARE YOU FUCKING KIDDING ME I WAS TRYING TO GET THEM TO HANG UP FOR SHITS AND GIGGLES AND NOW I’M LOOKING AT A 20K RAISE ALL BECAUSE I CONTINUALLY TOLD THEM TO GO FUCK THEMSELVES??? THIS IS ACTUALLY WHAT IT TAKES TO BE TREATED PROPERLY BY A COMPANY???13 -
Running a script to do some checks on a list of Git repos.
One repo is taking ages to clone.
Take a look at the repo…
A 8 FUCKING GB VAGRANT DISK IMAGE IN IT.13 -
Interviewer: Do you know what Kubernetes is?
Dev: Yeah, that’s the greek god of spending money in the cloud.
Interviewer: Actually Kubernetes is an orchestration tool. Have you not been on a project that uses it yet?
Dev: …9 -
Had QA call my "simple, quick" ticket a "monster ticket" in front of everyone. Hear it and weep, micromanager!
Also had them tell me i thought of everything, it was beautiful, and that i have a knack for frontend :)8 -
Hey. This code look broken. What should I do?
It isn't broken. It's doing what it's supposed to.
Well, it's hard to follow, but it certainly doesn't look right. And it isn't doing what I expect. Also, why is it calling method(a_class1_or_class2) with a class3?
It isn't hard to follow, and it works just fine. Let me show you. ... huh. looks like it isn't right. and there's a comment here saying the calls aren't clear. but it works just fine. Just copy it over and do it the same way.
I already did that. and it isn't working.
What are you talking about? Of course it works fine. Did you check your code?
------
Really, dude? It doesn't work fine. but, guess what? It works fine* when I change it to call that method with a class2 like it asks for. (Surprise!) But I can't tell him that. Nope. Bossmang get offended. Still won't admit I was right about anything, either.
Ahh... the continual joy of working with (and for) trash.
* well, more fine; the rest of the feature is still wrong. but nope, i'm not allowed to fix it. because why would they want anything to work properly? Already-accepted wrong behavior is good enough. Can't clean up the code, either, because that "muddies the waters." Bitch, I couldn't see the bottom of this sewer if it was half an inch deep! Which is more important: the last contributor entry beside the code, or that code being readable and maintainable? or it, you know, working?
doot doot.
need to scoot.8 -
!!fml
"Root, go fix this bug. It'll take you two days."
The "bug" is a feature that was never implemented for one particular payment type.
The code in question is two years old, full of typos, smells, junior-isms, and is convoluted AF. The feature's commit touched 190 files and implemented many other features as well. Thus far, I have been unable to narrow down where this particular feature's code lives for the other payment types, nor which code or payment paths lead to it. Burned out, I can barely focus on the screen, let alone follow its many twisting and dynamically-inferred paths. I hint as to the ticket's scavenger hunt nature during standup.
"But I wrote comments on the ticket telling you exactly where to look to fix it," Thundercunt admonishes in front of the team.
"Sure, you did," Root replies. "You reworded what the original dev had said in the comments 20 minutes prior, and agreed with him. His comments were helpful, but it doesn't tell me how any of it works," she continues.
TC scoffs and closes the meeting.
Root stares blankly, seeing neither code nor screen, questions her life decisions, and recalls the previous tickets she has worked on: nearly every one of them busywork, fixing other people's bugs. Bugs she never could have gotten away with if she tried.
"Why do I put up with this?" She asks. "They don't care, and it's killing me."
But the bills remain, and so must she.
"Fuck my life" she finally decides.20 -
Managers: fullStackClown!!!! The image uploader on the dashboard at <insert 3rd party service here> isn't working!!!!!
fullStackClown: Yeah? What do you want me to do about it?
Managers: Well, fix it!
fullStackClown: ... * sigh * Well, in case you didn't realize, I don't work at <insert 3rd party service here>, so... unless you want me to go work for them instead of you absolute clowns (which I dream about daily), I cannot help you further in this matter.
Managers: ...
fullStackClown: ...
Kill me. 🤡6 -
....
I give up trying to write this.
I'm just too fucking pissed off.
My interactions with my micromanager make absolutely no sense -- she is clearly just trying to piss me off and blame me for everything, facts and reasoning be damned.
I tried detailing this week's examples (there are lots, and it's fucking Tuesday), but. screw it.
Fuck working for (and with) her.
She's a bitchface and a thundercunt.
I'm updating my resume and fucking off out of here.
God fucking damnit i hate her.23 -
I SENT YOU THE EXACT SIGNUP URL ON NETLIFY
I TOLD YOU STEP BY STEP WHAT WOULD HAPPEN, AND HOW I CAN TRANSFER THE SITE TO YOU
AND NOW YOU COME TO ME COMPLAINING YOU DON'T UNDERSTAND??!?!?!?!
fucking toxic clients I swear, never again
this is what I get for doing something for free for an acquaintances friend
if you can't handle ownership of your own website, maybe get the hell out of the internet
🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡🎪🤡9 -
- Hey I have to add new field, but this class is autogenerated, I do not know what tool generates it"
- Your fingers
- But this class has over 20k lines of codes and the header says it is autogenerated.
- It is a inside joke, it was generated by hand6 -
Boss: Our customer's data is not syncing with XYZ service anynmore!
Me: Ok let me check. Did the tokens not refresh? Hmm the tokens are refreshing fine but the API still says that we do not have permissions. The scopes are fine too. I'll use our test account... its... cancelled? Hey boss, why is our XYZ account cancelled?
Boss: Oh, "I haven’t paid since I didn’t think we needed it" (ad verbatim)
😐2 -
It only took us 5 hours to debug. It's fine. I'm not mad that it was just rate limiting. I'm fine. We're fine. It's fine.11
-
Based loosely on the popular "git" command, I am happy to announce my new product, "hit"!
Essentially, hit hooks into "git blame" and automatically slaps the shit out of whoever wrote this garbage.
It uses SOHTTP (Slap Over HTTP) to deliver a nice firm wallop to any subpar script kiddie that had the audacity to come up with this bullshit.
Careful, the user is not immune to the effects8 -
Micromanager: “@Root, you need to do <thing>! It’s important, and very unprofessional if you don’t. Bad things can happen if you don’t do the thing. You need to get into the habit of doing the thing.”
@Root: Already does the thing.
Micromanager’s boss: Doesn’t do the thing.
Micromanager: Doesn’t do the thing.
Team: Doesn’t do the thing.
Micromanager: “You need to work on your reputation, @Root!”16 -
Boy do I hate office politics...
A client asked our company to fix perf issues on their product. Our coleagues had been picked for the job [being led by another 3rd-party, as per client's request]. Aaand they dropped the ball. The deadline is in 2 weeks, nothing is working.
Mgmt engaged us to put out the fire, but strictly at the scope the other guys were working in.
On the first day of testing we've revealed an elephant-sized perf issue that's as easy to fix as brainlessly changing 4 values in config. And that elephant is masking all the other perf issues.
We got a firm NO for config changes as that is out of the defined scope. And we're asked to continue testing.
I mean, the elephant is THAT huge that any further testing is moot - all other bottlenecks are hidden behind it. And just changing those 4 values would reduce the resources required by a magnitude of ~10.
But that's out of scope...
Client is desperate, lost and honestly asking us, pros in the field, for help.. We know how to help.. It takes 10 seconds to apply the fix..
But our mgmt forbids us to step out of the scope :/
as a result we have to pretend to be dummies hardly knowing what to do and hide the truth from the customer they so desperately want.
This is frustrating. And wrong. And imo unprofessional10 -
Longest I've worked without rest + why?
Over 24 hours. Why?
In our old system, the database had fields, for example, a customer like Total97, Total98, etc. to store values by year (or some date-specific value).
Every January 1, we had to add fields to accommodate the upcoming year and make the appropriate code changes to handle the new fields.
One year the UPS shipping rates changed and users didn't want to 'lose' the old rates, so they wanted new fields added (Rate98, Rate99, etc) so they could compare old vs. new. That required a complete re-write of most of the underlying applications because users wanted to see the difference on any/all applications that displayed a shipping rate. I'll throw in asking 'why?' was often answered with "because we pay you to do what we say". Luckily, we had already gotten to work on a lot of this before January 1st, so we were, for the most part, ready.
January 1st rolls around (we had to be in the office at 3:00AM), work thru changes, spend some time testing, and be done before noon. That didn't happen. The accounting system was a system that wasn't in (and had never been) in scope, and when we flipped the switch, one of the accountants comes into the office:
E: "Guys? None of our Excel spreadsheets are working. They are critical to integration with the accounting software"
Us: "What? Why would you be using Excel to integrate with the software instead of their portal?"
E: "We could never figure it out, so we had a consultant write VBA scripts to do the work."
Us: "OK, a lot of fields changed, but shouldn't be a big deal. How many spreadsheets are we talking about?"
E: "Hundreds. We have a separate spreadsheet for every integration point. The consulting company said it scalable, whatever that means."
Us: "What?! Why we just know hearing about this!?"
E: "Don't worry, the consultant said making changes would be easy, let me show you, just open the spreadsheet..click here..<click><click><click>...ignore that error, it always happens...click that <click><click><click>.."
Us: "Oh good lord, this is going to take hours"
E: "Ha! Probably. All this computer stuff is your job and I've got a family to get to. Later"
Us: "Hey 'VP of IS', can we go home and fix these spreadsheets as-needed this week?"
VP-IS: "Let me check with 'VP-FS'"
<few minutes later>
VP-IS: "No, he said Excel is critical to running their department. We stay until Excel is fixed."
Us: "No, no...its these spreadsheets. I doubt FS needs all of them tomorrow morning."
VP-IS: "That's what I said. Spreadsheets, Excel, same thing. I'll order the pizza. Who likes pepperoni!?"
At least he didn't cheap out on the pizza (only 4 of us and he ordered 6 large, extra pepperoni from one of the best pizza places in town)
One problem after another and we didn't get done until almost 6:00AM. Then...
VP-IS: "Great job guys. I've scheduled a meeting at 8:00AM to review what we did so we can document the process for next year. You've got a couple of hours. Feel free to get some breakfast and come back, or eat the left over pizza in the breakroom fridge. There is a lot left"
Us: "Um...sorry...we're going home."
VP-IS: "WHAT!!...OK...fine. I'll schedule the meeting for 12"
Us: "No...we're going home. We'll see you tomorrow." -
To IT: I can no longer clone GitHub repos from the command line.
From IT… Hello DevOps engineer…. You’re no longer allowed to use port 22. It’s not safe. All traffic must be port 443.
Really!?8 -
Them: Root, you take too long to get tickets out. You only have a few simple ones. You really need to rebuild your reputation.
Also them: Hey, could you revisit this ticket? Could you help ____ with this other ticket? Hey Root, how do you do this? Root, someone had a suggestion on one of your tickets; could you implement that by EoD? Hey Root, i didn't read your ticket notes; how do you test it? Hey, could you revisit this ticket for the fourth time and remove some whitespace? Hey Root, someone has non-blocking code review comments you need to address before we can release the ticket. Hey Root, we want to expand that ticket scope by 5-6 times; still labeled a trivial feature though.
Also them: Super easy ticket for you. Make sure you talk with teams A, B, C, D, E and get their input on the ticket, talk with ____ and ____ and ____ about it, find a solution that makes them all happy and solves the problem too, then be sure to demo it with everyone afterward. Super easy; shouldn't take you more than a couple days. Oh, and half of them are on vacation.
Also them: Hey, that high-priority ticket you finished months ago that we ignored? Yeah, you need to rewrite it by tomorrow. Also, you need to demo it with our guy in India, who's also on vacation. Yes, tomorrow is the last day. (The next day:) You rewrote it, but weren't able to schedule the demo? Now you've missed the release! It's even later! This reflects very poorly on you.
Also them: Perfect is the enemy of good; be more like the seniors who release partially-broken code quickly.
Also them: Here's an non-trivial extreme edgecase you might not have covered. Oh, it would have taken too much time and that's why you didn't do it? Jeez, how can you release such incomplete code?
Also them: Yeah, that ticket sat in code review for five months because we didn't know it was high-priority, despite you telling us. It's still kinda your fault, though.
Also them: You need to analyze traffic data to find patterns and figure out why this problem is happening. I know you pushed the fix for it 8 months ago, and I said it was really solid, but the code is too complex so I won't release it. Yeah I know it's just a debounce with status polling and retrying. Too complex for me to understand. Figure out what the problem is, see if another company has this same problem, and how they fixed it.
-------------
Yep. I'm so terrible for not getting these tickets out, like wow. Worst dev ever. Much shame.
LF work, PST.13 -
There once was a bright young engineer who was hired by a company to design their new light ship.
Like 50 seconds after getting inside the company, the engineer was approached by a douchebag in a business suite.
"Hey, can you make us a mock up of the ship's design in the next hour or so? Nothing fancy, it must be very simple! To not overcomplicate it! Just a simple mock up so we can all see what are we talking about in this project! Please do not overthink this!"
The engineer, young and naive, just folded some piece of paper and gave the douchebag a paper boat.
"Fantastic! That's all we need for the presentation for the investors!"
A couple hours later the suite was back screaming.
"YOUR FUCKING FARSE! YOUR SHITTY SHIP EMBARRASED US ALL! THE VERY MOMENT OUR CEO TRIED TO STEP ON IT IT SANK! YOU ARE FIRED AND WE WILL SUE YOU FOR INCOMPETENCE! I ASKED YOU SOMETHING SIMPLE AND YOU CAME UP WITH THIS OVER ENGINEERED PIECE OF CRAP, YOU SON OF A.. [many, maaany expletives suppressed for brevity sake]"
This is how I feel everytime someone asks for "a tiny change" or some "very simple solution".
If it was so simple that it could be done in such short notice, than why the fuck do it at all, instead of buying it? I heard people sell all sorts of things in the internet nowadays. Software fucking included.5 -
Walked into the office in the afternoon, everyone was kinda panicking
Asked what was going on, well, the ticket system is not working anymore, can't put in any new tickets.
So I started to look for the issue as well, checked the system and... The last tickets' IDs were at ~32k. Ha. Looked into the source code and, sure enough, they used a data type with an upper limit of... 32k. So when trying to get a new ticket ID it just crashed and burned.
Quickly changed the data type and stopped the office panic in around half an hour.
Memorable not because of how tough the bug was, but because of the impact and the simplicity of the fix3 -
Dev: * In the middle of pushing to prod *
Manager: Hey btw I forgot to mention the client asked for these 5 features awhile back as a part of this update and they just reminded me about them, I haven’t created tickets yet or told anyone about this. Will these features be included in the update that’s going out today?
Dev: …9