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
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
Home office / lockdown story
Last year, when the first lockdown happened, everyone in my office started working from home. Including myself of course.
I decided to use x11vnc for remotely accessing my PC cause it is super convenient.
A few days into the home office and suddenly the remote keyboard acts weird, with random keypresses that I didn't do, and then the letter L was written over and over like it was stuck.
Assuming a bug in x11vnc, I restart it several times, but no luck. Whenever I open a terminal it is full of "L"s within a matter of seconds.
So I restart my PC remotely and reconnect the x11vnc, which is a huge pain in the arse if you have ever done it. And can you believe it... Still the same problem!
So, finally I gave up and went to the office to see what the hell was going on with my PC. I entered my office room and could not believe my eyes.
What had happened? The room cleaner had wet-wiped my desk. To create enough free space for that, she had first cleaned up the mess, putting the scattered paper nicely on the side, but then also *putting the bloody mouse on the bloody keyboard*.9
A month ago I had some medical tests, the next morning, the clinic's send a email with my results. Oh surprise, unbelievable security flaws. They sent me a link without any kind of authentication, token, or security. I looked at my results, and by entering consecutive and random numbers I was able to download a lot of results and folders of other patients. I wrote an email to the clinic informing them of this situation and their response was "Thank you". Today I have accessed the link and the error is still present. I am going to notify higher health authorities.11
Part 1: https://devrant.com/rants/4210605
So let's talk about these tasks we were assigned. Ms Reliable and Mr DDTW's friend who I just realized I haven't named yet were in charge of programming communications. Ms Enabler and Mr DDTW were in charge of creating the vehicle subclasses for the new variants we were instructed to build. Each one had to handle one variant, and we estimated that both of these would be about the same difficulty (Ms Enabler's one turned out to be a little harder).
I like Ms Enabler, and she's a good friend, although she isn't the best at problem solving and her strengths as a dev lie in her work ethic and the sheer amount of theory she knows and can apply. These just so happened to be the exact opposites of my strengths and weaknesses. Within a few days of having assigned the tasks, she came up to me asking for help, and I agreed. Over the following couple of weeks I'd put in quite a lot of hours reviewing the design with her, and we'd often end up pair programming. It was more work for me, but it was enjoyable and overall we were very efficient.
The other two girls in the group were also absolutely fine this sprint. They simply did the work they had to and let us know on time. Outside of some feedback, requests, bugfixes, and mediating disagreements, I didn't have to do anything with their tasks.
A week and half into the sprint and everybody else has their part almost in an MVP state. As Mr DDTW hadn't said or shown anything yet, I asked if he could push his stuff to the repo (he got stuck with this and needed help btw), and what does he have?
A piece of shit "go to this location" algorithm that did not work and was, once again, 150 lines of if statements. This would not have been such a massive deal if THE ENTIRE PREVIOUS SPRINT HAD BEEN DEDICATED TO MAKING THE CODE DO THIS IN A SENSIBLE WAY. Every single thing that this guy had written was already done. EVERY SINGLE THING. A single function call with the coordinates would let the vehicle do what he wrote but in a way THAT ACTUALLY WORKED AND MADE THE TINIEST BIT OF FUCKING SENSE. He had literally given so few shits about this entire goddamn project that he had absolutely zero clue about what we'd even done last sprint.
After letting this man civilly know through our group chat about his failures, giving him pointers on what's wrong and what he can use and telling him that he should fix it by the end of the week, his response?
That was it. Fuckass was starting to block us now, and this was the first sign of activity he's given since the sprint started. Ms Enabler had finished her work a fucking week ago, and she actually ASKED when she ran into trouble or thought that something could be improved. Mr DDTW? He never asked for shit, any clarification, any help, and I had let everybody know that I'm open. At least the other two who didn't ask for shit ACTUALLY DID SOMETHING. He'd been an useless sack of shit for half a semester in three separate projects and the one time he's been assigned something half important that would impact our grades he does this. I would not stand for it.
I let him know all this, still civil (so no insults) but much less kind, capped with "Stop fooling around. Finish this by the of the week." which probably came off as a threat but his shithead kinda had it coming.
He was actually mad. Dropped a huge faux-apologetic spiel in the chat. Why couldn't I just trust him (his code was garbage and he was constantly late without explanation), his work was almost done (it wasn't and if he'd started he'd understand the scope of what he was assigned), that the problem was that I'm a condescending piece of shit (bruh), and was suddenly very interested in doing work. Literally everybody ignored him. What was funny was seeing the first questions and requests for help after that spiel. I obliged and actually answered what he asked.
The end of the week came and went he'd just uploaded more garbage that didn't work. I had foreseen this and, on top of everything else, had been preparing his section of the work done by myself and properly. Thus came a single commit from me with a working version of the entire module, unblocking the entire team. I cannot imagine the sheer hatred for this man at that moment for the commit message to simply be:
And with that, all I got was a threat to report me to the professor for sabotaging his work. The following day our group got an email from the professor, with no explanation, asking for an almost-immediate video conference. Group chat was a shitshow of panic, as nobody knew what was going on. Least of all Mr DDTW.
Once again, I'm approaching the word limit so to be continued in part 3 (hopefully of 3)7
This Part 3 and finale of the tale of Mr DDTW, or the worst coworker I've ever had to deal with. I suggest you start from the beginning if you don't have the context, it's been a trip.
Part 1: https://devrant.com/rants/4210605
Part 2: https://devrant.com/rants/4220715
The problem with this man threatening to snitch on me to the professor if I didn't revert my commit was that he backed me into a corner. Letting him go at his pace with his quality standards would have ruined the project for the rest of us, and I'm not going to let three other people's grades suffer because one was lazy. I'm the PM, team lead, the guy who will ultimately be held responsible for this project succeeding or failing and the mediator of problems.
So I snitched first.
The professor knew us. He had an idea of how we worked as a team, who was enthusiastic about this subject, who was diligent, and who wasn't. It'd been half a semester and he wasn't stupid. I'd also taken the not-so-minor task of testing our software and handling all the little integration problems between components and between the professor's server. This had resulted in several calls between me and him because he'd been flying by the seat of his pants with some of the upgrades he'd been doing to the server code and as the fastest group we were the ones running into all the bugs on his end. And he'd also noted our prior complaint and seen the discrepancy in commits, author tags and hours logged. Mr DDTW had been graded significantly worse than the rest of us. So when I sent him a goddamn novel about our team's internal problems, the bomb was set. And so we get to the conference call, with everybody panicking and with no clue what any of this is about. Except me.
Dear god. That call was pure catharsis. Never have I seen a man get demolished so hard. Mr DDTW got a 45 minute LECTURE, a goddamn SMACKDOWN, about how he needs to take some responsibility for this team effort and that in the real world he'd have been fired. And the professor was so incredibly serene throughout! He could've blasted him with the rage of a thousand suns but he said it in such a way that Mr DDTW's only real responses were "yes", "I understand" and "I'm sorry". An entire semester of this useless fucking bitch being nothing but a leech on our team in three separate projects and he was finally getting SCHOOLED. And then, it gets even better. The professor asked how we could solve this problem, as Mr DDTW needs to do work to be graded but he can't hold us back.
I dropped a suggestion: As I had implemented the module in a way that worked, we could carry on using my version while Mr DDTW could work on a separate branch. Everything else was working reasonably well for an MVP, we just needed to improve and test now, so if Mr DDTW got it working we could merge it back into the main branch. This solved the team's problem of not being able to progress, it solved Mr DDTWs problem of not wanting to fail the course, and it solved my problem of not having to work with this shit-for-brains for the forseeable future. A weight was lifted off my shoulders. No more Mr DDTW. No more bitching and no more shitcode. A grating arsehole that had been bugging everyone all sememster put in his place and out of my hair.
On the way home from uni that day, I rang a friend and told him the entire story as I needed to get it off my chest. Every time I brought up a problem, an issue, a setback, an argument, he made a remark.
"Damn, if only he just... did the work."
Every time he said it it was in a slightly different way, but every time it made me laugh harder as he just didn't stop interrupting me with the same comment. If only he did the work. But the funniest part of all was how right he was. Mr DDTW had so many opportunities to just sit down, shut up, and do the work like the rest of us, but instead he decided to do fuck-all until he got flak for it and proceeded to dig his own grave. What sort of delusional entitlement, sheer incompetence or other dumbfuckery was he suffering from to make such terrible decisions? It's his last year of university and he still hadn't learned to just do the goddamn work (I would later find out that his friend had covered his shortcomings a lot and was apparently the reason why he hadn't flunked out of uni yet).
And so ends the story of Mr Didn't Do The Work the worst person I have ever had the displeasure of working with. We never did merge his branch as we ran out of time during testing. The professor passed him, possibly out of pity or just so that he wouldn't have to resit the course and burden some other poor sods. We weren't the top scorers this time, partially because of my shortcomings as PM but mostly because of the huge delays and manpower deficit, but we did well enough to pass the course with some very high grades. With one exception of course.4
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...7
We got DDoS attacked by some spam bot crawler thing.
Higher ups called a meeting so that one of our seniors could present ways to mitigate these attacks.
- If a custom, "obscure" header is missing (from api endpoints), send back a basic HTTP challenge. Deny all credentials.
- Some basic implementation of rate limiting on the web server
We can't implement DDoS protection at the network level because "we don't even have the new load balancer yet and we've been waiting on that for what... Two years now?" (See: spineless managers don't make the lazy network guys do anything)
So now we implement security through obscurity and DDoS protection... Using the very same machines that are supposed to be protected from DDoS attacks.18
Recruiter: hi, I have an iOS Developer role. Would you be interested?
Me: sure, send me on the spec.
Recruiter: ok great so for this Full stack app developer role we are looking for someone with:
- 5+ years embedded C/C++ experience
- 5+ years of working with Windows and Linux
- Native Android development
- As well as Native iOS experience
Me: ......... ok buddy, you and me are going to have a little chat about what “iOS Developer” means8
A week after updating to Mac OS Big Sur and up til now it has fucked up:
- the entire JDK
- every IDE installed previously
- all LLVM stuff
- python installation
- OpenCV (HOW????)
- Haskell and cabal
- bunch of UI libraries
What amazes me the most is that it manages to fuck each of them up in a different way. No overlap at all, and I had to manually fix every single one of them -.-
And please no "dOn'T BuY mAc" comments, it's a workplace requirement; I literally don't have a choice.9
In another news. COVID-19 continues to ravage certain places of the world. Most notably India (for right now)
Is there a mathematical correlation between this and the decrease of scam calls asking about your social, vehicle warranties, IRS frauds etc?
A friend mentioned that he has not gotten scam calls in a while now, I noticed this as well. I would normally have vendors contact me daily, vendors with shitty practices and poor sounding accents that insist on them having names such as "Joe" or "Steve". This sucks for India since I believe it is a country with absolutely beautiful cultural heritage and good people. But man, the decrease in scam calls from there is outstanding now.8
(From a previous rant I made)
As a note to all of my brothers from India. I am not happy with the current state in which your country is in regards to this bothersome pandemic. I do not feel happy, I am not jumping around singing to the doom you are all facing. I am sad. I know your people are good and your engineers outstanding.
Were it for me you would all be here in the U.S with me chilling with some good bourbon in celebration to how strong you can make our tech be.
My previous post was in regards to scammers, and I am very well aware that you are not at fault.
Be strong brothers, you will all survive this, just as India has survived generations of struggles.6
The worst one was my mother calling me to say "The ambulance is here so they are taking me to ER, I might have a stroke. Call you...".
And then silence... I called my brother who was as freaked out as me. As it was like a couple of months after my father died...
And she forgot her mother fucking smartphone!!!! The next fucking morning the hospital called us!!! Worst time ever!!!!2
Worst codding interruptions? That's easy: fucking meetings.
You know they're coming up. They start to drain your focus. You double check the clock/start time. You ask yourself if you were supposed to prepare anything. You typically waste an hour of your time over something that could have been a fucking e-mail (or doesn't even matter at all). You come back to your desk, and your focus is broken and you wonder when the next meeting is coming up.2
My roommate is a damn wannabe programmer: he keeps talking about how much he’s passionate into technology, buying hardware, spending hours into arranging his workstation to be as “cool looking” as possible, talking about future big projects, he even wants the fucking Java and Arduino logos embroidered in his backpack the only issues are that I’ve never seen him spending time in a project which going beyond literal hello world and if I offer him help to help and improve (I’m an employed programmer) he refuses because he’s tired/lacks time (but always make it for Netflix). I’d be still ok with that because I believe in living and letting live but now every time he starts to bore me with his lengthy stories about projects he’ll never do I imagine him with a big clown nose 🤡8
Not myself but friend of mine. Early 2000s working at a large university. Top notch office PCs for the time, best internet connection in the country.
He discovers this "Bittorrent" program. Meh, just another file sharing thing... but who cares, it's 2003-ish so everyone downloads shit from the internet.
Installs it on his office PC, because its university so no one cares.
Friday afternoon, he starts download of his favourite music album (some hard to get live version or something), then goes off into the weekend, computer is left running as always.
Download is finished after an hour or so, then his Bittorrent client starts seeding. Lots of people want this album. Bittorrent adapts to bandwith and when your connection is good you get upvoted in the network and everyone is connecting to you.
Monday comes, my friend arrives back at his desk, bit late because he slept in and its university so no one cares.
Suddenly realises many missed calls on his desk phone. Calls back, it's from the IT department.
Friend: "You have called me? What can I do for you?"
IT Guy (screaming): "WHAT THE HELL ARE YOU DOING??? YOUR PC IS CAUSING 50% OF THE UNIVERSITY'S INTERNET TRAFFIC.!!!!"
IT Guy (hysterical): "WHATEVER YOU ARE RUNNING STOP IT NOW!!!!"
Friend: *stops Bittorrend client, enjoys his favourite album*
Lucky him, it's a university, so in the end no one cared.2
By default, GitHub uses the term "master" for the primary version of a source code repository. Developers make copies of the "master" on their computers into which they add their own code, and then merge the changes back into the "master" repo.
"On Oct. 1, 2020, any new repositories you create will use main as the default branch, instead of master," the company said.
Oh my god. Can you people just fuck off with your arbitrary terminology changes?!?!?45
Have a couple I want to air today.
First was at my first gig as a dev, 4-5 months out of school. I was the only dev at a startup where the owner was a computer illiterate psycopath with serious temper tantrums. We're talking slamming doors, shouting at you while you are on the phone with customers, the works...
Anyways, what happened was that we needed to do an update in our database to correct some data on a few order lines regarding a specific product. Guess who forgot the fucking where-clause... Did I mention this boss was a cheap ass, dollar stupid, penny wise asshole that refused to have anything but the cheapest hosting? No backups, no test/dev/staging environment, no local copies... Yeah, live devving in prod, fucking all customers with a missing semi-colon (or where clause).
Amazingly, his sheer incompetance saved my ass, because even if I explained it, he didn't get it, and just wanted it fixed as best we could.
The second time was at a different company where we were delivering managed network services for a few municipalities. I was working netops at that time, mostly Cisco branded stuff, from Voice-over-IP and wifi to switches and some routing.
One day I was rolling out a new wireless network, and had to add the VLAN to the core switch on the correct port. VLAN's, for those who don't know, are virtual networks you can use to run several separated networks on the same cable.
To add a VLAN on a Cisco switch one uses the command:
switchport access vlan add XYZ
My mistake was omitting the 'add', which Cisco switches happily accept without warning. That command however can be quite disruptive as it replaces all of the excisting VLAN's with the new one.
Not a big deal on a distribution switch supplying an office floor or something, but on a fucking core switch in the datacenter this meant 20K user had no internet, no access to the applications in the DS, no access to Active Directory etc. Oh and my remote access to that switch also went down the drain...
Luckily a colleague of mine was on site with a console cable and access to config backups. Shit was over within 15 minutes. My boss at that time was thankfully a pragmatic guy who just responded "Well, at least you won't make that mistake again" when we debriefed him after the dust settled.
Not a rant, but still relevant:
GET YOURSELF A PROPER ERGONOMIC CHAIR!
I'm pushing 30, but have been coding/messing with computers since i was a barely a teenager.
I code at work and i code at home, and while i consider myself decently fit and observe decent routine regarding standing up regularly at work, my lower back is still all kinds of fucked. (Facet Joint Disease - look it up if you are bored)
This is SUPER common in our field and i figure most of you here are working more and more from home, from you couch probably. This is killing your back, and let me tell you, coding is freaking difficult when you feel like the thousand knives of the management layer is in your back literally instead of metaphorically.
You will be sitting in the same damn chair/set of chairs for the majority of rest of your life, make sure its good, preferably before your back is screwed.7
Why won't you just approve my PR???
Whats wrong with you?!
I don't understand your cryptic one-sentence feedback. I'm not even sure you understand what you're asking yourself.
What the hell does "make it a transaction" mean? Don't give me pseudo-code examples that don't even work fucking asshole!
Its a small change that does NOT need a canary build dammit. Don't go testing the ORM, its a goddamn standard library. Why does working with you make everything so complicated?!?!
The code fucking works! There is no need to make it comply to your specific tastes goddamn it. Working with you is like pulling teeth!
Dam wandows... My system is up to date almost all the time as I install those forced updates before they are actually forced, just so I can be in control of saving things and not losing anything valuable during a forced restart. I've updated literally last evening and made sure the day is done only after all the updates have been made. Today I was working on a personal project and made an hour break for lunch and some rest. My computer went to sleep as it usually does when I leave it for 10 minutes or so... Or so I thought. After my break I sat behind the damn computer to get back to work only to realize that I woke it up to wrong system (windows is secondary as I only use it for this single project that needs to be done in .net and UWP) and there's no work to get back to. It just made an update without even letting me know there is one to be made.
I swear, if the person who made this design choice have paid only 1% of all the lost works' worth, they would smash the thing on day one and went bankrupt in first 2hrs of that 'feature' living it's life. And people wonder I daily drive *NIX based system...7