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 - "show me the way"
-
Well, it happened. The stupidest request, no demand, I have ever, and most likely will ever receive...
Me: So what is it you're looking to do with your website.
Client: We're not showing up Facebook's home page. We need you to fix that. We have a budget of $10,000 to make this happen right now.
Me: As much as I'd love to take your money, that isn't something I can control. Every "home page" is profile-based, which technically isn't a homepage, but a "feed" that changes constantly. So say you create a profile on Facebook, only those you follow, and paid posts show up on your feed. What I can do however is use your budget to create and promote posts from your company page to show on users' feeds. If you're serious about marketing, we can start slow at $250/week, then work our way up or down based on results until your budget is exhausted, then re-evaluate the budget at that time. I can tailor a retainer for you based on the number of ads per week that you'd like to make.
Client: No, this is not what we're asking for at all.
Me: Okay...what is it you're looking for exactly? Run through this in as much detail as possible so I can get on the same page.
Client: We want to be on the main home page of facebook.com. We want our logo on that page when people sign up to make an account, linking to our website.
Me: That's simply not possible. That's Facebook's own home page. Nobody has a right to edit that other than Facebook itself.
Client: Bullshit. There's a Facebook developers section with APIs to edit and view Facebook's entire website. We would do it ourselves, but we signed up and don't understand how to change it in Chrome. That's why we need you and [referring client] said you were the best guy for our needs.
Me: That API has no control over Facebook's corporate data, including their own home page. That API designed ONLY for sections in which you are authorized to access or modify, such as your personal profile or created page for your business.
Client: We know that it can be done. If you don't do it, we'll find someone else who can.
Me: Well good luck with that, because the only way it would be remotely possible to do that WILL involve prison time, since that would be illegal. The only legal way to do it would be to buy Facebook, and they'll laugh you out of the building with that offer. But I'm done with this conversation because I have work to complete from clients that aren't delusional. Have a nice day! [hang up]
----
What. The. Fuck.26 -
One of my favorite aspects of devRant has always been getting to learn more about the awesome people who use it. Beyond just the awesome stories posted by many here, one of my favorite ways to learn about and feel connected to the people here has always been desk/setup reveals. I personally love seeing different kinds of setups from all over the world, knowing that’s what the people here use to do their work and compute in general.
As an experiment, we want to try a few different things to highlight desk/setup/remote coding location posts. First, we’ve created the first devRant Instagram account, which is completely focused on developer desks/setups/workstations/remote coding. Please check it out here and follow: https://www.instagram.com/devdesks/
I want to use the account to bring more attention to the wide assortment of setups the awesome members of the devRant community post from all over the world. We’ll promote cool desk/setup/remote work images that are posted on devRant to the Instagram account for more exposure/additional audience.
Beyond that, I also want to try to come up with a way to better organize all of the desk/setup posts on devRant and encourage more of them. One kind we don’t see that often that I personally really enjoy is people coding with their laptops in locations that show the culture of their country or something special about the region they are from. Personally, I’m going to try to post some of those for where I live and work.
So how can you help with this effort? It’s easy! We encourage people to post their setups/working remotely pics and we will start featuring them on the Instagram account and hopefully elsewhere in the devRant app for some increased visibility/searchabilty over what we have now (since pics are kind of hard to search).
Also, we plan to make the weekly rant this week “post your setup,” so maybe wait until then to post, and you can work now on getting that awesome shot :) I know a lot of people here love photography like I do, so I think that part is fun too.
Please let me know if you have any ideas or questions about this, and I’m looking forward to seeing the desks/setups of many more devRanters in the next few days!
P.S. not a requirement, but one thing I think makes these photos better looking through a lot of them is when there is code visible in some way.43 -
Good Morning!, its time for practiseSafeHex's most incompetent co-worker!
Todays contestant is a very special one.
*sitcom audience: WHY?*
Glad you asked, you see if you were to look at his linkedin profile, you would see a job title unlike any you've seen before.
*sitcom audience oooooooohhhhhh*
were not talking software developer, engineer, tech lead, designer, CTO, CEO or anything like that, No No our new entrant "G" surpasses all of those with the title ..... "Software extraordinaire".
*sitcom audience laughs hysterically*
I KNOW!, wtf does that even mean! as a previous dev-ranter pointed out does this mean he IS quality code? I'd say he's more like a trash can ... where his code belongs
*ba dum tsssss*
Ok ok, lets get on with the show, heres some reasons why "G" is on the show:
One of G's tasks was to build an analytics gathering library for iOS, similar to google analytics where you track pages and events (we couldn't use google's). G was SO good at this job he implemented 2 features we didn't even ask for:
- If the library was unable to load its config file (for any reason) it would throw an uncatchable system integrity error, crashing the app.
- If anything was passed into any of the functions that wasn't expected (null, empty array etc.) it would crash the app as it was "more efficient" to not do any sanity checks inside the library.
This caused a lot of issues as some of the data needed to come from the clients server. The day we launched the app, within the first 3 hours we had over 40k crash logs and a VERY angry client.
Now, what makes this story important is not the bugs themselves, come on how many times have we all done something stupid? No the issue here was G defended all of this as the right thing to do!
.. and no he wasn't stoned or drunk!
G claimed if he couldn't get the right settings / params he wouldn't be able to track the event and then our CEO wouldn't have our usage data. To which I replied:
"So your solution was to not give the client an app instead? ... which also doesn't give the CEO his data".
He got very angry and asked me "what would you do then?". I offered a solution something like why not have a default tag for "error" or "unknown" where if theres an issue, we send up whatever we have, plus the file name and store it somewhere else. I was told I was being ridiculous as it wasn't built to track anything like that and that would never work ... his solution? ... pull the library out of the app and forget it.
... once again giving everyone no data.
G later moved onto another cross-platform style project. Backend team were particularly unhappy as they got no spec of what needed to be done. All they knew was it was a single endpoint dealing with very complex model. There was no Java classes, super classes, abstract classes or even interfaces, just this huge chunk of mocked data. So myself and the lead sat down with him, and asked where the interfaces for the backend where, or designs / architecture for them etc.
His response, to this day frightens me ... not makes me angry, not bewilders me ... scares the living shit out of me that people like this exist in the world and have successful careers.
G: "hhhmmm, I know how to build an interface, but i've never understood them ... Like lets say I have an interface, what now? how does that help me in any way? I can't physically use it, does it not just use up time building it for no reason?"
us: "... ... how are the backend team suppose to understand the model, its types, integrate it into the other systems?"
G: "Can I not just tell them and they can write it down?"
**
I'll just pause here for a moment, as you'll likely need to read that again out of sheer disbelief
**
I've never seen someone die inside the way the lead did. He started a syllable and his face just dropped, eyes glazed over and he instantly lost all the will to live. He replied:
" wel ............... it doesn't matter ... its not important ... I have to go, good luck with the project"
*killed the screen share and left the room*
now I know you are all dying in suspense to know what happened to that project, I can drop the shocking bombshell that it was in fact cancelled. Thankfully only ~350 man hours were spent on it
... yep, not a typo.
G's crowning achievement however will go down in history. VERY long story short, backend got deployed to the server and EVERYTHING broke. Lead investigated, found mistakes and config issues on every second line, load balancer wasn't even starting up. When asked had this been tested before it was deployed:
G: "Yeah I tested it on my machine, it worked fine"
lead: "... and on the server?"
G: "no, my machine will do the same thing"
lead: "do you have a load balancer and multiple VM's?"
G: "no, but Java is Java"
... and with that its time to end todays episode. Will G be our most incompetent? ... maybe.
Tune in later for more practiceSafeHex's most incompetent co-worker!!!31 -
Its Friday, you all know what that means! ... Its results day for practiseSafeHex's most incompetent co-worker!!!
*audience: wwwwwwooooooooo!!!!*
We've had a bewildering array of candidates, lets remind ourselves:
- a psychopath that genuinely scared me a little
- a CEO I would take pleasure seeing in pain
- a pothead who mistook me for his drug dealer
- an unbelievable idiot
- an arrogant idiot obsessed with strings
Tough competition, but there can be only one ... *drum roll* ... the winner is ... none of them!
*audience: GASP!*
*audience member: what?*
*audience member: no way!*
*audience member: your fucking kidding me!*
Sir calm down! this is a day time show, no need for that ... let me explain, there is a winner ... but we've kept him till last and for a good reason
*audience: ooooohhhhh*
You see our final contestant and ultimate winner of this series is our good old friend "C", taking the letters of each of our previous contestants, that spells TRAGIC which is the only word to explain C.
*audience: laughs*
Oh I assure you its no laughing matter. C was with us for 6 whole months ... 6 excruciatingly painful months.
Backstory:
We needed someone with frontend, backend and experience with IoT devices, or raspberry PI's. We didn't think we'd get it all, but in walked an interviewee with web development experience, a tiny bit of Angular and his masters project was building a robot device that would change LED's depending on your facial expressions. PERFECT!!!
... oh to have a time machine
Working with C:
- He never actually did the tutorials I first set him on for Node.js and Angular 2+ because they were "too boring". I didn't find this out until some time later.
- The first project I had him work on was a small dashboard and backend, but he decided to use Angular 1 and a different database than what we were using because "for me, these are easier".
- He called that project done without testing / deploying it in the cloud, despite that being part of the ticket, because he didn't know how. Rather than tell or ask anyone ... he just didn't do it and moved on.
- As part of his first tech review I had to explain to him why he should be using if / else, rather than just if's.
- Despite his past experience building server applications and dashboards (4 years!), he never heard of a websocket, and it took a considerable amount of time to explain.
- When he used a node module to open a server socket, he sat staring at me like a deer caught in headlights completely unaware of how to use / test it was working. I again had to explain it and ultimately test it for him with a command line client.
- He didn't understand the need to leave logging inside an application to report errors. Because he used to ... I shit you not ... drive to his customers, plug into their server and debug their application using a debugger.
... props for using a debugger, but fuck me.
- Once, after an entire 2 days of tapping me on the shoulder every 15 mins for questions / issues, I had to stop and ask:
Me: "Have you googled it?"
C: "... eh, no"
Me: "can I ask why?"
C: "well, for me, I only google for something I don't know"
Me: "... well do you know what this error message means?"
C: "ah good point, i'll try this time"
... maybe he was A's stoner buddy?
- He burned through our free cloud usage allowance for a month, after 1 day, meaning he couldn't test anything else under his account. He left an application running, broadcasting a lot of data. Turns out the on / off button on the dashboard only worked for "on". He had been killing his terminal locally and didn't know how to "ctrl + c a cloud app" ... so left it running. His intention was to restart the app every time you are done using it ... but forgot.
- His issue with the previous one ... not any of his countless mistakes, not the lack of even trying to make the button work, no, no, not for C. C's issue is the cloud is "shit" for giving us such little allowances. (for the record in a month I had never used more than 5%).
- I had to explain environment variables and why they are necessary for passwords and tokens etc. He didn't know it wasn't ok to commit these into GitHub.
- At his project meetups with partners I had to repeatedly ask him to stop googling gifs and pay attention to the talks.
- He complained that we don't have 3 hour lunch breaks like his last place.
- He once copied and pasted the same function 450 times into a file as a load test ... are loops too mainstream nowadays?
You see C is our winner, because after 6 painful months (companies internal process / requirements) he actually achieved nothing. I really mean that, nothing. Every thing was so broken, so insecure / wide open, built without any kind of common sense or standards I had to delete it all and start again ... it took me 2 weeks.
I hope you've all enjoyed this series and will join me in praying for the return of my sanity ... I do miss it a lot.
Yours truly,
practiseSafeHex20 -
My last internship (it was awesome). A programmer developed a vacation/free day request application for internal use.
Asked if I could test it for security.
The dev working on it thought that was a very good idea as he wasn't much into security and explained how the authentication process worked.
I immediately noticed a flaw just from his explanation. He said it was secure anyways (with an explanation but his way of thinking was wrong in this case). Asked if I was allowed to show him. He said he was intrigued by this so gave me a yes right away.
For the record, user levels were normal user, general admin and super admin (he was the only super admin).
Wrote a quick thingy server side (one of my own servers/domains) for testing purposes.
Then I started.
Went from normal user to super admin (his account) through a combination of XSS and Session Hijacking within 15 seconds.
Explained him where he went wrong and he wrote a patch under my guidance 😃.
That felt so fucking awesome.5 -
Father bought a PC in 1997. Back then very few had it. I learned doing things like accessing the internet and sending emails, among others. I remember having added age on websites to be allowed to sign up at times :P My sisters used to play games on it sometimes. The first few ones we had were Tomb Raider: The Last Revelation, Tomb Raider Chronicles, American McGee's Alice(Which caused us to upgrade the PC xD)... And some others.
I have a memory of this pseudo-3D-looking game where you move in a maze and try answering questions. I want to remember its name, but I cannot :(
We literally have video evidence of me liking the computer as a child, yet my parents either say I'm addicted or deny I've ever liked it before. Not only that, but continuously limiting my time with the PC hasn't been a literal obstacle in my way of trying to do things in their opinion. Funny how my parents think the last few years I've been my worst when they've hurt me in those years so much that our relationship is guaranteed not working out. There were doubts in my head before, but now it's cemented and there is no way of going back. Father, for example, tells me it's too late to do anything with a PC now(As well as how I've been unable to use the PC. He looks at these pro players' footage in some TV show and he's like, „You've been unable to use your hobbies“, as if they have never ever screamed at me for perceived gaming and not actually cared to check), and I need to look for a „real“ job.
Sorry. I went to bed at 2:00 in the morning. Feel like a zombie because of ongoing weirdly insufficient sleep, even though I sleep kinda more than normal. Even when I took Melatonine for that it didn't help at all.
Childhood was where beating began. I was about 6/7. Right when I entered school. The first school that I attended was a private one and supposedly for „Wunderkinds“, while in reality I haven't seen a SINGLE teacher or psychologist approve of it, their argument being that children were basically drowned in work that wasn't age-appropriate(I don't mean anything bad. Just that teaching about Galaxies and all in first grade isn't the brightest idea). There was always a mountain of homework to do and as opposed to some other countries, we had to do it on a day to day basis. We didn't have a week-long deadline. I was predictably not keeping up with it as I could have, had it been a normal amount, so my parents decided I didn't want to study and began their methods of getting me to „study“. I have yet to see a person able to keep up with that school's tempo, no matter the age.
This place was also where I got bullied. I felt I had nowhere to be: At home, the parents' situation, at school, the bully. I never really went outside to play with other children, so I missed that part of childhood.
After the second year of school I was transferred to an advanced German school, called like that because they taught German and not English there. I also got to learn a bit of Russian before they removed it from school. In that period I used to attend ballet. But for less than a year. And piano, which I remember having attended for quite a long while, some years, if my memory isn't fried. I quit it because of it having been forced on me. Last piece I ever played fully was Beethoven's Marmotte.
In this school I was once again the outcast of the class. I had some people to interact with. All of those interactions lasted a few years at most. Then, because of a part of my class choosing me as a laughing-stock N2 and another girl as the N1, I found my best friend, who I still have today. She's the only friend I have nearby.
Most of the time I hated myself. Even today I struggle with that sometimes.
After that came university. This us where I got something like a friend circle at last. But it still didn't last. I got in a relationship with one of the guys, but I was just attracted. There was another I couldn't dare getting close to. Turns out he also had something for me. Then he disappeared from our lives and a year after, I still cannot forget the person. If I want to, I have to deprive myself of my own personality. Not a thing I'm willing to give up. Then I broke up with the guy I was in a relationship with and completely disappeared from the friendship circle. To be honest, I had reasons to. They refused to even try to look for the guy and they called him a friend for years. Sometimes parents hitting me can occur even today, but if I REALLY piss them off.
Now I'm here and oh, my God, I'm officially am aunt now! My sister gave birth to a daughter this morning... She's in Berlin with mother and both she and the child are doing great. I just hope she manages to be a good mother.20 -
Client : Can you make some adblock?
Me : Why? There is a lot of good things already...
C : I mean... Listen carefully.
M : ok
C: i have some google ads and user blocks with adblock
M : yeah, that is normal
C : so i implemented adblock blocker which blocks adblock so that i can show the webpage plus ads when the user disables adblock.
M : i bet users hate that.
C : yeah, so users found out a way to disable adblock blocker which disables adblock blocker which i implemented to show the ads! So i cant earn revenue..
M : so what?
C : Can you make ad block block block block?
M : Sure. How much will you give me ?
C : 20 to 30 dollars
M : great ( the most generous client ever seen)
*couple of years later*
Client : can you make ad block block block block block block block block block block?
Me : i cant understand
C : count the number of block
If there is odd number of block i means to block ads.
If there is even number of block ads, it means to show ads making user to disable ads.
M : so just tldr your request this time
C : even number
M : ok how much will you pay
C : 20 to 30 dollars
*next day*
C : can you..
M : offline
Who in the fucking world made ads, made adblock and made adblock block?15 -
Started talking about Pi-Hole (still trying to install this fucker by the way) today with a collegue.
He had it installed and showed me around a little.
CW: Alright give me an example then I'll show you wildcard blocking.
Me: google.com 😅
CW: *enters and saves it. then tries to load anything related to google.com*
*no google.com domains load, all give a blocked error*
Me: Works great!
CW: Yup.
...
...
...
...
Me: Uhm so you aren't like surprised that I went with google.com as example and that I'd genuinely would block it?!
CW: No, why would I be?
Me: Well, most people consider me paranoid/crazy the second they find out I don't want to use google/google's services.
CW: well that's fucking retarded. why would anyone redicule you for not using something you don't want to use. You'll have your reasons.
Me: So if I'd say i do it for privacy reasons, you wouldn't find that redicilous?
CW: No, why would I? Not using google (and for that matter facebook etc) for privacy reasons is very logical really.
FUCKING. THANK. YOU.22 -
So my girlfriend (non techie) just saw my rant about how I'd give her a baby if she knew how to close vim in a proper way (she saw me on devRant, asked me to show it and read my rants) and so I showed her vim so she'd get the joke.
I than told her, how it worked and such so she'd see how it's not a regular text editor and told her to try and quit it, and to my amazement, she did!
Guess she's a keeper :')11 -
Call comes down from the CEO and through his "Yes Man" that some investors are coming by to visit and he want to show off the data center and test servers. There are four full racks of storage servers filled with HDDs and each server has 4 to 16 HDDs a piece.
I got told to "make all of the lights blink", which can be epic seeing it in action but my test cycles rarely aligned that way.
All morning I was striping RAID arrays and building short mixed I/O tests to maximize "LED blinking" for the boss's henchman.
Investors apparently live/die by blinking light progress and it was all on me to get everything working.21 -
Developed an android app for the client. It was going great. Prototype for the initial (and static) content to show to the client was on the way. All until...
*goes back in time to when we were developing the prototype*
The asshole boss: "Wow this is good, just remove the login after the splash screen. Redirect it to the dashboard immediately."
Me: "What? Why?"
TAB: "He (the CEO of our company) said that the client doesn't need to see the login."
Me: "Well, alright." (Orders are orders, better remove it)
*A few days later, we present the prototype to the CEO. He'll be the one talking to the client. TAB isn't in this meeting.*
CEO: "Where is the login screen?"
Me: *dumbfounded and confused, in silence, and pressure rising*
The Good Boss: *whispers* "Where is the login screen? I thought I told you guys it should be there."
Me: *whispers* "TAB told us to remove it."
TGB: *Looks toward CEO* "TAB told us to remove it."
CEO: "Ugh. TAB is sick."
A little giggle. Nonetheless the meeting continued. He was displeased. I was a little guilty. The login screen's code was already there. Just couldn't show it since the app doesn't redirect there anymore.
*A discussion after the meeting*
TGB: "Why'd you guys remove the login?"
Me: "You and TAB had a meeting with the CEO the other day. After the discussion TAB went to us and told us to change it."
TGB: "But the CEO said no such thing! Anyway, let's go back to the office and straighten this out tomorrow."
*The next day, TAB was in the office*
TGB: *Chatting on messenger with me* "He is completely denying it."
Me: "WHAT?"
TGB: "He said he never told you guys anything. And he is persistent. I kept telling him it was his fault, but he denies all of it. He never approached you guys to change anything."
Me: "Well yeah. I guess we magically thought to ourselves and said, 'Hey, let's remove the login screen for fun. Let's show them less content because that's how we please our clients!' -_-"
Seriously, what kind of assholefuckery is this. This shit is a whole new level. I am so TRIGGERED.
I don't really care that the meeting didn't go as planned. Just MAN UP AND ADMIT YOUR MISTAKE YOU FILTHY SON OF A GOOSE. Never listening to this asshole again. Thought he could be trusted. I will always ask my good boss next time.18 -
"You mean to tell me that you deleted the class that holds all our labels and spin boxes together?" I said exasperatedly.
~Record scratch.mp3
~Freeze frame.mp4
"You're probably wondering how we got to this stage? Let's wind back a little, shall we?"
~reverseRecordSound.wav
A light tapping was heard at the entrance of my office.
"Oh hey [Boss] how are you doing?" I said politely
"Do you want to talk here, or do you want to talk in my office? I don't have anyone in my office right now, so..."
"Ok, we can go to your office," I said.
We walked momentarily, my eyes following the newly placed carpeting.
Some words were shared, but nothing that seemed mildly important. Just necessary things to say. Platitudes, I supposed you could call them.
We get to his office, it was wider now because of some missing furniture. I quickly grab a seat.
"So tell me what you've been working on," I said politely.
"I just finished up on our [project] that required proper saving and restoring."
"Great! How did you pull it off?" I asked excitedly.
He starts to explain to me what he did, and even opens up the UI to display the changes working correctly.
"That's pretty cool," admiring his work.
"But what's going on here? It looks like you deleted my class." I said, looking at his code.
"Oh, yeah, that. It looked like spaghetti code so I deleted it. It seemed really bulky and unnecessary for what we were doing."
"Wait, hold on," I said wildly surprised that he thought that a class with some simple setters and getters was spaghetti code.
"You mean to tell me that you deleted the class that organizes all our labels and spin boxes together?" I said exasperatedly.
"Yeah! I put everything in a list of lists."
"What, that's not efficient at all!" I exclaimed
"Well, I mean look at what you were doing here," he said, as he displays to me my old code.
"What's confusing about that?" I asked politely, but a little unnerved that he did something like this.
"Well I mean look at this," he said, now showing his "improved" code.
"We don't have that huge block of code (referring to my class) anymore filling up the file." He said almost a little too joyously.
"Ok, hold on," I said to him, waving my hand. "Go back to my code and I can show you how it is working. Here we are getting all the labels and spin boxes into their own objects." I said pointing a little further down in the code. "Down here we are returning the spin boxes we want to work with. Here and here, are setters so we can set maximum and minimum values for the spin box."
"Oh... I guess that's not that complicated. but still, that doesn't seem like really good bookkeeping." He said.
"Well, there are some people that would argue with you on that," I said, thinking about devRant.
He quickly switches back to his code and shows me what he did. "Look, here." He said pointing to his list of lists. "We have our spin boxes and labels all called and accounted for. And further down we can use a for loop to parse through them."
He then drags both our version of the code and shows the differences. I pause him for a moment
"Hold on, you mean you think this" I'm now pointing at my setters "is more spaghetti than this" I'm now pointing at his list of lists.
"I mean yeah, it makes more sense to me to do it this way for the sake of bookkeeping because I don't understand your Object Oriented Programming stuff."
...
After some time of going back and forth on this, he finally said to me.
"It doesn't matter, this is my project."
Honestly, I was a little heart broken, because it may be his project but part of me is still in there. Part of my effort in making it the best it can be is in there.
I'm sorry, but it's just as much my project as it is yours.17 -
Things have been a little too quiet on my side here, so its time for an exciting new series:
practiseSafeHex's new life as a manager.
Episode 1: Dealing with the new backend team
It's great to be back folks. Since our last series where we delved into the mind numbing idiocy of former colleagues, a lot has changed. I've moved to a new company and taken a step up as a Dev manager / Tech lead. Now I know what you are all thinking, sounds more dull and boring right? Well it wouldn't be a practiseSafeHex series if we weren't ...
<audience-shouting>
DEALING! ... WITH! ... IDIOTS!
</audience-shouting>
Bingo! so lets jump right in and kick us off with a good one.
So for the past few months i've been on an on-boarding / fact finding / figuring out this shit-storm, mission to understand more about what it is i'm suppose to do and how to do it. Last week, as part of this, I had the esteemed pleasure of meeting face to face with the remote backend team i've been working with. Lets rattle off a few facts to catch us all up:
- 8 hour time difference to me
- No documentation other than a non-maintained swagger doc
- Swagger is reporting errors and several of the input models are just `Type: String`
- The one model that seems accurate, has every property listed as optional, including what must be the primary key
- Properties go missing and get removed at the drop of a hat and we are never told.
- First email I sent them took 27 days to reply, my response to that hasn't been answered so far 31 days later (new record! way to go team, I knew we could do it!!!)
- I deal directly with 2 of them, the manager and the tech lead. Based on how things have gone so far, i've nick named them:
1) Ass
2) Hole
So lets look at some example of their work:
- I was trying to test the new backend, I saw no data in QA. They said it wouldn't show up until mid day their time, which is middle of the night for us. I said we need data in our timezone and I was told: a) "You don't understand how big this system is" (which is their new catch phrase) b) "Your timezone is not my concern"
- The whole org started testing 2 days later. The next day a member from each team was on a call and I was asked to give an update of how the testing was going on the mobile side. I said I was completely blocked because I can't get test data. Backend were asked to respond. They acknowledged they were aware, but that mobile don't understand how big the system is, and that the mobile team need to come up with ideas for the backend team, as to how mobile can test it. I said we can't do anything without test data, they said ... can you guess what? ... correct "you don't understand how big the system is"
- We eventually got something going and I noticed that only 1 of the 5 API changes due on their side was done. Opened tickets. 2 days later asked them for progress and was told that "new findings" always go to the bottom of the backlog, and they are busy with other things. I said these were suppose to be done days ago. They said you can't give us 2 days notice and expect everything done. I said the original ticket was opened a month a go *sends link* ......... *long silence* ...... "ok, but you don't understand how big the system is, this is a lot of work"
- We were on a call. Product was asking the backend manager (aka "Ass") a question about a slight upgrade to the new feature. While trying to talk, the tech lead (aka "Hole") kept cutting everyone off by saying loudly "but thats not in scope". The question was "is this possible in the future" and "how long would it take", coming from management and product development. Hole just kept saying "its not in scope", until he was told to be quiet by several people.
- An API was sending down JSON with a string containing a message for the user with 2 bits of data inside it. We asked for one of those pieces to also come down as a property as the string can change and we needed it client side. We got that. A few days later we found an edge case and asked for the second piece of data to be a property too. Now keep in mind, they clearly already have access to them in order to make the string. We were told "If you keep requesting changes like this, you are going to delay the release of the backend by up to 2 weeks"
Yes folks, there you have it, the most minuscule JSON modifications, can delay your release by up to 2 weeks ........ maybe I should just tell product, that they don't understand how big the app is, and claim we can't build it on our side? Seems to work for them
Thats all the time we have for today,
Tune in for more, where we'll be looking into such topics as:
- If god himself was an iOS developer ... not
- Why automate when you can spend all day doing it by hand
- Its more time-efficient to just give everything a story point of 5
- Why waste time replying to emails ... when you can do nothing instead
See you all next week,
practiseSafeHex13 -
I've been fortunate enough to work with a lot of awesome people early into my career.
At the company I worked where I met @trogus, I became friends with a few people, including Tim, that I think were my favorites. It was a really fun bunch and though it may sound immature, but a lot of the times it felt like we were kids so for me coming out of college it was awesome.
There's so many stories from working with that bunch that come to mind for me. One of my best friends there was this guy "Dirty Devin." He started around the same time I did. When I first met him he seemed really boring and professional. After getting to know him, and after he'd been at the company for a few weeks, his actual personality started to show and he was like a child (in the best way possible) and was absolutely hilarious/made the work place a blast.
Our office had a ping pong table and neither Dirty Devin or I had ever really played. We started playing against each other and we both very quickly got really good.
I also met a guy named Botond (he's the one in the photo). He was very similar to Dirty Devin. Lots of crazy stories but the photo is actually a really funny one - we both got to work a few minutes early one day. And we couldn't get into the office. We kept trying to enter the door code and it wouldn't work. We kept joking that we must both be fired. Turned out that they had fired someone the night before and didn't bother to send out the new door code :/
And of course, Tim. I think we clicked pretty early on and had the same friend group at the company.
2 -
I turned 40 yesterday. Here are some lessons I've learned, without fluff or BS.
1) Stop waiting for exceptional things to just happen. They rarely do, and they can't be counted on. Greatness is cultivated; it's a gradual process and it won't come without effort.
2) Jealousy is a monster that destroys everything in it's path. It's absolutely useless, except to remind us there's a better way. We can't always control how we feel, but we can choose how we react to those feelings.
When I was younger, jealousy in relationships always led to shit turning out worse than it probably would have otherwise. Even when it was justified, even when a relationship was over, jealousy led me to burn bridges that I wished I hadn't.
3) College isn't for everyone, but you'll rarely be put square in the middle of so much potential experience. You'll meet people you probably wouldn't have otherwise, and as you eventually pursue your major, you'll get to know people who share your passions and dreams. Despite all the bullshit ways in which college sucks, it's still a pretty unique path on the way to adulthood. But on that note...
4) Learn to manage your money. It's way too easy to get into unsustainable debt. It only gets worse, and it makes everything harder. We don't always see the consequence of credit cards and loans when we're young, because the future seems so distant and undecided. But that debt isn't going anywhere... Try not to borrow money that you can't imagine yourself paying back now.
5) Floss every day, not just a couple times per week when you remember, or when you've got something stuck in your teeth. It matters, even if you're in your 20s and you've never had a cavity.
6) You'll always hear about living in the moment, seizing the day... It's tough to actually do. But there's something to be said for looking inward, and trying to recognize when too much of our attention is focused elsewhere. Constantly serving the future won't always pay off, at least not in the ways we think it will when we're young.
This sentiment doesn't have much value when it's put in abstract, existential terms, like it usually is. The best you can do is try to be aware of your own willingness and ability to be open to experiences. Think about ways in which you might be rejecting the here and now, even if it's as seemingly-benign as not going out with some friends because you just saw them, or you already went to that place they're going to. We won't recognize the good old days for what they were until they're already gone. The trick is having as many good days as possible.
7) Don't start smoking; you'll never quit as soon as you'll think you can. If you do start, make yourself quit after a couple years, no matter what. Keep your vices in check; drugs and alcohol in moderation. Use condoms, use birth control.
8) Don't make love wait. Tell your friends and family you love them often, and show them when you can. You're going to lose people, so it's important. Statistically, some of you will die young, yourselves.
When it comes to relationships, don't settle if you can't tell yourself you're in love, and totally believe it. Don't let complacency and familiarity get in the way of pursuing love. Don't be afraid to end relationships because they're comfortable, or because you've already invested so much into them.
Being young is a gift, and it won't last forever. You need to use that gift to experience all the love that you can, at least as a means to finding the person you really want to grow old with, if that's what you want. Regardless, you don't want to miss out on loving someone, and being loved, because of fear. Don't be reckless; just be honest with yourself.
9) Take care of your body. Neglecting it makes everything tougher. That doesn't mean you have to work out every day and eat like a nutritionist, but if you're overweight or you have health issues, do what you can to fix it. Losing weight isn't easy, but it's not as hard as people make it out to be. And it's one of the most important things you can do to invest in a healthy adulthood.
Don't put off nagging health issues because you think you'll be fine, or you don't think you'll be able to afford it, or you're scared of the outcome. There will always be options, until there aren't. Most people never get to the no-options part. Or, they get there because all the other options expired.
10) Few things will haunt you like regret. Making the wrong choice, for example, usually won't hurt as much. I guess you can regret making the wrong choice, but my deepest regrets come from inaction, complacency and indifference.
So how can we avoid regret? I don't know, lol. I don't think it's as simple as just commiting to choices... Choosing to do nothing is still a choice, after all. I think it's more about listening to your gut, as cliche as that sounds.
To thine own self be true, I guess. It's worth a shot, even if you fail. Almost anything is better than regret.10 -
Was over at a friend's place for the first time in months again to just have a few drinks and some good time with two of my best friends when I wanted to show them a website.
Had my own phone turned off (NO phone use while socializing for me!) so asked one of them (the one who's still finding his way around the concept of online privacy) for their phone so I could show it.
He uses loads of Google things so I started to look for the chrome icon. Swiping all ways but couldn't find it... then suddenly:
DuckDuckGo search/browser icon!
😵😯
Me: dude the what?! YOU using a more privacy conscious browser?!?!?!
Friend: well, Google doesn't need to know EVERYTHING I search for online so I looked if ddg had an app and voila!
Me: de damn! And, how do you like it?
Friend: the results are good so nothing to complain about!
I'm proud of you, mate!8 -
If you are a developer and the resume you send me says "Certified Web Ninja" on it. I will invite you to an interview. But keep in mind, if you don't show up wearing all black and carrying a Katana, I will throat punch you and send you on your way.10
-
Friend: So you're like a Developer right? Specifically using JavaScript?
Me: I mean...kinda? Pretty Noobish still...
Friend: But you could like show a buddy of mine some basics right?
Me (thinking to myself...the best way to test your knowledge is to teach it...): well...sure...
Friend: Great here is their info!
*Drives an hour away*
*sits down with this friend of a friend*
*busts out laptop*
Friend of friend: So how long have you been a Java Developer?
Me: -_- oh fuck...
*head desk*15 -
Get ready for one of the biggest AMAZON rants EVER.
I dislike this company so much I can feel it in my bones.
They have NO, absolutely NO idea how user experience works.
PROBLEM #1.
If you have Amazon Prime / Video (ANOTHER FUCKED UP PROBLEM THAT CONFUSES A LOT OF PEOPLE) and you want to watch a movie on your Xbox using the Amazon App, You have to buy the movie ON YOUR COMPUTER FIRST, YOU CAN’T BUY IT DIRECTLY FROM THE APP.
WHAT THE SHIT AMAZON?
So.. go to your laptop, buy the movie, go back to your other device (Xbox or whatever), click “My movie library” and then you can watch it.
OH AND THERE’S ALSO A “MY WATCHLIST”, WHERE YOUR NEW PURCHASED / RENTED MOVIE DOES NOT SHOW UP.
Yes.. there is a “MY WATCHLIST” and “My movie library” or some shit.
HOW, WHY, WHY FUCKING AMAZON, WHY.
PROBLEM #2.
“WE HAVE A ZILLION ALEXA SKILLS NOW !!!1!!!!!11111! EINZ!!!!!”
Yeah, WELL, NOT THAT HARD WHEN YOU HAVE “Alexa Evangelist” traveling to every DAMN tech convention and having them make USELESS FUCKING SKILLS THAT NOBODY WANTS USING BOILER PLATE CRAP THAT ANYBODY CAN USE.
Oh and Alexa is DUMB AS SHIT.
I asked her "Play the song Starboy by the Weeknd" and she said: "I CAN'T FIND THAT SONG"
Then you go "Play me Starboy" and she goes: "HERE IS A SAMPLE OF STARBOY BY THE WEEKND"
Same with other songs: "YOU DONT HAVE IT IN YOUR PRIME MUSIC LIBRARY".
She doesn't even TRY to go to your fucking Spotify account, you have say: "Play Starboy by The Weeknd on Spotify" AND THEN she still has the FUCKING NERVES to say : "I Can't find that song on Spotify".
BUT YOU JUST FOUND IT ON YOUR OWN DAMN CRAPPY PRIME MUSIC.
"Hey Alexa, how many days till the end of the year?"
GUESS WHAT ,SHE CAN'T TELL YOU. (maybe now but not 2 months ago)
PROBLEM #3.
AUDIBLE.COM and AUDIBLE.CO.UK have DIFFERENT FUCKING DATABASES, THUS, YOU CAN END UP HAVING 2 ACCOUNTS AND HAVING 2 LIBRARIES, and.. THERE IS NO WAY TO FUSE THEM INTO 1 account.
OH MY GOD, HOW IS THAT EVEN POSSIBLE?
I FUCKING HATE that, how can ANYBODY think that is a GOOD IDEA?
PROBLEM #4.
Their website is a TOTAL FUCKING mess, really, who the FUCK designs that piece of SHIT.
Look up a movie, let’s say “SCHOOL OF ROCK”
First result?
“School Of Rock” - “Amazon Video”
So you can click on this and watch the movie.
Then click the second result.
“School of Rock Blu RAY” and next to the price-tag “PRIME”
You click on it, you can buy it, but HEY, LOOK, WHAT DOES IT SAY?
“Unlimited Streaming with Amazon Prime
Start your 30-day free trial to stream thousands of movies & TV shows included with Prime. Start your free trial”
WHAT, WHAT!!!! CAN I WATCH THIS WITH AMAZON PRIME? OR DO I NEED THE AMAZON VIDEO? I DON’T GET IT.
Put me in a room with all those FUCKWIT project managers and their fucked up company culture and I’ll rip them a new one, I can go on for DAYS about the SHIT they are doing.15 -
Wow this one deserves a rant. Where should I even begin? I got a new job for over half a year now doing work in an agency. We're building websites and online shops with Typo3 and Shopware (not my dream, but hey). All fine you might think BUT...
1) I have been working on the BIGGEST project we have all by myself since I started working at this company. No help, nobody cares.
2) If something goes wrong all the shit falls back to me like "wHy DiDnT yoU WoRk MoRE?". Seriously? How should one dev cover a project that's meant for at least two or three.
3) The project was planned four years ago (YES that's a big fat FOUR) and sat there for 3,5 years - nobody gave a fuck. I got into the company and immediately got the sucky shit project to work on.
4) I was promised some time to get familiar with the projects and tech we use and "pick something I like most to get started". Well that never happened.
5) I was also promised not to talk directly to our customers. Well, each week I was bombarded with insults, a shitload of work and nonsense by our customers because (you guessed it) I was obligated to attend meetings.
6) The scheduled time for a meeting was 30 minutes, sometimes they just went on for over two hours. Fml.
7) Project management. It does not exist. The company is just out to get more and more clients, hires more god damn managers and shit and completely neglects that we might need more devs to get all this crap finished. Nope, they don't care. By the way: this is not like a 200 employee company, it's more like 15 which makes it even sadder to have 4 managers and 3 devs.
8) We don't use trello (or anything to keep track of our "progress"), nobody knows the exact scope of the project, because it was planned FOUR FUCKING YEARS AGO.
9) They planned to use 3 months on this project to get it finished (by the way it's not just an online shop, it has a really sophisticated product configurator with like 20 dependencies). Well, we're double over that time period and it is still not finished.
10) FUCK YOU SHOPWARE
11) The clients are super unsatisfied with our service (who would have guessed). They never received official documents from us (that's why nobody knows the scope), nor did they receive the actual screen design of the shop so we just have to make it up on the go. Of course I mean "I" by "we", because appearently it is my job to develop, design and manage this shit show.
12) My boss regularly throws me in front of the bus by randomly joining meetings with my client telling them the complete opposite of things that we discussed internally (he doesn't know anything about this stupid project)
13) FUCK YOU COLLEAGUES, FUCK YOU COMPANY, FUCK YOU SHOPWARE AND FUCK YOU STUPID CUSTOMERS.
14) Oh btw. the salary sucks ass, it's barely a couple of bucks above minimum wage. Don't ask me why I accepted the offer. I guess it was better than nothing in the meantime.
Boy that feels good. I needed that rant. But hey don't get me wrong. I get that dev jobs can be hard and sucky, but this is beyond stupidity that I can bear. I therefore applied for a dev job in research at a university in my dream country. Nice colleagues, interesting projects, good project management. They accepted me, gave me a good offer and I can happily say that in 6-7 weeks my current company can go fuck themselves (nobody knows the 10.000+ lines of code but me). Just light it up and watch it burn!20 -
Wrote my friend Sam a letter when I was still working in support. I think it still holds up today.
---
Dear Sam,
I understand that you will join us in our overseas office. Congratulations on landing that job. It’s good steady work. I’ve been doing it for the last ten years.
Your still young so maybe I can give you some little wisdom that will help you in your working years to come.
Let me begin by shedding some light on phone calls.
I try. I really do try Sam. But it is getting so hard for me to hold back the rage that builds up during certain phone calls. Especially the ‘Sorry, I just don’t know anything about computers! -giggle-’ ones.
Those are the times that I have no access to what they see. I’ve no team-viewer, can not take over that screen in any other way. And why-oh-why can I not take over that terminal session dear Sam? It’s because the caller can not double-click an icon or find a terminal session number.
And what is the reason for this? Because they ‘just don’t know anything about computers! -giggle-’. This is a sort of get-out-of-jail-free card. Beware of these callers Sam.
There is nothing so nerve-wrecking then finding yourself at the mercy of people describing Internet Explorer (do not even get me started) as ‘the big ‘E’, if they use Chrome for their webmail then they most likely will say ‘Mail’ if they mean Chrome. There is no logic Sam. That is just the way these people work.
They will suck all enjoyment out of your work. They will make you want to hunt them down in dark office hallways and show them your tears Sam. Because cry you will.
Sure, I understand that not everyone can be tech savvy. Why, if everyone would be, where would that leave us? No. I love the technologically challenged. They put the fiber in my internet. They make me LOL for real. After the initial anger subsides anyway.
But just below that well-willing folk, on the other side of that border… there they dwell: Management.
Nice cars, suits and iphones Sam. First thing a new manager will require is a brand spanking new business-card. It will hold his/her new title. Then an iphone or overpriced android model will follow suit.
Then they will barge into your office, holding it like it’s the next best thing since sliced bread.
Any manager will automatically assume that you will drop anything you are doing at the present moment to acknowledge the presence of greatness. Failing to do so will result in awkward yet fulfilling situations. I recommend that you do not take your hands of the keyboard and give only the slightest of nods after 5 minutes of complete silence and glaring.
Well… you feel the glare. You do not glare yourself. You do not break eye-contact with the monitor. It does not even matter if you are typing for real or not. I once clicked away happily for 5 minutes. I just typed ‘he is still there’ over and over again. Do not break down Sam. This moment will decide your relationship with this individual.
After the nod there will be a flood of words aimed in your general direction. You can disregard anything that is said. It boils down to ‘can not operate device’.
You then take the device from this person and put it next to you on your desk. You’ll ask the name of this simpleton, write it down on a sticky-note, slap that on the phone. Then you’ll write a random date in the not so near future on another sticky and hand that to the bewildered person in front of you.
It will usually utter some incoherent words about ‘needing, time or but’ (I find that ‘but’is a word they like. They tend to use it three or four times consecutive before you usher them through the door).
Now you’ve won Sam. Well… not really. But it will feel good, I can guarantee that.
This must do for now. A new suit is glaring at me for the last five minutes.
Felt good to do something productive with this time.
Take care,
Baltasar
P.s. I just noticed that there is some foam around his mouth. So if you encounter this, don’t worry: it seems to be perfectly normal.13 -
A real interaction I just had...
Team Member: "Can you handle this ticket for a bug fix?"
Me: "Whats the problem?"
TM: "We aren't exactly sure..."
Me: "Ok, so can you show it to me?"
TM: "We can't get it to happen again, and when it does the machine freezes and we can't debug it..."
Me: "So, if I find a fix then how do we test to make sure it worked?"
TM: "I'm not sure..."
Then today,
Product Manager: "How's that bug fix going?"
Me: "Well, let's see. The problem still hasn't been defined. I have never been able to recreate the issue. I have a hacky fix in a PR..."
PM: "Great, so we can deploy today?!?"
Me: "No, because we have no way to reproduce or test this issue at all..."
PM: "Do you think your fix will work?"
Me: "Honestly, no. If you're asking for my opinion then you can have it. IMO this is NOT a bug fix but a change to how the system operates altogether. This system was built by someone who didn't know what they are doing. We have done our best with it but it is a house of cards. And now the solution is to replace a card at the bottom layer. It is likely that no matter what fix we do (even when we can fucking test it) that it will topple the house of cards..."
PM: ~Looking at me in disbelief~
Me: "If you ask me for my honest professional opinion then you will get it. Keep that in the future if that honest response was outside what you expected."
PM: "I will do that, thanks for your assessment"
Where do we go from here? God only knows.
Praise Joe Pesci5 -
I was recently hired as a lead devops to a giant shit show. The CTO said he needs someone to do things correctly instead of quickly. This is a conversation I just had this morning
HR: We want you to interview a potential new DevOps engineer
ME: okay, when?
HR: Tomorrow
ME: I won't be able to create interview tests and materials for tomorrow. How's next week
HR: This hire is urgent! It has to be tomorrow
ME: Then you'll have to do the interview without me
HR: We need you to interview them because we've had a few bad hires in the past that we don't want to repeat
ME: The best way to filter out bad hires is with technical tests, which will take time to develop. I can be ready by next week.
HR: We can't give you a weeks notice for each hire, we are in urgent need for more devops.
ME: ...14 -
The recruiter in call today is a spoilt brat .
I answer him wether am I know PHP. So I show him my code in PHP (oop) I show should him how I build a restful API and connect to MySql etc.
He told me that's not PHP , PHP don't use define and class , and that's not how you connect to MySql (I'm using PDO) he confused that pdo is something from Java. He told my code is not working because it is java syntax (actually not even closed)
Then I asked him then show me the proper way , he showed me his code in PHP which is started by <PHP instead of <?php (this is fucked up)
And I told him that (after looking at his code), he yelled at me that "there's no mistake, do you really understand PHP? " And he ended the meeting
All this happen in a zoom meeting.22 -
"Hey, about that matter from yesterday..."
"Yes, what about that?"
"We need to talk about that again! How often do you trigger that system?"
"Once."
"You sure?"
"Yes, but i can check it, if you like."
*find references*
"See, only once."
"Can it happen at a random point later one?"
"No."
"Are you sure?"
"Yes"
"Can you check it?"
"Okay."
*shows code"
"Look here, as you can see, it will not happen at other times."
"Do you have an idea why it could happen anyway?"
"Maybe that system does the action without my software telling it to do so, wasn't that specified that way?"
"Yes, but it normally does that roughly 10 seconds after you give the command the first time, so we thought maybe you could say what makes it do the action at other points maybe."
"Did you check that systems sourcecode?"
"No not yet. But did that happen with the older version?"
"No. But we didn't try."
"Did you change something between the versions?"
"Yes, the new feature."
"Could that make a change in behaviour?"
"I don't see how."
"Can you remove that feature for test?"
"We can take the old version."
"No, we need the new version, but without the feature you added."
"That IS the old version, there is no other difference!"
"Are you sure?"
"Would you like to see it in source control?"
"No, ~ okay. What do you think causes the problem?"
"I haven't had any new ideas since we talked yesterday."
"Okay. Mhhh,...okay. Lets talk again later."
YES SURE! BRING IT ON! I'M LOOKING FORWARD TO THAT! PLEASE COME BY OR CALL ME AGAIN! AND BRING THE BOSS WITH YOU, TO SHOW HOW SERIOUS THE MATTER IS! LET ME TELL HIM THE STUFF I TOLD SEVEN TIMES LAST WEEK!2 -
Root encounters HR at her new job.
So, I left my job a few weeks ago. I was pretty sad about it, so I didn't want to write anything about it. It was a great place to work, with great managers, decent coworkers, and interesting work. I also had free reign over how I built things, what to improve, etc. Within about four months, I authored over half of the total commits on their backend repo, added a testing suite with 90% coverage, significantly improved the security (more accurately: added security), etc. but I got a job offer that allowed me to work remotely, and make well over six figures (usd). I couldn't turn it down, even though I wanted to. So, I left. I'm still genuinely sad about that. I had emotions and everything. 🙁 I stayed on long enough to finish the last of the features for their new product launch, and make sure everything was stable. I'm welcome back whenever, though they don't want to have remote employees, and I want to move, so. that's probably not going to happen. sigh.
Anyway, I started my new job this week. Rented an office (read: professional closet) and everything! It's been veritable mountains of HR paperwork so far. That's all I've done besides some accounts setup. I've seriously only worked on and completed one ticket so far in two and a half days, and I still have six documents/contracts to sign! (and benefits; that'll probably take my weekend.)
But getting an I9 thing notarized? Apparently I only have three days before I'm legally unemployable by them or something, idk. HR made it sound ridiculously dire and important, and reminded me like five or more times. I figured it was just some notary service; that takes like 10 minutes, right? So I put it off until my second day so I didn't have to disappear in the middle of my first day. Anyway, I called a bunch of notary services on day 2, and apparently only like 5% of them both do notary services this time of year and aren't booked full. And of those, probably another 5% will notarize I9 documents.. No idea why it's rare, but whatever, I'm not a notary.
The HR lady assured me that I didn't need any special documents; I should just go there, present my IDs, and the notary will provide or draft documents for everything else. Totally doesn't sound right, but fine; I'm not a notary nor will I ever work in HR, so I'm not very knowledgeable about this. So, against my better judgement I decided to just go anyway. I called around and finally found a place that wasn't closed, busy, or refusing, and drove over there. Waited. Waited. Waited. Notary lady was super slow in every single action. (I should mention that it's now 10am, and I have a meeting with the Senior VP of Engineering [a stern, stubborn old goat who enjoys making people feel inadequate] at 12:30pm.) The notary lady looks like she's an npc updating in slow motion (maybe at 0.25x speed?) and can't seem to understand what I need. Eventually, she tells me exactly what I had assumed: if there's no document, she can't notarize said document, and she doesn't have an I9 for the company I'm trying to work for. (like, duh.) So I thank her for proving the flow of time is variable, which she ignores in slow motion, and drive back home. It's now about 11.
I message the same HR lady, and the useless wench gawks in surprise and says she's never heard of that ridiculous request before. It took prodding to get her to respond every time, but after some (very slow) back and forth, she says she wants to call the notary personally and ask what they need. I waited around for another response that never came, and eventually just drove to the notary place again to have them notarize the required ID documents. That plus my chat history with HR should be enough to show that I bloody well tried, and HR just shit the bed instead. I finally got them notarized at like 12:10, and totally broke the speed limit the entire way to the office, found the last remaining parking spot, and made it to my office just in time for the meeting. seriously, less than two minutes to spare. Meeting was interesting (mostly about security), but totally made me facepalm, shout "Seriously!? What the hell are you thinking!?" and make slapping motions at some of the people talking. I will probably rant about that next.
But anyway, I'm willing to bet that the useless wench won't get back to me before the notary closes, if at all, and will somehow try to blame it completely on me if I bring it up again. Passive aggressive bitch. She's probably thinking: "If I don't help her with these mandatory legal processes, it'll be her fault she didn't get them done in time. I mean, they're so easy! She's just doing it wrong." I fucking hate HR.13 -
My first dev job. Me and another guy get hired at the same time. He will be the lead dev, and I’ll be the junior dev on a long term project. Project gets delayed (and eventually canceled, but that’s a different story), so the lead dev decides to give me programming challenges to test my skill level. I successfully complete the challenges, but they aren’t up to his standards. Belittles me in front of our manager. Afterwards I ask him to show me how he would have done it. The dude can barely type let alone show me the way it should be done. I say nothing to the manager.
A few weeks pass, it’s clear the project we were hired for is canceled, so we are given other work. They task the lead dev with porting the company website to Wordpress so non-devs can alter content. They chose Wordpress mainly because the lead dev said he is familiar with it. Two weeks later, no progress has been made. They ask me if I can do it, and I do it in 2 days including additional functionality that was requested. Manager asks me why I thought lead dev couldn’t do what I did. I said, “I don’t think lead dev knows what the fuck he is doing. I don’t think he knows how to program.” Manager says, “Huh.”
Several months later lead dev is still there, but has yet to work on any projects with any success. They finally let him go.
Glad to finally get that off my chest.6 -
So I was applying for a research position in linguistic department, and had the interview today.
Prof: So you know excel right
Me: (show a project to him to prove I at least know csv file)
Prof: Ok so you know excel.
Me: Yeah kinda.
Prof: Ok that's good. Cuz right now we are using amazon Turk, and the data they returned, which are excel files, are not really the way we want it.
Me: Ok sounds like a parser can fix it......
Prof: Yeah.... the students in the lab are doing it manually now
(Dead silence)
Prof: Ok move onto next matter
7 -
Boss comes to me with an idea, we use a spreadsheet to store certain sets of links for clients, sometimes with dozens of links, he wants us to be able to push a button and open all the links in the sheet. I'll admit I'm not exactly proficient in excel but said I'd look into it.
I came up with a macro which seemed to work for a while but there were a few links now and then that didn't want to open due to the way excel apparently checks the links prior to actually opening them. I told my boss that I'd look into a better solution but was slammed in office with scheduled projects.
I ended up taking time at home over the next week learning how to make this happen in Python. After a week I've got a CLI Python app which takes in an excel workbook and asks the user to select a sheet. Well employees don't like CLI so they asked for a GUI. I had never made anything with a GUI before since I'm not a software developer, anything I had previously written was written for me so it didn't need a GUI to be useful.
Spent another two weeks at home developing this thing and finally got a working solution. Now several employees are using my app as part of their daily job, saving them well over an hour of just clicking links in a spreadsheet.
Boss goes on a long rant about how he appreciates me and is thankful I was able to figure this out in my own time and save him money. So I say "If you really wanna show you appreciate me, you could approve that raise I've been asking for."
He replies, "Haha, yeah, but that's not gonna happen."
(I and THE back end developer, and I make less than the copywriting interns, time to start looking)12 -
Me: I have been doing really similar tasks I'm going to spend some time making a template for it.
Supervisor: ok just don't spend to much time on it we have a lot to do.
Me: shouldn't take too long
1 hour later.
Supervisor : how's the work going.
Me: almost done with the template.
Supervisor: this is taking you way to long I need you to just get back to work.
Me: ok
He leaves and I continue work on the template.
30 mins later.
Show him the template.
Me: I cut my time on this specific task by 80%
Supervisor: good job glad I knew you should do it.
WTF YOU WERE TELLING ME NOT TO.5 -
So, some time ago, I was working for a complete puckered anus of a cosmetics company on their ecommerce product. Won't name names, but they're shitty and known for MLM. If you're clever, go you ;)
Anyways, over the course of years they brought in a competent firm to implement their service layer. I'd even worked with them in the past and it was designed to handle a frankly ridiculous-scale load. After they got the 1.0 released, the manager was replaced with some absolutely talentless, chauvinist cuntrag from a phone company that is well known for having 99% indian devs and not being able to heard now. He of course brought in his number two, worked on making life miserable and running everyone on the team off; inside of a year the entire team was ex-said-phone-company.
Watching the decay of this product was a sheer joy. They cratered the database numerous times during peak-load periods, caused $20M in redis-cluster cost overrun, ended up submitting hundreds of erroneous and duplicate orders, and mailed almost $40K worth of product to a random guy in outer mongolia who is , we can only hope, now enjoying his new life as an instagram influencer. They even terminally broke the automatic metadata, and hired THIRTY PEOPLE to sit there and do nothing but edit swagger. And it was still both wrong and unusable.
Over the course of two years, I ended up rewriting large portions of their infra surrounding the centralized service cancer to do things like, "implement security," as well as cut memory usage and runtimes down by quite literally 100x in the worst cases.
It was during this time I discovered a rather critical flaw. This is the story of what, how and how can you fucking even be that stupid. The issue relates to users and their reports and their ability to order.
I first found this issue looking at some erroneous data for a low value order and went, "There's no fucking way, they're fucking stupid, but this is borderline criminal." It was easy to miss, but someone in a top down reporting chain had submitted an order for someone else in a different org. Shouldn't be possible, but here was that order staring me in the face.
So I set to work seeing if we'd pwned ourselves as an org. I spend a few hours poring over logs from the log service and dynatrace trying to recreate what happened. I first tested to see if I could get a user, not something that was usually done because auth identity was pervasive. I discover the users are INCREMENTAL int values they used for ids in the database when requesting from the API, so naturally I have a full list of users and their title and relative position, as well as reports and descendants in about 10 minutes.
I try the happy path of setting values for random, known payment methods and org structures similar to the impossible order, and submitting as a normal user, no dice. Several more tries and I'm confident this isn't the vector.
Exhausting that option, I look at the protocol for a type of order in the system that allowed higher level people to impersonate people below them and use their own payment info for descendant report orders. I see that all of the data for this transaction is stored in a cookie. Few tests later, I discover the UI has no forgery checks, hashing, etc, and just fucking trusts whatever is present in that cookie.
An hour of tweaking later, I'm impersonating a director as a bottom rung employee. Score. So I fill a cart with a bunch of test items and proceed to checkout. There, in all its glory are the director's payment options. I select one and am presented with:
"please reenter card number to validate."
Bupkiss. Dead end.
OR SO YOU WOULD THINK.
One unimportant detail I noticed during my log investigations that the shit slinging GUI monkeys who butchered the system didn't was, on a failed attempt to submit payment in the DB, the logs were filled with messages like:
"Failed to submit order for [userid] with credit card id [id], number [FULL CREDIT CARD NUMBER]"
One submit click later and the user's credit card number drops into lnav like a gatcha prize. I dutifully rerun the checkout and got an email send notification in the logs for successful transfer to fulfillment. Order placed. Some continued experimentation later and the truth is evident:
With an authenticated user or any privilege, you could place any order, as anyone, using anyon's payment methods and have it sent anywhere.
So naturally, I pack the crucifixion-worthy body of evidence up and walk it into the IT director's office. I show him the defect, and he turns sheet fucking white. He knows there's no recovering from it, and there's no way his shitstick service team can handle fixing it. Somewhere in his tiny little grinchly manager's heart he knew they'd caused it, and he was to blame for being a shit captain to the SS Failboat. He replies quietly, "You will never speak of this to anyone, fix this discretely." Straight up hitler's bunker meme rage.13 -
!Story
The day I became the 400 pound Chinese hacker 4chan.
I built this front-end solution for a client (but behind a back end login), and we get on the line with some fancy European team who will handle penetration testing for the client as we are nearing dev completion.
They seem... pretty confident in themselves, and pretty disrespectful to the LAMP environment, and make the client worry even though it's behind a login the project is still vulnerable. No idea why the client hired an uppity .NET house to test a LAMP app. I don't even bother asking these questions anymore...
And worse, they insist we allow them to scrape for vulnerabilities BEHIND the server side login. As though a user was already compromised.
So, I know I want to fuck with them. and I sit around and smoke some weed and just let this issue marinate around in my crazy ass brain for a bit. Trying to think of a way I can obfuscate all this localStorage and what it's doing... And then, inspiration strikes.
I know this library for compressing JSON. I only use it when localStorage space gets tight, and this project was only storing a few k to localStorage... so compression was unnecessary, but what the hell. Problem: it would be obvious from exposed source that it was being called.
After a little more thought, I decide to override the addslashes and stripslashes functions and to do the compression/decompression from within those overrides.
I then minify the whole thing and stash it in the minified jquery file.
So, what LOOKS from exposed client side code to be a simple addslashes ends up compressing the JSON before putting it in localStorage. And what LOOKS like a stripslashes decompresses.
Now, the compression does some bit math that frankly is over my head, but the practical result is if you output the data compressed, it looks like mandarin and random characters. As a result, everything that can be seen in dev tools looks like the image.
So we GIVE the penetration team login credentials... they log in and start trying to crack it.
I sit and wait. Grinning as fuck.
Not even an hour goes by and they call an emergency meeting. I can barely contain laughter.
We get my PM and me and then several guys from their team on the line. They share screen and show the dev tools.
"We think you may have been compromised by a Chinese hacker!"
I mute and then die my ass off. Holy shit this is maybe the best thing I've ever done.
My PM, who has seen me use the JSON compression technique before and knows exactly whats up starts telling them about it so they don't freak out. And finally I unmute and manage a, "Guys... I'm standing right here." between gasped laughter.
If only it was more common to use video in these calls because I WISH I could have seen their faces.
Anyway, they calmed their attitude down, we told them how to decompress the localStorage, and then they still didn't find jack shit because i'm a fucking badass and even after we gave them keys to the login and gave them keys to my secret localStorage it only led to AWS Cognito protected async calls.
Anyway, that's the story of how I became a "Chinese hacker" and made a room full of penetration testers look like morons with a (reasonably) simple JS trick.
9 -
This codebase reminds me of a large, rotting, barely-alive dromedary. Parts of it function quite well, but large swaths of it are necrotic, foul-smelling, and even rotted away. Were it healthy, it would still exude a terrible stench, and its temperament would easily match: If you managed to get near enough, it would spit and try to bite you.
Swaths of code are commented out -- entire classes simply don't exist anymore, and the ghosts of several-year-old methods still linger. Despite this, large and deprecated (yet uncommented) sections of the application depend on those undefined classes/methods. Navigating the codebase is akin to walking through a minefield: if you reference the wrong method on the wrong object... fatal exception. And being very new to this project, I have no idea what's live and what isn't.
The naming scheme doesn't help, either: it's impossible to know what's still functional without asking because nothing's marked. Instead, I've been working backwards from multiple points to try to find code paths between objects/events. I'm rarely successful.
Not only can I not tell what's live code and what's interactive death, the code itself is messy and awful. Don't get me wrong: it's solid. There's virtually no way to break it. But trying to understand it ... I feel like I'm looking at a huge, sprawling MC Escher landscape through a microscope. (No exaggeration: a magnifying glass would show a larger view that included paradoxes / dubious structures, and these are not readily apparent to me.)
It's also rife with bad practices. Terrible naming choices consisting of arbitrarily-placed acronyms, bad word choices, and simply inconsistent naming (hash vs hsh vs hs vs h). The indentation is a mix of spaces and tabs. There's magic numbers galore, and variable re-use -- not just local scope, but public methods on objects as well. I've also seen countless assignments within conditionals, and these are apparently intentional! The reasoning: to ensure the code only runs with non-falsey values. While that would indeed work, an early return/next is much clearer, and reduces indentation. It's just. reading through this makes me cringe or literally throw my hands up in frustration and exasperation.
Honestly though, I know why the code is so terrible, and I understand:
The architect/sole dev was new to coding -- I have 5-7 times his current experience -- and the project scope expanded significantly and extremely quickly, and also broke all of its foundation rules. Non-developers also dictated architecture, creating further mess. It's the stuff of nightmares. Looking at what he was able to accomplish, though, I'm impressed. Horrified at the details, but impressed with the whole.
This project is the epitome of "I wrote it quickly and just made it work."
Fortunately, he and I both agree that a rewrite is in order. but at 76k lines (without styling or configuration), it's quite the undertaking.
------
Amusing: after running the codebase through `wc`, it apparently sums to half the word count of "War and Peace"15 -
This rant means YOU if you are one of those people that "fix" their family's computers.
I was visiting my family over the holidays and while I managed to stay away from fixing their computers for the most time, I offered to help my grandfather to update the Garmin navigation device he wanted to gift my father. (They do not use smartphones for navigation, and my father doesn't want "these modern shitty phones".)
When booting up my grandfather's laptop, I realized something odd: Linux Mint boot screen. Wut?
And immediately I said: "It could be impossible to update your navigation device on this laptop."
As true enough, the Garmin Express update software requires either a Windows PC or a Mac; and even though I vaguely hoped it might be possible to upgrade through Linux, I just could not be bothered to find out that day.
What I wondered though is why did my grandfather of all people ran Linux!?
Don't get me wrong, I use Linux myself on my work machine and I never want to work with something else when coding; yet my grandfather is an end user of the show-me-where-and-what-and-how-often-to-click-kind.
What could he gain by it?
As it turns out, the computer nerd's friend of my uncle managed his PC. And my uncle and he decided unanimously my grandfather should better run Linux. Is it something my grandfather needs? No. BUT IT'S RIGHT! Suck it up! (My father's laptop therefore also runs Linux Mint. So he can't upgrade his new device either.)
This is the ugly kind of entitled nerd-dom I truly detest.
When discussing things further, my grandfather told me that he had problems ever since with his printer. Under Windows, he knew how to print on the special photo paper. Under Linux, all he can barely manage is to print on normal papers. Shame, printing photos was the only thing he liked doing on that device. What did my uncle's friend tell him?
"Get a decent printer!"
Fuck that guy.
It's fine if Linux works for you, but before you install it on a PC of a relative, you better make sure it fits their needs! If you have that odd member that only wants to write letters, read emails, use facebook, and wants to play that browser game, feel free to introduce them to Linux.
Yet if they have any special wish, don't stand in their way.
If they want to do something that requires a certain OS, don't just decide for them that their desire is wrong, but help them achieve their goal. If you can't align that with your ideology, then get the fuck out of my way and stop "helping".
For some people, a computer is a device to achieve a certain goal, a work. They only get hindered by your ill-advised attempts at virtue signalling.8 -
I am so fucking jealous of all you assholes. Oh look at me, i am a full stack developer and yada yada. I have the time and patience to do whatever app or game i want and show it off.
Fuck, you.
If i get home, i am glad i can stay awake for dinner and play a little game before i go to bed and my next day starts.
I have ideas, i need to do some self study to get all parts of those ideas going, but i fucking can't.
I have no motivation and no energy to spend when i get home, and even the weekends rarely i will feel like proframming jack shit. When or how do you even do it?! It's driving me up the wall and it makes me feel useless.
Stop being better then me in every possible way!28 -
I hate my job. I am furious at my colleagues.
Last November I asked my colleagues (A and B) to help me learn to use something, let's call it Tool. They said okay and set a date for training. Next week they said that they had too much work to do so we'll have to postpone. And the next date was also postponed and the next one too, and so on.
Three months in, colleague C kept dicking around and being a complete jackass telling me that he refused to work with me for I don't use the Tool.
Not like I didn't want to learn to use the Tool, I simply couldn't. I have long before googled how to use the Tool but in no way can Google ever tell me about our own company workflow, our methods, habits and such.
I was furious, but I am also a the most fucking patient person ever so I let it slide. The Tool wasn't actually needed that much to do my job anyways. And I have known for a while that colleague C needed to push someone under him to feel good about himself.
A few more dates had been set but got cancelled for reasons.
Meanwhile both A and B started to look down on me for not knowing how to use the Tool. I started to feel depressed.
Today B held a "workshop" about the Tool. It took two hours. He was not prepared, had a hangover and generally had a hard time concentrating.
He used aliases that he set up only for himself to show the usage of the Tool instead of commands that a beginner would understand (or google). He kept mumbling and I hsd trouble understanding him. His lecture lacked direction and was all over the place.
I am devastated and furious. I had been waiting since November for this training and when the time actually came he pulled something out of his ass and called it a workshop.
I didn't even get answers for my questions.
Now I feel that I am actually in a worse position than before because while I still cannot use the Tool, they can tell me that there was a workshop and I should've paid closer attention.
I want to quit so bad.23 -
Client: we love Internet Explorer, can you show me how the best way to use it?
Me:
Step 1: Open Internet Explorer
Step 2: Search & download Chrome.
Step 3: Close Internet Explorer
Step 4: Move Internet explorer to the bin.
Step 5: Never talk about using Internet Explorer again.3 -
Background: I'm not drunk yet, BUT I'M WORKING ON IT.
okay.
I just finished a second sprint on my React app. The first was to build a merchant onboarding flow. The second was to do substantial cleanup as I learned more about react/redux, and to create a "supply order" flow -- basically purchasing marketing materials and services. I finished that in a week, and I'm pretty proud. api-guy wanted it done in a day. i laughed. he probably could have, but it would have been a copy of the code in a new repo with some lines changed.
ANYWAY. it's all done and It's super pretty and works amazingly well. It has both the onboarding flow and the ordering flow, with a nice pop-out sidebar for navigation, namespaced actions, etc. Everything is pretty clean. I even added a cart to the ordering (despite everyone telling me not to) because wtf, what if someone wants to order TWO items? dumbasses. So I made that. it's sexy.
Anyway, it's all done and shiny and fancy and wonderful and I'd *love* to share screenshots if only it didn't give away where I worked. :<
... but the point of the rant!
After the first sprint, I made a copy of the repo so I could rework it and add more functionality without touching the original. (Hey! That's what a branch is for, right? Why didn't I branch it up?
well, read on)
I knew we were going to have multiple separate flows for this app: onboard, ordering, merchant tools, admin tools, support, etc. So, I wrote its server portion (the webpack builder + http server) so it would serve the same app at whatever url the user hit, and set a cookie containing that host+url. This allows the app to serve different content (basically showing/hiding content) based on the URL and future login roles. If someone hits /order, it would hide everything but the order flow. If they're a merchant, it would show all the merchant views plus ordering, etc.
tl;dr This way I can use the same codebase for multiple sites, drastically simplifying development, branding, and what have you. This new app could obv also be a drop-in replacement for the original onboarding project because of the above.
HOWEVER. this apparently isn't good enough for api-guy. He's terrified that adding/updating future components will affect all the existing content somehow.
so.
now we have three repos for basically the same codebase. 1) onboard aka "surfboard", 2) ordering, 3) merchant tools, aka "ferrari" (the "future" app).
Except.
1) "surfboard" is a very old version of the code. 3) "ferrari" is also old, since 2) "ordering" has newer content in it now.
... and somehow this is better?
fuck if i can figure out how.
His reasoning is "well, you won't be touching surfboard or ordering for 6 months, so now you don't have to worry about it." Sure, except, you know, it'll be a pain in the ass in 6 months now when I have a crapton of code and branding to redo. ffs.
Oh. We also have three Heroku pipelines for these three repos. for the same codebase.
and now you know why i'm drinking.undefined idiocy fucking hell fuck this noise api guy i'm just gonna replace everything later this codebase is as dry as the friggin ocean7 -
Hey. This code look broken. What should I do?
It isn't broken. It's doing what it's supposed to.
Well, it's hard to follow, but it certainly doesn't look right. And it isn't doing what I expect. Also, why is it calling method(a_class1_or_class2) with a class3?
It isn't hard to follow, and it works just fine. Let me show you. ... huh. looks like it isn't right. and there's a comment here saying the calls aren't clear. but it works just fine. Just copy it over and do it the same way.
I already did that. and it isn't working.
What are you talking about? Of course it works fine. Did you check your code?
------
Really, dude? It doesn't work fine. but, guess what? It works fine* when I change it to call that method with a class2 like it asks for. (Surprise!) But I can't tell him that. Nope. Bossmang get offended. Still won't admit I was right about anything, either.
Ahh... the continual joy of working with (and for) trash.
* well, more fine; the rest of the feature is still wrong. but nope, i'm not allowed to fix it. because why would they want anything to work properly? Already-accepted wrong behavior is good enough. Can't clean up the code, either, because that "muddies the waters." Bitch, I couldn't see the bottom of this sewer if it was half an inch deep! Which is more important: the last contributor entry beside the code, or that code being readable and maintainable? or it, you know, working?
doot doot.
need to scoot.7 -
Started working on a pihole alternative a while ago.
I like pihole a lot but one of the features I am missing is to be able to define a list of mass surveillance related domains (Snowden leaks; PRISM program and such) and show statistics based on dns queries containing blacklisted domains, prases/words and surveillance-related domains/words (google/facebook/microsoft/apple etc).
Started working on one based on an existing (php based) dns server which is open source and slowly but surely developed something which worked.
Then, I found out that the php resolving function (dns resolving) uses the system default, which can, of course, be google's dns as well. Changing this would be ideal but while the documentation suggested that it could be done some way, it didn't work for me so I chose a library which can do it with specific dns servers (to use as external dns servers).
This library used a different way of showing the retrieved dns query results and really wasn't in for converting everything by hand so i kinda quit the project a while ago.
A few days ago I thought fuck it and started again.
Now have a working version based on the new dns resolving library and made some other good improvements.
For those who are wondering why I chose PHP for this: why the fuck not?
Happy happy happy.
rant php fuck mass surveillance fuck microsoft fuck google dns server yes i love php fuck facebook dns16 -
Im way to fucking dense... Today a girl tried to show me she wanted to get to know me.
I was at McDonalds to get a coffee at McCafe. Since Im a regular there I know one of the guys enough to make jokes with him. So I was talking to him while he was making my coffee. Just before he finished it a girl interrupted him with the question if she could finish it. All she had to do was draw something with caramel on top of the cream.
I thought it was kinda rude because I was talking with her colleague. She gave me the cup and I walked out after thanking her, only to realize what she had drawn after I sat on my bicycle.
She had drawn a big heart with a question mark in it. I didnt really pay attention to the girl because I was annoyed she broke of the conversation and just took my coffee and walked out.
Now Im trying to remember what she looks like so I can talk to her tomorrow, but I dont even remember her hair color..24 -
Not laughing.
Not cursing.
Both for interviewing and being interviewed.
Some interviews could have been taken straight from a mexican telenovela.......
"Yeah, I worked for a year in the Walmart IT administration."
"Ok, what did you do?"
"Oh I had the high responsibility of taking care of swapping printer cartridges, programming the registers, stuff like that..."
"You apply for a senior database management role, you're aware of that?"
"Yeah. I took a bootcamp for 3 months in the evening after work. I'm up for the job and expect a payment of <lol, even having a stroke while writing a payment check that number will never happen>".
I made that up - but we had these cases... The story is just rewritten and mixed up for obvious reasons.
When I'm being interviewed, the same thing can happen by the way, too.
IMHO a interview is made not only for the company, but for me as an employee, too. I don't sugar coat it. I want to know what type of shit I'm getting into and how much I'm drowning in it.
Some "types" of interviewers react kinda funny when I start roasting them with questions...
For example, the authoritarian type usually reacts with disrespect. How dare u piss on my front lawn.... Kind of reaction. Which makes it hard not too laugh, because who wants to work for someone who throws a tamper tantrum during a interview? Even harder when the same guy promised you heaveb before (the flowery kind of bullshit, like everything's peaceful and fine and teams great and they have such a great leadership...)
Even worse is the patsy.
When you're sitting in an interview and the only answers you get are:
- Sorry, I don't know.
- I'm not allowed to ....
- Not in my area of expertise....
All just nice ways of saying: I will say nothing cause then I'd need to take some responsibility.
:)
The most Mexican telenovela stuff though in being interviewed is when I managed to divide a team of interviewers and it starts to become a "Judge Judy" or similar freaked out justice show...
A: "No, our team doesn't work that way".
B: "But you will in the short future, WE committed to it".
C: "Not that I'm aware of".
And me, an obvious sinner and person who enjoys entertainment and schadenfreude, just keeps adding kerosene to the fire.
"So, it seems like the team of A has its own rules which do not apply to B and C, do they also have greater funding?".
Oh it makes just fun to spur a good blood bath. -
I think this is so far one of the most priceless WTF moments I encountered at my current work:
A coworker of mine came up to me explaining the problem he had with russian characters in the filename. He explained in detail that everything works ok (the other part of the code he was fixing) if he changes the name of the file to test1.xlsx for example which doesn't use russian characters. OK great.
Then he goes on to show me how he fixed the other stuff and of course everything blows up. The file he used for demonstration was of course the original file our cusotomer provided, he just deleted the obvious russian chars and left the rest.
МТС != MTC
I cracked up: but you still have russian chars in the name.
The guy: no way, I deleted them all.
Me: but what about that МТС in the name?! Guy: what about it?
Me: did you actually typed that in or you left it there?! Those are russian chars that are fucking things up for you.
Guy: no way, it's MTC.
Me: checked the logs, you have ??? In the filename instead of МТС..don't you find that at least a little bit suspicious?!
Guy: but it looks the same. How does it (the computer) know it is in russian?!? //Why doesn't it understand?!
O.o I still can't believe it.. Is it just me & my high standards, or should it be normal for coders to know things such as character encoding & stuff?!?
I almost died of laughter, he and some other guy had problems finding customers in the software due to not being able to type the russian chars << happened more then once before, even after I told them about a quick hack on how to use google translate onboard keyboard & other stuff to make proper chars so they can get a match..
I think when they bury me, I'll still be facepalming and laughing over this incident. 🤣🤣🤣🤣🤣🤣🤣7 -
Story Time. Inspired by another rant.
Context: I'm In a coding camp years ago, it's the first day.
We're doing introductions (name, why you're here, etc). Always fun to do that....
The folks running the camp are excited to introduce a student who also at one point was a teacher for some sort of girl power coding organization. So this raises questions, why would someone who teaches be a student in this camp?? And even a bigger question is raised when this person introduces themselves for a long time, and as an aside puts down the girls she taught in this program they taught ... like who does that?
horribleLady does that ...
A few hours later horribleLady asks her 12th question of the day (we haven't even started talking about code). Before she asks her question actually says:
“I know, I’m going to be a problem.” -laugh-
🚨🚨🚨 ヽ ( ꒪д꒪ )ノ 🚨🚨🚨
Fast forward to group projects and she's this sort of emotional storm, tears, and a sort of angry shouting that isn't angry enough for some folks to say she's yelling at people ... but she is. Fortunately I'm not in the first group project with her, but because we're all working in the same room we all get to see the train-wreck unfold.
The moment she doesn't get something (all the time) everyone in her group has to STOP and figure out what they're going to do about it, then again STOP because she thinks someone is doing something different than what was planned. STOP STOP STOP STOP STOP.
In a way, everything had to go through her, she didn’t declare it that way, she didn't present herself as any sort of authority, she would just stop everyone the moment she thought anything was wrong, or she didn't understand it (all the time), and either inject herself or demand help from her team. Everyone around her had to be drawn into whatever problem she had. It was horrific to watch.
Private slack channels would light up like crazy with "OMG", "WTF", "I DON'T UNDERSTAND HER", "FUCK" and "SHE"S HOW OLD!?!?"
So finally it happens to me and guyWhoDoesPotConstantly (capable guy, nice dude, pretty sure he was high all the time).... we're teamed up to work with horribleLady. Thankfully for just one day. I accept this because I figure one day with her is enough penance to try to avoid any further contact later on.
My approach is straight stone face. I refuse to respond to her sulking, or sighing, or general emotional bait she throws out constantly. I saw other students unwittingly take her bait (they were trying to be helpful) only to have her crap all over them with her frustrations or whatever it is is going on.
Still we're teamed up with her her for the day so I'm going to be a good team member and I explain what guyWhoDoesPotConstantly and I are doing / trying.... and so forth. But she's just too upset that she's even assigned to work with us, and tells me I'm just not doing it right, and her explanations about how we're not doing it right makes less than 0 sense. I ask her to show me what she means but she won't type anything on her keyboard, she'd just talk about how she’s thinking conceptually in circles and sulk about it rather than listen. I don't respond to any of her shit and say "I'm going to try this." and guyWhoDoesPotConstantly and I just keep working.
She would later call the instructor over and complain to him for a while and say: "These guys just get it, they're not helping me, I want to be assigned to another group." She doesn't get her way so she just moves to another table in front of us.
After that day I figured it was a great time to ask .... to NEVER be assigned to anything with her because "If I told her what I thought it would just get a lot worse." I got my way ;)
Other students weren't so lucky. Tears, sulking, her special way of yelling at people that somehow never got her in trouble (she should have been kicked out of the program) just kept going on. She refused to even present one group project she deemed not good enough despite the fact that she contributed nothing functional to the project that the TA's didn't write for her...
Amidst the stories she would tell to students was one of how she sued her totally sexist/racist/evil former employer. She never said what came of it, but that combined with her inability to do things reminded me of a rant I read on here.
I sometimes fear being hired someplace and walking in my first day to find I'm assigned to work with .... horribleLady. In this scenario she managed to get hired and they're too afraid to fire her so they assign the new guy to work with horribleLady...
I've no idea what happened to her after the camp.
(I rewrote this rant a few times because it kept circling back to a larger story about the coding camp I wrote about a few years ago, so if this seemed sort of broken up and wonky, yeah it was / is / yeah)4 -
This is not facebook, but somehow yhis site has attracted who are virtually, mentally incapable of differentiating between their script kiddy hacker facebook group and anything that can be called a social media platform.
Sorting by recent and daring to toggle on jokes/memes is a pure shitshow of freshly created accounts who post "memes" of the same purity as their mother. And to finish it off they add that super relatable comment "hahah", "funny" and a couple of emojis. Totally makes me wonder if I end up being called comedy god for posting "peepee poopoo" on the site they "shared" it from.
Yes, shared and not stolen for the sake of that little dopamine rush when they see that 4 other people who try to escape their shitty form of reality thought you deserve to be proud for those couple of finger movements you used to put this on devrant and not to jack off.
Not even that spares you from their awful humor, because thanks to their disability to red, they think they can just smash that big red button and post their garbage in the wrong category, yet somehow they have the obligation to add an absurd amount of tags telling you that they've tried to post a joke and I honestly feel sorry for the database table who has to store so variations of "jokes/meme" for this shit.
Thr quality of these memes degrades with each time I open devrant, just like my patience for these shitposters.
I've seen a couple of people who cancled their monthly subscription for devrant, to show their discontent with these user and my urge to do the same has gotten stronger recently.
DevRant as it is right now is on it best way to stray away further from what it meant to be every day12 -
6 months ago:
Boss: We have this idea to improve our onboarding to avoid drop off in the new app. See this section here? Were going to take that out of the onboarding and just let them pass straight through to the app. Then when they get into the app, there will be a banner telling them they should go to settings and set this up. That way they can ignore it for a while and get into the app sooner
Me: Get into the app sooner to do what?
Boss: Explore it
Me: Explore an empty app with no content, as they are a brand new user with nothing setup? While theres a big banner on the screen saying "You have insecure settings" ... basically forcing them to do it straight away anyway?
Boss: Yeah, we can give them some recommendations or something while they click around. It will be good. This is months away anyway, we'll talk again
Yesterday:
Boss: So this weird unexpected thing happened. We showed some beta users our plans to remove this section from onboarding and they felt weird about it. They said they didn't like the idea of the banner telling them they haven't set it up correctly
Me: Thats not weird, I said the same thing 6 months ago
Boss: ......... oh, really?
Me: Yep. Its not an improvement to get them through onboarding quicker, just to tell them they have to now go do it somewhere else
Boss: ... right. Ok maybe we'll build it anyway and see how they feel with it in there hands?
Me: nope
Boss: ... what do you mean?
Me: We are behind, you've asked me 3 times in the last week if we are going to be able to get everything in on time ... and now you want me to build something that everyone, apart from you, says they don't like. So realistically, i'm going to build it, and then remove it next week ... and we'll have a discussion about what has to be dropped because of this
Boss: ........ right .... ok .... hhhmmm
Me: *sits with resting bitch face*
Boss: ... maybe we can hide the banner until later. Not show it to them until they've done something in the app?
Me: ... maybe we can not do any of this?
Boss: right but then the onboarding will ...
Me: *talks louder* ... yes will be the way our users want it to be
Boss: ... hhmm i'm not sure
Me: Ok heres what we'll do, so long as it doesn't delay me getting the designs I need, feel free to have the designer mock up what it would look like using that figma on device preview thing. If users say they like it, i'll build it
Boss: ... right but it won't be real on device app so ...
Me: Its that or we cut feature X
Boss: ... well we need that
Me: ok glad we agree, let me know what feedback the designer gets
Boss: ... ok10 -
Recruiters are fucking unbelievable sometimes.
With about one year experience I applied to company A and company B. Kinda competitors in what dev skillset they're looking for.
Company A reviewed my CV and decided I don't have enough experience without giving me a chance to present my actual knowledge.
Company B tells me screw your CV come along show us what you got. I rocked the interview with an offer the next day which I accepted, absolutely thrilled.
Fast forward 7 months I get an email from company A, same recruiter, inviting me to an interview as they're "impressed with my profile and feel like I've gone a long way" (definitely just because company B hired me and I passed my probation)
Ah the joy responding to them that as I value honour and honesty quite highly I don't think I would be a culture match for company B where it is a norm to reject candidates and come back pouch them after they pass probation at competitors.
Eek.. instant apologies email and of course explaining it's not poaching but "exploring opportunities".
Screw company A, honestly.5 -
Long rant!!!
Let me give you a little back story first
So I was building a mobile app for a client who is to say the least a big PAIN IN THE ASS!
And once I completed the final edits he requests and sent him the app for approval, he calls me and starts asking about some features in the app if it has does or not (which the app does). The main reason for this rant is the feature about the app being able to open the links of the website inside the app without going to the browser first.
But what was happening when the client clicked on the link, since it’s a newspaper type of app, he got asked in which browser he wanted to open the link and after the browser was opened it returned him to the app and asked if he wants that link be opened in the app or browser again. So I can understand his confusion and anger with this problem so I started to debug to see what is happening since I now this featured worked before and had it on video to show it does. After a few minutes I noticed that the links were being added as google.com/url?q={CLIENT_URL}/something_else instead of just www.client_url.com/article
Obviously not my fault as I don’t do content for the website but some other person. But once I called him back and explained the situation to him, he started yelling at me for not being able to create the feature and not notifying him of the mistake his author was making. After about 10mins of him yelling I snapped and just angrily told him “I don’t hear any problems with the app, as far as I’m concerned it can be published as is, as there is not problem on my side”. Then he got even more angry and started talking more shit about how this is all my fault and how I’m a bad programmer and how his users are gonna just delete the app once they see this and I should find a way to fix those links.
And to clarify some more, if there was like 5-10 articles I would do it, just so that I don’t have to listen to him, but there are more than 1 or 2k articles with about 2-5 links per article that were added like that.
After his call I called my boss and told him what happened, and he said he will talk to the client and explain to him how he will be able to communicate with me from now on and in what tone. As I’m not allowed to tell clients anymore to go fuck themselves, since I did it once. But I can call my boss and he does it for me :D
//END RANT !!!4 -
Thinking about this makes me pull my fucking hairs.
The fact that I have to look for the actual content in a website, among all the ads, prompts and fucking stupid design is fucking ridiculous.
Every fucking website is following this designs now. Always showing popups to subscribe to their fucking newsletter the moments you visit the site.
Can you please let me fucking read the content I require first?
"No fucking way. I will block 80% of the viewport with unnecessary stuff. I will place my ads on the left and right side. On the bottom, I will have a blocking div that will prompt you to subscribe to our newsletter. And on the top, we will have this huge fucking navbar which will take 30% of the view. That 20% area left in the middle? yeah, good luck on finding something useful in there"
Then there are this fucking cunts, that blocks the whole website the moment you enter.
"Oh, you need some information, right? Why not just subscribe to our emails first so that we can send your useless junks every now and then".
Oh my fucking batman, don't even remind me of those stupidass videos. Now 90% of the popular website will play a video immediately after you enter the website.
And guess what?! The volume will be amplified to 500% so that that's the sound you will ever hear in your lifetime.
The fucking web is becoming absolute shite right now. We really need a revolution here which makes the websites show the appropriate amount of ads and prevents them from doing all these stupids shits.5 -
Recap: https://www.devrant.io/rants/878300
I was out Thursday at the Hospital. I'm what the doctors would call "Ill as fuck"
So, Friday I’m back in the office to the usual: "How was that appointment?"
I know people mean well when they ask this. So, I do the polite thing and tell them it went as well as it could.
Realistically it does't matter how well it went... They haven't cured Crohn's because I showed up to the appointment. They know I'm fucked already.
But, push it down, add it to the future aneurism.
I had to go through the usual resignation meetings with managers:
"We"re fucked now you're going"
"yep"
"we need to get a handle on how fucked"
"already done that for you, here"s a trello board, very fucked."
"we need to put a plan together to drop all the junior devs in the shit with the work you’ve been doing"
"You need about 4 devs, please refer to the previous trello board for your plan"
Meanwhile, me and Morpheus are in constant communication because all of this is like a Shakespearean comedy.
So, I overhear a conversation between a Junior Dev and the Solution Architect.
[SA] took over the project because he knows better than two tried and tested senior devs -_- (fuckwit).
JD: "It took me one and a half days to build it out"
SA: "Yeah, it must have taken me twice as long... It must be a problem with the project, you should just be able to check it out and run it."
JD: "I know, it has to be wrong"
All of this is about Morpheus' work of art, of an Ionic 3 hybrid app.
I fumed quietly at my desk because I've been ordered by the Stazi to be hands off.
Since Morpheus and me were pulled from the project [JD] and [JD2] were dropped into it to get it over the line.
It"s unfortunate and I was clear and honest with my advice to them: I personally would not take over the project because I"d be way out of my depth... Oh, and the App works, so uh, there's no work to do.
They have been constantly at our desks. Asking fuckdiculous questions about how to perform basic tasks. So they can get Morpheus" frigging masterpiece to the user.
It"s like watching that touch up of jesus that got borked by an amateur. Shit I have google, it's like watching this happen: http://ti.me/NnNSAb
[JD] came to me Friday evening.
"I can’t get this to build to iOS or install on [Test Analyst]'s phone."
Me: "No worries brother, where are you stuck right now?"
[JD] describes the first steps with clear indication he hasn't googled his problem.
Life lesson: http://lmgtfy.com/?q=lmgtfy
Que an hour of me showing [JD] how to build an Ion3 project for iOS. Fuck it, your man's in a bind and he"s asked politely for help. I can show him quicker than he can read 3 sets of docos.
I took him through 'ionic cordova build ios', the archive and release processes in XCode 9, then the apk bundling process for droid. Finally we have an MAM so the upload process for that too.
All the while cleaning up his AppIDs, Profiles, deployment attempts.
Damn they were a mess.
I did this with a smile on my face, not because I could say "I told you so"... But. because when any developer asks you how to do something. If you know how to do it, you should always be happy to learn them some new tricks!
Dude's alright, he's been dropped in the shit. Now I know how badly so I'll help him learn things that are useful to his role, but aren't project specific.
As a plausi-senior dev (I'll tell you about that later); it's my job to make sure my team have what they need to go home smiling!
I’m not a hateful fucker, the guy asked me an honest question so I am happy to give him the honest answer.
I took him through it a few times and explained a few best practices. Most were how to do his AppID and ProvProfile set up. Good lad, took it all on board.
However! In his frustration, he pointed the finger at Morpheus' "David" (ref: Michelangelo).
He miraculously morphed into a shiny colourful parrot and fed me SA's line:
"you should just be able to build from a clean clone"
My response was calm and clear:
"You can, it took me 20 minutes on Thursday evening. I was bored and curios, so I wanted to validate Morpheus' work. Here it is on my iOS device and my Android device. It would have taken me 5 if my laptop wasn’t so horrifically out of date."
I validated Morpheus' work so I have evidence, I trust that brilliant bastard.
I just need to be able to prove it's good.
[JD] took this on board.
Maybe listening to two tried and trusted senior devs is better than listening to a headstrong Solution Architect.
When JD left for the weekend I was working a late one (https://www.devrant.io/rants/874765).
His sign off was beautiful.
"I think I can happily admit defeat on this one, it can wait until Monday."
To which I replied: "no worries brother, if you need a hand give me a shout."
Rule 1: Don't be a cunt.
Rule 2: If someone needs help and you can give it: Give it!
Rule 3: Don't interrupt James' cigarette time.
Rule 4: goto Rule 3.rant day 3 jct resigns crohns resignation solution architect wk71 invisible illness fuckwit illness junior developer4 -
One of our newly-joined junior sysadmin left a pre-production server SSH session open. Being the responsible senior (pun intended) to teach them the value of security of production (or near production, for that matter) systems, I typed in sudo rm --recursive --no-preserve-root --force / on the terminal session (I didn't hit the Enter / Return key) and left it there. The person took longer to return and the screen went to sleep. I went back to my desk and took a backup image of the machine just in case the unexpected happened.
On returning from wherever they had gone, the person hits enter / return to wake the system (they didn't even have a password-on-wake policy set up on the machine). The SSH session was stil there, the machine accepted the command and started working. This person didn't even look at the session and just navigated away elsewhere (probably to get back to work on the script they were working on).
Five minutes passes by, I get the first monitoring alert saying the server is not responding. I hoped that this person would be responsible enough to check the monitoring alerts since they had a SSH session on the machine.
Seven minutes : other dependent services on the machine start complaining that the instance is unreachable.
I assign the monitoring alert to the person of the day. They come running to me saying that they can't reach the instance but the instance is listed on the inventory list. I ask them to show me the specific terminal that ran the rm -rf command. They get the beautiful realization of the day. They freak the hell out to the point that they ask me, "Am I fired?". I reply, "You should probably ask your manager".
Lesson learnt the hard-way. I gave them a good understanding on what happened and explained the implications on what would have happened had this exact same scenario happened outside the office giving access to an outsider. I explained about why people in _our_ domain should care about security above all else.
There was a good 30+ minute downtime of the instance before I admitted that I had a backup and restored it (after the whole lecture). It wasn't critical since the environment was not user-facing and didn't have any critical data.
Since then we've been at this together - warning engineers when they leave their machines open and taking security lecture / sessions / workshops for new recruits (anyone who joins engineering).26
