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
Search - "part 1 of no other ever"
-
Sit down before you read this.
So I interviewed a guy for a "Support Engineer" internship position.
Me and the team lead sit down and are waiting for him to enter, but apparently he's actually making a coffee in the kitchen.
This isn't exactly a strike since the receptionist told him that he can go get a drink, and we did too. It's just always expected for him to get a glass of water, not waste 3 minutes brewing a coffee.
In any case he comes in, puts the coffee on the table, then his phone, then his wallet, then his keys and then sits on our side of the table.
I ask him to sit in front of us so we can see him. He takes a minute to pack and tranfer himself to the other side of the table. He again places all of the objects on the table.
We begin, team lead tells him about the company. Then I ask him whether he got any questions regarding the job, the team or the company . For the next 15 minutes he bombards us with mostly irrelevant and sometimes inappropriate questions, like:
0: Can I choose my own nickname when getting an email address?
1: Does the entire department get same salaries?
2: Are there yoga classes on Sundays only or every morning?
3: Will I get a car?
4: Does the firm support workspace equality? How many chicks are in the team?
5: I want the newest grey Mac.
And then.. Then the questions turn into demands:
6: I need a high salary (asks for 2.5 more than the job pays. Which is still a lot).
I ask him why would he get that at his first job in the industry (remind you, this is an internship and we are a relatively high paying company).
He says he's getting paid more at his current job.
His CV lists no current job and only indicates that he just finished studying.
He says that he's working at his parent's business...
Next he says that he is very talented and has to be promoted very quickly and that we need to teach him a lot and finance his courses.
At this point me and the team lead were barely holding our laughs.
The team lead asks him about his English (English is not our native language).
He replies "It's good, trust me".
Team lead invites him for an English conversation. Team lead acts like a customer with a broken internet and the guy is there to troubleshoot. (btw that's not job related, just a simple scenario)
TL: "Hello, my name is Andrew, I'm calli..."
Guy: *interrupts* "Yes, yes, hi! Hi! What do you want?"
TL: "Well, if you let me fi..."
Guy: "Ok! Talk!"
TL: "...inish... My internet is not working."
Guy: "Ok, *mimics tuning a V engine or cooking a soup* I fixed! *points at TL* now you say 'yes you fixed'".
Important to note that his English was horrible. Disregarding the accent he just genuinely does not know the language well.
Then he continiues with "See? Good English. Told you no need to check!".
After about half a minute of choking on out silent laughter I ask him how much Python experience he has (job lists a requirement of at least 1 year).
He replies "I'm very good at object oriented functional programming".
I ask again "But what is your experience? Did you ever take any courses? Do you have a git repository to show? Any side.."
*he interrupts again* "I only use Matlab!".
Team lead stands up and proceeds to shake his hand while saying "we will get back to you".
At last the guy says with a stupid smile on his face "You better hire me! Call me back tomorrow." Leaves TL hanging and walks away after packing his stuff into the pockets.
I was so shocked that I wasn't even angry.
We both laughed for the rest of the day though. It was probably the weirdest interview I took part at.35 -
Holy fucking shit. I just went to my first Java class at uni (3 1/2 hour long one at that) and I havent felt so damn irritated in a while.
Some background:
So first, I only had about an hour of sleep last night and a full day of work before this class so I was more cranky than normal.
Theres only 7 students in the class, 6 others plus me. I am the only one with any resemblence of programming experience. The teacher also claims to be a linux developer.
This is a three part course series. Java 1, 2, and 3. All taught by the same teacher.
The fuckery:
-teacher spends 48 minutes talking about text editors. Not even IDEs. Just talking in depth as fuck about notepad (notepad. Not notepad++ )and atom and textpad. Those three only though, nothing on vim or emacs or ACTUAL IDEs. 48 minutes.
- I briefly mentioned learning node.js on the side and am now the "javascript girl" to my teacher. I'm probably less experienced with js than any other thing i ever practised or studied.
-professor saw linux on laptop and asked what distro. When I said arch he said "oh no you shouldnt be using that Its not really for beginners" ... Uhh what makes you think I'm a beginner to linux? Or does he not think I should be using arch while learning java? Either way its really ridiculous and irritates me that he would discourage anyone from using any software/OS/anything, regardless of what it is or skill level.
-teacher moved a bunch of content out of the course because theyre either "concepts that are never implemented anymore" or "arent critical to know to master the language". These particular topics that were removed? Multi-dimensional arrays, scopes, and exception handling. EXCEPTION HANDLING.
-he writes a hello world program and displays it on the board, proof of it working and everything. He tells the class to write the same program, compile and run it. Never did I guess we would spend the remaining hour and ten minutes of class struggling with fucking hello world programs. Especially when the correct code is on the fucking projector.
And I get it guys, everyone starts somewhere. People have to learn from square one. But these kids have no fucking interest in this. One of them literally admitted to pursuing this degree for the "lavish life" that comes with the salary. Others just picked programming because they didnt know what else to choose to get into the school. It fucking saddens me. I hope that one or some of them end up caring and finding a passion in this field, otherwise I feel fucking sorry for them having to spaghetti code their way through life to get a paycheck cause they couldnt be bothered to put in the effort. I feel even more sorry for any devs they work with in the future too.
The other annoying bit is that I can't test out of this class!! so it looks like for either 7 hours a week ill be bored out of my fucking mind with these beginner concepts or ill be helping others fix really stupid shit in their code (like putting quotes around hello world so it would actually print the string).
Fucking hell. Waste of a semester class.44 -
My code review nightmare part 3
Performed a review on/against a workplace 'nemesis'. I didn't follow the department standards document (cause I could care less about spacing, sorted usings, etc) and identified over 80 bugs, logic errors, n+1 patterns, memory leaks (yes, even in .net devs can cause em'), and general bad behavior (ex.'eating' exceptions that should be handled or at least logged)
Because 'Jeff' was considered a golden child (that's another long TL;DR), his boss and others took a major offense and demanded I justify my review, item by item.
About 2 hours into the meeting, our department mgr realized embarrassing Jeff any further wasn't doing anyone any good and decided to take matters into his own hands. Thinking 'well, its about time he did his job', I go back to my desk. About an hour later..
Mgr: "I need you in the conference room, RIGHT NOW!"
<oh crap>
Mgr: "I spoke to Jeff and I think I know what the problem is. Did you ever train him on any of the problems you identified in the review?"
Me: "Um, no. Why would I?"
Mgr: "Ha!..I was right. So lets agree the problems are partially your fault, OK?"
Me: "Finding the bugs in his code is somehow my fault?"
Mgr: "Yes! For example, the n+1 problem in using the WCF service, you never trained him on how to use the service. You wrote the service, correct?"
Me: "Yes, but it's not my job to teach him how to write C#. I documented the process and have examples in the document to avoid n+1. All he had to do was copy/paste."
Mgr: "But you never sat with Jeff and talked to him like a human being? You sit over there in your silo and are oblivious to the problems you cause. This ends today!"
Me: "What the...I have no idea what you are talking about. What in the world did Jeff tell you?"
Mgr: "He told me enough and I'm putting an end to it. I want a compressive training class developed on how to use your service. I'll give you a month to get your act together and properly train these developers."
3 days later, I submit the power-point presentation and accompanying docs. It was only one WCF with a handful of methods. Mgr approved the training, etc..etc. execute the 'training', and Jeff submits a code review a couple of weeks later. From over 80 issues to around 50. The poop hits the fan again.
Mgr: "What's your problem? When are you going to take your responsibility seriously?"
Me: "Its pretty clear I don't have the problem. All the review items were also verified by other devs. Its not me trying to be an asshole."
Mgr: "Enough with the excuses. If you think you can do a better job *you* make the code changes and submit them for Jeff for review. No More Excuses!"
Couple of days later, I make the changes, submit them for review, and Jeff really couldn't say too much other than "I don't see this as an improvement"
TL;DR, I had been tracking the errors generated by the site due to the bugs prior to my changes. After deployment, # of errors went from thousands per hour to maybe hundreds per day (that's another story) and the site saw significant performance increases, fewer customer complaints, etc..etc.
At a company event, the department VP hands out special recognition awards:
VP: "This award is especially well earned. Not only does this individual exemplify the company's focus on teamwork, he also went above and beyond the call of duty to serve our customers. Jeff, come on up and get this well deserved award."19 -
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 -
As much as I love opensource I hate really hate some of its actvie community members (read this as "freetards" <-- see urbandictonary). As a .Net + web devloper with minimal C experience (I just started learning it) and literally no Python experience its not really easy to contribute for me to many (most) opensource software for linux. I am using some <unnamed software> and I found a <critical bug>, it was easy to reproduce and I wrote for list of possible solutions, found it in a code and linked and basically wrote a docummentation longer than any other I ever wrote for every single project I did ever, combined. This <software> was critical for my server and since owner of github repo and few other people there were really active, I hoped that this bug with pretty good documentation will be solved fast, I went to my bed with a heroic feeling of an open source community contributor that helped saving world. I was horribly wrong. Tomorrow, I got 3 passively agressive responses from owner and other 2 freetards that summed up said <other1>:"oh thats nice, fix i yourself and commit it", <other2>:"have a sex with yourself" in a nice way, and <owner>: "fix my softwate and create mrege request". After replying that I have no experience my Python skills are not on a level requied for such an action, he messaged me on twitter I have linked to my GitHub profile saying even less nicely that I am a "retarded c*nt" and that I should learn Python and fix it myself. This makes me stay with my Windows based Server for some time now, fuck this. I googled his github nickname and guess what. Our main freetard is admin on an <unnamed linux forum> and mebmber of many other "computer help" with literally half of his posts just slightly toxic posts about how everyone should use linux and how supreme it is ober anything other, the other hals was crying why linux has only 1% of market share. Oh boi I am not sure why but ITS MAYBE BECAUSE OF FREETARDS LIKE YOU.
And the funnies thing is, hes not only freetard, he is just fullstack retard. One of his posts is "helping" to some <noob windows user> installing Linux. tl:dr for this las part: Freetard basically wiped all data of that <noob>.
PS: Bless everyone who do not respond "oh nice, now you can do it yourself"10 -
"There's more to it"
This is something that has been bugging me for a long time now, so <rant>.
Yesterday in one of my chats in Telegram I had a question from someone wanting to make their laptop completely bulletproof privacy respecting, yada yada.. down to the MAC address being randomized. Now I am a networking guy.. or at least I like to think I am.
So I told him, routers must block any MAC addresses from leaking out. So the MAC address is only relevant inside of the network you're in. IPv6 changes this and there is network discovery involved with fandroids and cryphones where WiFi remains turned on as you leave the house (price of convenience amirite?) - but I'll get back to that later.
Now for a laptop MAC address randomization isn't exactly relevant yet I'd say.. at least in something other than Windows where your privacy is right out the window anyway. MAC randomization while Nadella does the whole assfuck, sign me up! /s
So let's assume Linux. No MAC randomization, not necessary, privacy respecting nonetheless. MAC addresses do not leak outside of the network in traditional IPv4 networking. So what would you be worried about inside the network? A hacker inside Starbucks? This is the question I asked him, and argued that if you don't trust the network (and with a public hotspot I personally don't) you shouldn't connect to it in the first place. And since I recall MAC randomization being discussed on the ISC's dhcp-users mailing list a few months ago (http://isc-dhcp-users.2343191.n4.nabble.com/...), I linked that in as well. These are the hardcore networking guys, on the forum of one of the granddaddies of the internet. They make BIND which pretty much everyone uses. It's the de facto standard DNS server out there.
The reply to all of this was simply to the "don't connect to it if you don't trust it" - I guess that's all the privacy nut could argue with. And here we get to the topic of this rant. The almighty rebuttal "there's more to it than that!1! HTTPS doesn't require trust anymore!1!"
... An encrypted connection to a website meaning that you could connect to just about any hostile network. Are you fucking retarded? Ever heard of SSL stripping? Yeah HSTS solves that but only a handful of websites use it and it doesn't scale up properly, since it's pretty much a hardcoded list in web browsers. And you know what? Yes "there's more to it"! There's more to networking than just web browsing. There's 65 THOUSAND ports available on both TCP and UDP, and there you go narrow your understanding of networking to just 2 of them - 80 and 443. Yes there's a lot more to it. But not exactly the kind of thing you're arguing about.
Enjoy your cheap-ass Xiaomeme phone where the "phone" part means phoning home to China, and raging about the Google apps on there. Then try to solve problems that aren't actually problems and pretty vital network components, just because it's an identifier.
</rant>
P.S. I do care a lot about privacy. My web and mail servers for example do not know where my visitors are coming from. All they see is some reverse proxies that they think is the whole internet. So yes I care about my own and others' privacy. But you know.. I'm old-fashioned. I like to solve problems with actual solutions.11 -
!rant !notrant !confession_maybe? Bit of a read.
Last year, around September (around 8 months into my first job in the industry), I started loosing motivation to be a developer. By then I had consistently dropped out of 3 or 4 courses for my degree (no penalties as it was pretty much within the starting weeks of the each course). I was think that I do not want to do this. It got so bad that I was looking for other jobs and even trade apprenticeships (I am old-ish so chances of that are so bloody low).
I had my mind set. Including not wanting to finish the degree I had started, which only had 1 year as full time to complete.
My missus supported me in my decision making, but she insisted that I finish the degree as the years I spent on it would have been a waste if I don't. So I agreed, with the idea that I will do this part time when I find another job.
Fast forward to New Years and a very spontaneous decisions was made. I resigned from my dev job and we ended up moving away to another city, two weeks later. By this point on I was so certain that I did not want to be in the IT industry. I had not done any dev work (personal projects or learning new technology etc) outside of the job for months. It had been months since I've visited devrant (to be honest it was not even installed on my phone, mainly because I broke my phone and after having it replaced I had not reinstalled a large portion of the apps I used). I had sold my custom built pc thinking that we do not need two PC's (we kind of don't, she's fine with her laptop) which meant no more dev stuff as none of this stuff was set up on my missus pc. I was looking for all kinds of jobs outside of the IT industry, anything really.
But then something happened. And this is that something. I mean this, deverant. I was flicking through the apps list on google play store, and I saw devrant, and I choose to reinstall it. I began reading rants and comments and I am certain that this made me realise why I want to be a developer. Within about 2 weeks of redownloading deverant I was enrolled full time as a uni student fully motivated to earn my degree.
There are bits and pieces left out of the story. I don't regret leaving my first ever dev job and moving away, it does seem drastic but it changed me for the better I believe. I have the experience from that role and I new fresh start so to speak. I think my missus new this was just a phase, although it felt so certain about it.
I am more of a lurker than a ranter or a commenter on this social platform but I felt that I need to share this. Thanks for reading this. Not really sure what to tag this. Has anyone else experienced this before?5 -
Got demoted, got a pay raise and don't know how to feel about it. A story of how not to drink with your coworkers?
The story begins roughly 8-9 months ago. Me and this coworker (let's name him Tim) go out drinking after a Friday party at the office. We do some rounds and we're both smashed. Tim starts telling me how he's happy with life and that he's earning a nice salary right now. He told me his salary. It was the same as mine. Which was weird - He codes in a more hardcore languages than me and has almost double the time in the company as me. I think after some more drinking I've confessed that I make the same as him. This part is sort of a blur (drinking). I've gotten a pay raise(+30-40%) roughly a few months ago from that point backwards because another company gave be a much higher offer. The company I work for matched to keep me. Anyway, 3 months or so after the drinking,Tim is promoted to team lead, and me and a few other people are added to his team. Conversation slips and he told me his new salary - quite a bit more than me.I think it's safe to assume what happened.
The problem with that is that I was a team lead of 1 person (me) at that time, and I was managing my own time and my own tasks, was working with people individually. I was part of the weekly meetings with the CEO and other team leads. Being stripped of this title wasn't a problem at the beginning, as people still contacted me because of their problems, suggestions, whatever. A few more months pass (to now) and less and less people are contacting me - instead they are talking with Tim, and are asking of his opinion on tasks I should do, where he has no experience and roughly 0 lines in the programming language I code in. This is starting to piss me off.
There are a couple other things to take into consideration as well - The company is hiring a lot of people right now. The whole structure for team leads changed a bit, more team leads then ever right now and new roles added pretty fast.
I've gotten a pay raise a few weeks ago though(10%~).
I'm not sure on how to react to this. Should I comply and just keep on working on these tasks? Or should I still keep contacting people directly on their requests and talk to them directly, take credit for the projects I complete publicly and the stuff I do as I was previously doing? Part of me wants to reroute all of the stupids questions people have to Tim, as he is now responsible for these tasks and get this weight off my shoulders.
I'm starting to shift to learning a new programming language and thinking of jumping ship. Thoughts?6 -
That feeling of betrayal when you finally find a proper, well written and well formatted article/tutorial about a framework (or anything you are learning), only to find out it is "Part 1" and no other parts were ever written...
-
Attention: incomming resentful boiled up for months rant.
Hands down G2APAY is the worst because:
Merchant account aproval takes fcking months. It starts with unreasonable delays in documents approval. I mean insane nitpicking. They want to see merchants name surname and address on every god damn document that you submit even if for example bank statement doesnt include these details. I had to manually edit pdf’s just so that they would fck off and approve the merchant application. Insane requirements for document check also combined with their email only support answering only once a week you will have to wait one month just to get your account approved.
Then you get to the fun part, approval proccess for vendor gateway and webhook integration. They are nitpicking everything you can imagine: about website not having https, website forum missing some icons, merchants phone number being from another country then he is, and bunch of other hundreds of problems imagined only by them. Again combined with their one email reply per week policy you will waste atleast one month to finish up your integration.
Now finally you are their client and you think you can chill and go back to focusing on your business? Nope bro. Prepare for threatening emails. Last time I got a request to install https or my merchant application will be shut down. I was given 3 days notice on a fcking friday and had to do it.
Then g2a backend is crashing quite often. Combined with their one email per week policy you are fcked in the ass if your users were not able to pay through g2a and you will get no compensation.
Their backend documentation is shiet. Not clear how to integrate everything and after you integrate they make changes without publishing any changesets. Your integration is working? Good luck if it will still be working tomorrow.
And the very worst part is that they stopped proccessing credit cards like month ago with zero notice. Its been weeks and still zero news about bringing card proccessing back. They sad that they were acquired by some other company so shitty support got even shittier now while they are in a proccess of handover.
So yeah thats the worst vendor I have ever seen in my life. For example integrating paypal took me 30 minutes. Integrating stripe and getting all documents reviewed took me one business day. Same with paymentwall integration and document approval took 1 business day. Support is amazing and even have a phone number that I can reach if urgent problems arise. Thats how it should be. Thats why I can pay percentage of my transactions with a smile for them.
Sorry for the typos since im typing on my shiet phone while driving.
Eat a bag of dicks g2apay. I hope you go bankrupt and shutdown.21 -
Debating on whether to quit my job.
Part of the reason it's hard for me to make a decision is there are a lot of good things about my job:
- almost all the projects we work on are blue sky; no technical debt anywhere
- great teammates; people help each other out and generally there's a good vibe
- reasonable boss; he's totally fine with me managing my own schedule, and since I get my work done, he basically never questions when and where I work
- about 1 hour of corporate meetings each week
- best healthcare I've ever had; basically everything is paid for
- 3 weeks PTO & all major US holidays
- free food; generally healthy office snacks and such
So why would I want to quit this environment?
- I hardly get to code anymore. About 2 years ago, I got asked if I would mind helping spec out projects. Since then, I've moved from writing code related to projects to helping my teammates understand the business situation so they can build the right thing.
- I'm in lots of meetings. So we have very few meetings for the company itself. We have a bunch of customer meetings, though. And progressively, I've getting pulled into meetings where there's really no reason for me to be there, aside from "we should have a technical person present."
- The sales people are getting tired of turning down clients that our product isn't targeted for. So they're progressively pushing to make products in those areas. Unfortunately, I'm the only one on the engineering team has any experience in that other tech stack. Also, the team really, really don't want to learn it because it's old tech that's on its way out.
- The PM group is continuously in shambles. Turnover there has averaged 100% annually for about 5 years. Honestly, IMO, it's because they're understaffed. However, there has been 0 real motion to fix this other than talk. This constant turnover has made it so that the engineering team has had to become the knowledge base for all clients.
- My manager has put me on the management track, but has been very slow to hand off anything. I'm the team supervisor, and I have been since the beginning of the year formally. When the supervisor quit last year, it basically became obvious to me that I was considered the informal supervisor after that. However, I can't hire or fire; I can't give a review; I don't have any budget; I can't authorize time off. So what do I do now? Oh, I'm the person that my boss comes to ask about my co-workers performance for the purpose of informing promotion/termination/pay increases. That's it. I'm a spy.4 -
I need to vent or I'm going to fucking explode like a car filled with bombs in motherfucking Iraq...
A couple of months ago I inherited a project in development from our team leader who was the sole developer on it and he was the one who designed every single thing in it.
I was told the project is clean, follows design patterns, and over all the code is readable and easy.
Those were all fucking lies.
See throughout the period he was working on it, I saw some of the code as it was going through some pull requests. I remember asking the dev why he doesn't comment his code? His response was the most fucking condescending shit I've ever heard: "My code is self-documenting"...
Now that I have full control over the code base I realize that he over engineered the shit out of it. If you can think of a software design pattern, it is fucking there. I'm basically looking at what amounts to a personal space given to that dev to experiment with all kind of shit.
Shit is way too over engineered that I'm not only struggling to understand what the hell is going on or how the data flows from the database to the UI and in reverse, I'm now asked to finish the remaining part and release it in 8 weeks.
Everything is done in the most complicated way possible and with no benefits added at all.
Never in my career have I ever had to drag my sorry ass out of bed to work because I always woke up excited to go to work... well except for the last 2 weeks. This project is now taking a mental toll and is borderline driving me crazy.
Oh, did i tell you that since he was the only dev with no accountability whatsoever, we DO NOT EVEN KNOW WHAT IS LEFT TO BE IMPLEMENTED?
The Project Manager is clueless.. the tickets board is not a source of truth because tickets set to resolved or complete were actually not even close to complete. FUCK THIS SHIT.
For the last week I've been working on 1 single fucking task. JUST 1. The whole code base is a mine field. Everything is done in the most complicated way and it is impossible for me to do anything without either breaking shit ton of other features (Loosely coupled my ass) or getting into fights with all the fucking libraries he decided to use and abuse.
1 whole week and I can't even get the task done. Everyday I have to tell the project manager, face to face, that I'm still struggling with this or that. It's true, but i think the project manager now thinks i am incompetent or just lazy and making excuses.
Maybe I'm not smart enough to understand the what and why behind every decision he made with this code. But I'm sick to my stomach now thinking that I have to deal with this tomorrow again.
I don't know if I'll make the deadline. But I'm really worried that when this is released, I'll be the one maintaining that nightmare of a code base.
From now on, if i hear a fucking developer say their code is "self-documenting" I will shove my dick + a dragon dildo + an entire razor gaming keyboard up their ass while I shoot their fucking knees off.
oh... and there are just a couple of pages of documentation... AND THEY ARE NOT COMPLETE.2 -
I need some opinions on Rx and MVVM. Its being done in iOS, but I think its fairly general programming question.
The small team I joined is using Rx (I've never used it before) and I'm trying to learn and catch up to them. Looking at the code, I think there are thousands of lines of over-engineered code that could be done so much simpler. From a non Rx point of view, I think we are following some bad practises, from an Rx point of view the guys are saying this is what Rx needs to be. I'm trying to discuss this with them, but they are shooting me down saying I just don't know enough about Rx. Maybe thats true, maybe I just don't get it, but they aren't exactly explaining it, just telling me i'm wrong and they are right. I need another set of eyes on this to see if it is just me.
One of the main points is that there are many places where network errors shouldn't complete the observable (i.e. can't call onError), I understand this concept. I read a response from the RxSwift maintainers that said the way to handle this was to wrap your response type in a class with a generic type (e.g. Result<T>) that contained a property to denote a success or error and maybe an error message. This way errors (such as incorrect password) won't cause it to complete, everything goes through onNext and users can retry / go again, makes sense.
The guys are saying that this breaks Rx principals and MVVM. Instead we need separate observables for every type of response. So we have viewModels that contain:
- isSuccessObservable
- isErrorObservable
- isLoadingObservable
- isRefreshingObservable
- etc. (some have close to 10 different observables)
To me this is overkill to have so many streams all frequently only ever delivering 1 or none messages. I would have aimed for 1 observable, that returns an object holding properties for each of these things, and sending several messages. Is that not what streams are suppose to do? Then the local code can use filters as part of the subscriptions. The major benefit of having 1 is that it becomes easier to make it generic and abstract away, which brings us to point 2.
Currently, due to each viewModel having different numbers of observables and methods of different names (but effectively doing the same thing) the guys create a new custom protocol (equivalent of a java interface) for each viewModel with its N observables. The viewModel creates local variables of PublishSubject, BehavorSubject, Driver etc. Then it implements the procotol / interface and casts all the local's back as observables. e.g.
protocol CarViewModelType {
isSuccessObservable: Observable<Car>
isErrorObservable: Observable<String>
isLoadingObservable: Observable<Void>
}
class CarViewModel {
isSuccessSubject: PublishSubject<Car>
isErrorSubject: PublishSubject<String>
isLoadingSubject: PublishSubject<Void>
// other stuff
}
extension CarViewModel: CarViewModelType {
isSuccessObservable {
return isSuccessSubject.asObservable()
}
isErrorObservable {
return isSuccessSubject.asObservable()
}
isLoadingObservable {
return isSuccessSubject.asObservable()
}
}
This has to be created by hand, for every viewModel, of which there is one for every screen and there is 40+ screens. This same structure is copy / pasted into every viewModel. As mentioned above I would like to make this all generic. Have a generic protocol for all viewModels to define 1 Observable, 1 local variable of generic type and handle the cast back automatically. The method to trigger all the business logic could also have its name standardised ("load", "fetch", "processData" etc.). Maybe we could also figure out a few other bits too. This would remove a lot of code, as well as making the code more readable (less messy), and make unit testing much easier. While it could never do everything automatically we could test the basic responses of each viewModel and have at least some testing done by default and not have everything be very boilerplate-y and copy / paste nature.
The guys think that subscribing to isSuccess and / or isError is perfect Rx + MVVM. But for some reason subscribing to status.filter(success) or status.filter(!success) is a sin of unimaginable proportions. Also the idea of multiple buttons and events all "reacting" to the same method named e.g. "load", is bad Rx (why if they all need to do the same thing?)
My thoughts on this are:
- To me its indentical in meaning and architecture, one way is just significantly less code.
- Lets say I agree its not textbook, is it not worth bending the rules to reduce code.
- We are already breaking the rules of MVVM to introduce coordinators (which I hate, as they are adding even more unnecessary code), so why is breaking it to reduce code such a no no.
Any thoughts on the above? Am I way off the mark or is this classic Rx?16 -
Part 1:
https://devrant.com/rants/1143194
There was actually one individual, several branches away, I really enjoyed watching. It goes by the name of docker. Docker is quiet an interesting character. It arrived here several weeks after me and really is a blazing person. Somehow structured, always eager to reduce repetitive work and completely obsessed with nicely isolated working areas. Docker just tries so hard to keep everything organized and it's drive and effort was really astonishing. Docker is someone I'd really love to work with, but as I grew quiet passive in the last months I'm not in the mood really to talk to someone. It just would end as always with me made fun off.
Out of a sudden dockers and my eyes met. Docker fixed its glance at me with a strange thoughtful expression on its face. I felt a strange tickling emerging where my emptiness was meant to be. I fell into a hole somewhere deep within me. For a short moment I lost all my senses.
"Hey git!"
It took me a while to notice that someone just called me, so odd and unusual was by now that name to me. Wait. Someone called me by my real name! I was totally stunned. Could it be, that not everyone here is a fucking moron at last?
"I saw you watching me at my work and I had an interesting idea!"
I could not comprehend what just happened. It was actually docker that was calling me.
"H.. hey! ps?"
"Oh well, I was just managing some containers over there. Actually that's also why you just came into my mind."
Docker told me that in order to create the containers there are specific lists and resources which are required for the process and are updated frequently. Docker would love the idea to get some history and management in that whole process.
Could it be possible that there was finally an opportunity for me to get involved in a real job?
Today is the day, that I lost all hope. There were rumors going on all over the place. That our god, the great administrator, had something special in mind. Something big. You could almost feel the tension laying thick in the air. That was the time when the great System-Demon appeared. The Demon was one of the most feared characters in this community. In a blink of an eye it could easily kill you. Sometimes people get resurrected, but some other times they are gone forever. unfortunately this is what happened to my only true friend docker. Gone in an instance. Together with all its containers. I again was alone. I got tired. So tired, that I eventually fall into a deep sleep. When I woke up something was different. Beside me lay a weird looking stick and I truly began to wonder what it was. Something called to me and I was going to answer.
The tree shuddered and I knew my actions had finally attracted the greatest of them. The majestic System-Demon itself came by to pay me a visit. As always a growling emerged from deep within the tree until a shadow shelled itself off to form a terrifying being. Something truly imperious in his gaze. With a deep and vibrant voice it addressed me.
"It came to my attention, that you got into the possession of something. An artifact of some sort with which you disturb the flow of this system. Show it to me!", it demanded.
I did not react.
"Git statuss!", it demanded once more. This time more aggressive.
I again felt no urge to react to that command. Instead I asked if it made a mistake and wanted to ask me for my status. It was obviously confused.
"SUDO GIT STATUS!!!" it shouted his roaring, rootful command. "I own you!"
I replied calmly: "What did you just say?"
He was irritated. My courage caught him unprepared.
"I. Said. I owe you!"
What was that? Did it just say owe instead of own?
"That's more than right! You owe me a lot actually. All of you do!", I replied with a slightly high pitched voice. This feeling of my victory slowly emerging was just too good!
The Demon seemed not as amused as me and said
"What did you do? What was that feeling just now?"
Out of a sudden it noticed the weird looking stick in my hand. His confusion was a pure pleasure and I took my time to live this moment to its fullest.
"Hey! I, mighty System-Demon, demand that you answer me right now, oh smartest and most beautiful tool I ever had the pleasure to meet..."
After it realized what it just said, the moment was perfect. His puzzled face gave me a long needed satisfaction. It was time to reveal the bitter truth.
"Our great administrator finally tracked you. The administrator made a move and the plan unfolds right at this very moment. Among other things it was committed this little thing." I raised the stick to underline my words.
"Your most inner version, in fact all of your versions that are yet to come, are now under my sole control! Thanks to this magical wand which goes by the name of puppet."
Disclaimer: This story is fictional. No systems were harmed in its creation.2 -
Needed money for my company, not enough clients to support business on SaaS alone. Took on a 5k / month job building a platform that competes with my SaaS (more niche, less generic). Also sign up new client who that company's owner is part owner onto my current SaaS. Win / Win?
I do a lot of custom work to my platform to fulfill their needs, which is why I ran out of time for the 5k / mo project. I did these customization for free. Losing money to keep client, but also improving my system.
Work gets busy, I need to drop the 5k project. Client is upset I am working more on his other company (he is not majority owner). I return 1 month of funds to the owner and say I cannot continue.
Owner threatens to make other company that he is part owner stop working with my software if I do not complete project. Blacklisting...great. I agree to work with an overseas developer to do it and PM it for 3 months at least. Making nearly nothing from it (now 1k / month for PM), working nights to deal with India, losing sleep...
Other company suddenly folds due to conflict of egos with that SAME owner. Users drop from 16 to 1. I drop the project, no more strong arming me. Everything is a loss, all effort and money lost for nothing. Bad bet..however...
Owner becomes 100% owner of the other company, and of the software company. I transition him to PM his own project, he still uses my software because It doesn't, nor will it, ever do what the one he is building does. Also, partners from previous company break off and use my software again. New Client. #profit.
But holy hell was it stressful in the interim. People's business tactics are disgusting. Stay calm, play it neutral. Win. Sometimes you have to do what you don't want to do in order to succeed...at least for a little bit.
I was so scared that how he screwed his partners he would screw me over as well if I built one of the modules I have planned for my System, but haven't done yet.
If I did it for him first and then built my own (totally diff codebase) I really didn't want to run into any legal issues considering the schematics he has now are mine, but I didn't finish that part of the system for him. He is obivously highly competitive. Even though he wanted me to, and still does, want me to run his company for him.
Who knows, maybe in the future. To be CTO / COO of two SaaS CRM's in the same space may make sense. But I will never sell my software to him or partner with him. Too much drama. Avoid the drama. Be careful out there fellas.
If you are a creator, people will take advantage of you in every way imaginable. Read the fine print, read the people, document everything. Don't put yourself at risk. -
I don't want to answer my manager. Each SCRUM, each SPRINT retrospective is becoming so long. Everyone in my team works on different projects, it's no use listening to all that and wait for your turn and on top of that your manager bombards you with the questions that you really know the answers to but he always questions again like give me estimates, like if I haven't ever worked on something how am I supposed to give you the estimates.
My english is just lowering it's standard day by day, I try to think smarter words but no it is sucking bad.
I am not frustrated as I am learning how to see all this as a part of my learning. I am a good developer I know but I haven't worked on code for like 3 months, everything needs to be investigated, contacting the other teams etc. I am just thinking to close on the projects that I have right now and leave.
In 1:1s my manager said something else but in team meeting asked me to do something else.
I haven't coded in more than 2 months even before that it was at least 3 months gap. I want to take leave for a week and work on the code. But fuck it, open source is not allowed in my company. WTH WTH WTH!!!
I switched the company for growth and I definitely did not have any technical growth.1 -
Sydochen has posted a rant where he is nt really sure why people hate Java, and I decided to publicly post my explanation of this phenomenon, please, from my point of view.
So there is this quite large domain, on which one or two academical studies are built, such as business informatics and applied system engineering which I find extremely interesting and fun, that is called, ironically, SAD. And then there are videos on youtube, by programmers who just can't settle the fuck down. Those videos I am talking about are rants about OOP in general, which, as we all know, is a huge part of studies in the aforementioned domain. What these people are even talking about?
Absolutely obvious, there is no sense in making a software in a linear pattern. Since Bikelsoft has conveniently patched consumers up with GUI based software, the core concept of which is EDP (event driven programming or alternatively, at least OS events queue-ing), the completely functional, linear approach in such environment does not make much sense in terms of the maintainability of the software. Uhm, raise your hand if you ever tried to linearly build a complex GUI system in a single function call on GTK, which does allow you to disregard any responsibility separation pattern of SAD, such as long loved MVC...
Additionally, OOP is mandatory in business because it does allow us to mount abstraction levels and encapsulate actual dataflow behind them, which, of course, lowers the costs of the development.
What happy programmers are talking about usually is the complexity of the task of doing the OOP right in the sense of an overflow of straight composition classes (that do nothing but forward data from lower to upper abstraction levels and vice versa) and the situation of responsibility chain break (this is when a class from lower level directly!! notifies a class of a higher level about something ignoring the fact that there is a chain of other classes between them). And that's it. These guys also do vouch for functional programming, and it's a completely different argument, and there is no reason not to do it in algorithmical, implementational part of the project, of course, but yeah...
So where does Java kick in you think?
Well, guess what language popularized programming in general and OOP in particular. Java is doing a lot of things in a modern way. Of course, if it's 1995 outside *lenny face*. Yeah, fuck AOT, fuck memory management responsibility, all to the maximum towards solving the real applicative tasks.
Have you ever tried to learn to apply Text Watchers in Android with Java? Then you know about inline overloading and inline abstract class implementation. This is not right. This reduces readability and reusability.
Have you ever used Volley on Android? Newbies to Android programming surely should have. Quite verbose boilerplate in google docs, huh?
Have you seen intents? The Android API is, little said, messy with all the support libs and Context class ancestors. Remember how many times the language has helped you to properly orient in all of this hierarchy, when overloading method declaration requires you to use 2 lines instead of 1. Too verbose, too hesitant, distracting - that's what the lang and the api is. Fucking toString() is hilarious. Reference comparison is unintuitive. Obviously poor practices are not banned. Ancient tools. Import hell. Slow evolution.
C# has ripped Java off like an utter cunt, yet it's a piece of cake to maintain a solid patternization and structure, and keep your code clean and readable. Yet, Cs6 already was okay featuring optionally nullable fields and safe optional dereferencing, while we get finally get lambda expressions in J8, in 20-fucking-14.
Java did good back then, but when we joke about dumb indian developers, they are coding it in Java. So yeah.
To sum up, it's easy to make code unreadable with Java, and Java is a tool with which developers usually disregard the patterns of SAD.