Joined devRant on 2/9/2017
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Arrays start at ZERO, Morty, ZERO. God, I (burp) thought you would have figured that out by now. Lo-lo-look, I know you were taught that arrays start at one, but that's just (burp) fucking stupid Morty and if I ever find whoever started that shit I will literally drill the correct answer into their brain. And I don't mean "literally" as a literally unliteral exaggeration Morty, I mean (buuuurp) I will literally use a brain-altering power drill and get it into their fucking head that (burp) arrays start. at. zero.4
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!!!33
Q: How to catch an Elephant in the Africa
MATHEMATICIANS: hunt elephants by going to Africa, throwing out everything that is not an elephant, and catching one of whatever is left.
EXPERIENCED MATHEMATICIANS: will attempt to prove the existence of at least one unique elephant before proceeding to step 1 as a subordinate exercise.
PROFESSORS OF MATHEMATICS: will prove the existence of at least one unique elephant and then leave the detection and capture of an actual elephant as an exercise for their graduate students.
COMPUTER SCIENTISTS: hunt elephants by exercising Algorithm A:
1. Go to Africa.
2. Start at the Cape of Good Hope.
3. Work northward in an orderly manner, traversing the continent alternately east and west.
4. During each traverse pass,
1. Catch each animal seen.
2. Compare each animal caught to a known elephant.
3. Stop when a match is detected.
EXPERIENCED COMPUTER PROGRAMMERS: modify Algorithm A by placing a known elephant in Cairo to ensure that the algorithm will terminate.
ASSEMBLY LANGUAGE PROGRAMMERS: prefer to execute Algorithm A on their hands and knees.
ENGINEERS: hunt elephants by going to Africa, catching gray animals at random, and stopping when any one of them weighs within plus or minus 15 percent of any previously observed elephant.
ECONOMISTS: don't hunt elephants, but they believe that if elephants are paid enough, they will hunt themselves.
STATISTICIANS: hunt the first animal they see N times and call it an elephant.
CONSULTANTS: don't hunt elephants, and many have never hunted anything at all, but they can be hired by the hour to advise those people who do.
OPERATIONS RESEARCH CONSULTANTS: can also measure the correlation of hat size and bullet color to the efficiency of elephant-hunting strategies, if someone else will only identify the elephants.
POLITICIANS: don't hunt elephants, but they will share the elephants you catch with the people who voted for them.
LAWYERS: don't hunt elephants, but they do follow the herds around arguing about who owns the droppings.
SOFTWARE LAWYERS: will claim that they own an entire herd based on the look and feel of one dropping.
VICE PRESIDENTS OF ENGINEERING, RESEARCH, AND DEVELOPMENT: try hard to hunt elephants, but their staffs are designed to prevent it. When the vice president does get to hunt elephants, the staff will try to ensure that all possible elephants are completely prehunted before the vice president sees them. If the vice president does happen to see a elephant, the staff will:
1. compliment the vice president's keen eyesight and
2. enlarge itself to prevent any recurrence.
SENIOR MANAGERS: set broad elephant-hunting policy based on the assumption that elephants are just like field mice, but with deeper voices.
QUALITY ASSURANCE INSPECTORS: ignore the elephants and look for mistakes the other hunters made when they were packing the jeep.
SALES PEOPLE: don't hunt elephants but spend their time selling elephants they haven't caught, for delivery two days before the season opens.
SOFTWARE SALES PEOPLE: ship the first thing they catch and write up an invoice for an elephant.
HARDWARE SALES PEOPLE: catch rabbits, paint them gray, and sell them as desktop elephants.9
Yesterday was Friday the 13th, so here is a list of my worst dev nightmares without order of significance:
1) Dealing with multithreaded code, especially on Android
3) Dependency hell, especially in Python
5) Memory Leaks
6) git conflicts
7) Crazy regexes and string manipulations
8) css. Fuck css.
9) not knowing jack shit about something but expected by others to
produce a result with it.
10) 3+ hours of debugging with no success