Details
-
Aboutuna cerveza, por favor.
-
Skillsnodejs, js, java, python, html, css, angular, ionic
-
LocationGermany / Stuttgart
Joined devRant on 3/9/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
-
Being told I’m not experienced enough to get a senior dev job I interviewed for.
Even though I aced the first 4 interview rounds, the tech test feedback was “the best solution they had ever seen”, and I’ve been a senior dev for 25 years.
Time wasting assholes.3 -
"This will fail in 2022, but there's no way my code is still gonna be used then"
- Some Microsoft engineer in the '90s6 -
I’m surrounded by idiots.
I’m continually reminded of that fact, but today I found something that really drives that point home.
Gather ‘round, everybody, it’s story time!
While working on a slow query ticket, I perused the code, finding several causes, and decided to run git blame on the files to see what dummy authored the mental diarrhea currently befouling my screen. As it turns out, the entire feature was written by mister legendary Apple golden boy “Finder’s Keeper” dev himself.
To give you the full scope of this mess, let me start at the frontend and work my way backward.
He wrote a javascript method that tracks whatever row was/is under the mouse in a table and dynamically removes/adds a “.row_selected” class on it. At least the js uses events (jQuery…) instead of a `setTimeout()` so it could be worse. But still, has he never heard of :hover? The function literally does nothing else, and the `selectedRow` var he stores the element reference in isn’t used elsewhere.
This function allows the user to better see the rows in the API Calls table, for which there is a also search feature — the very thing I’m tasked with fixing.
It’s worth noting that above the search feature are two inputs for a date range, with some helpful links like “last week” and “last month” … and “All”. It’s also worth noting that this table is for displaying search results of all the API requests and their responses for a given merchant… this table is enormous.
This search field for this table queries the backend on every character the user types. There’s no debouncing, no submit event, etc., so it triggers on every keystroke. The actual request runs through a layer of abstraction to parse out and log the user-entered date range, figure out where the request came from, and to map out some column names or add additional ones. It also does some hard to follow (and amazingly not injectable) orm condition building. It’s a mess of functional ugly.
The important columns in the table this query ultimately searches are not indexed, despite it only looking for “create_order” records — the largest of twenty-some types in the table. It also uses partial text matching (again: on. every. single. keystroke.) across two varchar(255)s that only ever hold <16 chars — and of which users only ever care about one at a time. After all of this, it filters the results based on some uncommented regexes, and worst of all: instead of fetching only one page’s worth of results like you’d expect, it fetches all of them at once and then discards what isn’t included by the paginator. So not only is this a guaranteed full table scan with partial text matching for every query (over millions to hundreds of millions of records), it’s that same full table scan for every single keystroke while the user types, and all but 25 records (user-selectable) get discarded — and then requeried when the user looks at the next page of results.
What the bloody fucking hell? I’d swear this idiot is an intern, but his code does (amazingly) actually work.
No wonder this search field nearly crashed one of the servers when someone actually tried using it.
Asdfajsdfk.rant fucking moron even when taking down the server hey bob pass me all the paperclips mysql murder terrible code slow query idiot can do no wrong but he’s the golden boy idiots repeatedly murdered mysql in the face21 -
Manager: our file IO is slow, any suggestions to make it faster?
Code: multithread writing to a few hundred small (temp) files then single thread combine to one big file and delete the temp files.
Eyes: bleeding31 -
Dev: Hey our current server is starting to chug a bit. Can I get approved for $1200 additional spend to double the speed?
Manager: *Sharp inhale*. We need this project to cost as little as possible, we really can’t justify spending any additional money for any reason right now.
*2 days later*
Manager: YOU ARE APPROVED FOR $100,000 TO IMMEDIATELY IMPLEMENT SOMETHING RELATED TO NFTs IN ANY OF OUR APPS. THE BUSINESS NEEDS TO EXPAND INTO THE METAVERSE ASAP IMMEDIATELY. I NEED AN ETA BY EOD AS TO WHEN THIS CAN BE ROLLED OUT.
Dev: …16 -
"Hey, Root, someone screwed up and now all of our prod servers are running this useless query constantly. I know I already changed your priorities six times in the past three weeks, but: Go fix it! This is higher priority! We already took some guesses at how and supplied the necessary code changes in the ticket, so this shouldn't take you long. Remember, HIGH PRIORITY!"
1. I have no idea how to reproduce it.
2. They have no idea how to reproduce it.
3. The server log doesn't include queries.
4. The application log doesn't include queries.
5. The tooling intercepts and strips out some log entries the legendary devs considered useless. (Tangent: It also now requires a tool to read the logs because log entries are now long json blobs instead of plain text.)
6. The codebase uses different loggers like everywhere, uses a custom logger by default, and often overwrites that custom logger with the default logger some levels in. gg
7. The fixes shown in the ticket are pretty lame. (I've fixed these already, and added one they missed.)
8. I'm sick and tired and burned out and just can't bring myself to care. I'm only doing this so i don't get fired.
9. Why not have the person who screwed this up fix it? Did they quit? I mean, I wouldn't blame them.
Why must everything this company does be so infuriatingly complicated?11 -
Be more passive
I always get involved in everything, at every company. Not to further my career through ass-kissing and overperforming.
I regularly piss off people. When C-level has a discussion about strategy, I'm usually ahead of them, ask too many questions, criticize every detail they've missed, cause frustration by making them look incompetent.
Can't help it, when I see retards destroy a great product I have to intervene.
Some people appreciate it. I often defend both devs and end users, when others don't dare speak up.
But fuck it, I'm getting older. I'm gonna coast a bit more. Sit back, relax.
If a product manager doesn't prepare enough tasks — that's cool, I still have a Factorio savegame to work on.
If another team designs an incredibly stupid feature — they'll discover the issues eventually by themselves. Maybe I'll warn once, just to be nice.
*Pours another chocolate milk*
Also gonna spend at least 4h/d with my daughter. She's a better human than most of my coworkers, and the work we do using her Legos is honestly more important for humanity than the Jira backlog.20 -
Manager: How come the intern does way more tickets than you?
Dev: Because you told me to only give him the easy ones since he either can’t do them otherwise or takes too long on the hard ones
Manager: Well how is he going to learn if we only give him easy ones?
Dev: That’s what I told you when you orig—
Manager: Assign him ALL of the hard tickets on your board immediately!
*Tickets closed per day drops significantly*
Manager: WHAT IS TAKING SO LONG ON THESE TICKETS!!!!!
Dev: …19 -
Recruiter: This is a 100% remote position
Dev: Good! That’s what I’m looking for.
Recruiter: But the company does require you to come into the office “on occasion”
Dev: I live 5 hours away from your office so that would be not a good fit
Recruiter: And once covid is over the ability to work remotely will be getting reconsidered. You’ll likely need to move cities in order to continue your employment with them.
Dev: Yeah I’m looking for 100% remote work
Recruit: This is 100% remote! Just with the need to come into the office sometimes now and potentially more later.
Dev: …15 -
Manager: I can’t believe you use Linux, that is such an outdated operating system. You need to get with the times and move to a more modern one like Windows or Mac. Literally NOBODY uses Linux anymore, do you still go to Blockbuster Video too? Ha!
Dev: …
I’m starting to realize that 80% of my job is resisting the urge to punch this guy in the face. Thanks goodness for remote work.33 -
Working with different nationalities is interesting, and sometimes kind of bewildering. And tiring.
I've been working with an Indian dev for a little while, and while she's a decent dev, interactions with her sometimes leave me a little puzzled. She glazes over serious topics, totally over-sensationalizes unimportant oddities, has yet to say the word "no," and she refers to the senior devs as (quote) "the legends." Also, when asked a question by her boss, like "Are you familiar with this?" Instead of a simple yes/no answer, she shows off a little. Fair, I do this sometimes too, but it's a regular thing with her. Also, like most Indians I've known and/or worked with, she has a very strict class-and-caste view of the world. It honestly makes me a little uncomfortable with how she views people, like certain people belong in certain boxes, how some boxes (and therefore their contents) are inherently better than others, and how it's difficult or simply impossible to move between boxes. My obviously westerner view of things is that you can pick where you want to be and what you want to do, and all it takes to get there is acquiring the proper skills and putting in the required effort. I see no boxes at all, just a sprawling web of trades/specialities. And those legends she talks about? They're good devs with more knowledge than me, but only one, maybe two of them are better devs. I see them as coworkers and leads, not legends. Legends would be the likes of Ada Lovelace, Dennis Ritchie, Yukihuro Matsumoto, and Satoshi Nakamoto. (Among others, obv.). To call a lead dev a legend is just strange to me, unless they're actually deserving, but we don't work with anyone like Wozniak or Carmack.
Since I'm apparently ranting about her a little, let me continue. She's also extremely difficult to understand. Not because of her words or her accent, but I can't ever figure out what she's trying to get across. The words fit together and make valid sentences, but the sentences don't often make sense with one another, and all put together... I'm just totally lost. To be a math nerd, like the two conversations are skew lines: very similar, but can never intersect. What's more, if I say I don't understand and ask for clarification, she refuses and says she doesn't want to confuse me further, and to just do what I think is best. It's incredibly frustrating.
Specifically, we're trying to split up functionality on a ticket -- she's part of a different dev team (accounting), and really should own the accounting portion since she will be responsible for it, but there's no clear boundary in the codebase. Trying to discuss this has been... difficult.
Anyway.
Sometimes other cultures' world views are just puzzling, or even kind of alien. This Irish/Chinese guy stayed at my parents' house for a week. He had red hair, and his facial features were about 3/4 Chinese. He looked strange and really interesting. I can't really explain it, but interacting with him felt like talking to basically any other guy I've known, except sometimes his mannerisms and behavior were just shockingly strange and unexpected, and he occasionally made so little sense to me that I was really taken aback.
This Chinese manager I had valued appearances and percieved honors more than anything else. He cared about punctuality and attire more than productivity. Instead of giving raises for good work or promotions, he would give fancy new titles and maybe allow you to move your desk somewhere with a better view of your coworkers. Not somewhere nicer; somewhere more prominent. How he made connections between concepts was also very strange, like the Chinese/Irish guy earlier. The site templating system was a "bridge?" Idk? He also talked luck with his investors (who were also Chinese), and they would often take the investment money to the casino to see if luck was in the company's favor. Not even kidding.
Also! the Iranian people I've known. They've shown very little emotion, except occasionally anger. If I tried to appease them, they would spurn and insult me, but if I met their anger, they would immediately return to being calm, and always seemed to respect me more afterward. Again, it's a little puzzling. By contrast, meeting an American's anger often makes them dislike you, and exceeding it tends to begin a rivalry.
It's neat seeing how people of different nationalities have different perspectives and world views and think so very differently. but it can also be a little tiring always having to translate and to switch behavior styles, sometimes even between sentences.
It's also frustrating when we simply cannot communicate despite having a language in common.random difficult communication too tired for anger or frustration nationalities tiring diversity root observes people23 -
My instructor:
start
Declarations
num test1
num test2
num test2
num average
output "Enter score for test 1
input test1
output "Enter score for test 2 "
input test2
output "Enter score for test 3 "
input test3
average = test1 + test2 + test3 / 3
output "Average is ", answer
end
Me:
print("Average is "+str((int(raw_input("Enter score for Test 1\nInt> "))+int(raw_input("Enter score for Test 2\nInt> "))+int(raw_input("Enter score for Test 3\nInt> ")))/3))5 -
"We are looking for a GDPR expert to be hired in our company"
"I am an experienced data protection manager"
"Oh, fine! May you give us your phone number?"
"No"
"Your email address?"
"No"
"You're hired"4 -
Angry customer (😤): Your software is still too slow!!!
Me (🙄): It's running good all in all. Let's divide this into smaller aspects. Which steps do you need to perform faster?
😤: Every step needs to be as fast as google!
🙄: But our software ain't google, not even to mention your infrastructure
😤: Everything needs to run in 2 seconds!!!
🙄: You aren't helping in any way. We need something to grasp...
😤: It's all your fault.
📴10 -
PSA: kali linux is literally just a debian with extra preinstalled software. You aint hot shit cause you use kali. You aint hacker cause you use kali. You can do the exact same shit on any other distro what doesnt have a 4gig live iso. Shut the fuck up.17
-
** The most hilarious authentication implementation I've ever seen **
They stored password in cleartext, but never mind, this is sadly quite common.
For some reasons credentials were also case insensitive (maybe to avoid silly tickets from CAPS LOCK lovers?).
Then I had a look to the query executed during the login:
SELECT * FROM users WHERE username LIKE ? AND password LIKE ?;
So I tried logging in with user "admin" and password "%"... and it worked!
I laughed all the day.30 -
1. Buy boxes of orange juice, almost past their expiry date.
2. Put boxes on the hot office windowsill for a few weeks.
3. Cool down juice in fridge.
4. "Hey dear coworker, would you like a refreshing juice box on this hot spring day?"
5. Watch coworker retch and vomit, spitting blue-grayish juice over his desk, crying: "Why would you give me old moldy juice without checking the date?"
6. "Do you remember when you told me you didn't have time for unit tests? THIS IS WHAT HAPPENS, DAVE, THIS IS WHAT FUCKING HAPPENS WHEN YOU DEPLOY UNTESTED CODE.... NOW FINISH YOUR JUICE!"32