AboutRAIIghtous knight of the high(er) order of Lambda.
SkillsC#, Python, C++
Joined devRant on 11/3/2016
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Every time someone compares Golang to Rust an angel falls, a unicorn dies and a Java developer writes another class.
Please stop doing that.8
I recently logged into my care provider's online services for the first time, to schedule a doctor's appointment.
The login form requested the usual: username and password - but also a birth date. Which their developers implemented with the default Android datepicker control.
Meaning I had to click 'back' 339 times to get to December 1989.
Name two production service, metrics and logging included, after a famous woman and an armored vehicle.
Dude, no. When those services go down in the middle of the night some poor soul on call duty will have to handle it without the faintest idea wtf is going on.1
As you grow older, both professinally as a dev and as a team player, you realise that a complete rewrite is rarely the better answer to the problem at hand.
With that being said, I'm rewriting the glorified-mass-of-infernal-human-feces-with-corn-bits-masquerading-as-mere-shit out of a production service right now. Wish me luck.2
I have a first date tonight, but production is smoldering and about to catch fire, and it was my doing. I get 5 people coming to my desk every minute asking when's it gonna be fixed. my supervisors think I'm enjoying this because It's delaying a feature. I'm not. I feel like crying, and it shows.3
I befriended a much-older dev who's notoriously known for cursing in source code comments.
His best comment was F.I.S.H., which is his cursing acronym for "fucking incredible shitty hack"6
Managing a small team - poorly.
I was in charge of testing a legacy calculations engine together with two scientists, for whom I set up a python and interop environment so they could test the engine easily.
The two were very excited at the thought of validating the calculations and in fact found many bugs.
I was very supportive, told them to fix the bugs and gave them a pet on the back.
All three of us were happy the legacy engine is shaping up, that's until my boss heard of it, and boy did he grill me hard for it.
Turns out our efforts were highly unappreciated by the client, whose only request was that we test the engine and report the bugs. Not to fix them. My goodwill cost the company a lot of money, since the client paid by the hour, and was now due a refund. Crap.
It took me a year to finally understood the moral of the story. Which is to always respect the client's wishes and convey maximum transparency to him.
I fucking hate printers. And printers hate me too.
I've been working as a software engineer for almost seven years now, and not a single day as a printer technician, which does not stop my mother from calling me each time a printer breaks down, as she did today. I hop over to her place, the printer is connected via usb into the ethernet socket, but she swears it's been printing an hour ago, and she hasn't moved a thing. - "weird", I think, "it must be connected wirelessly". Suddenly my sister, who's an Arts major, comes over, saying her printer broke down too - "cool so they're both wifi printers". I reset the router and my sister's printer springs back to life.
But my mom's printer, which is old and in bad shape (the printer, not my mom! assholes...), doesn't. It keeps on displaying a weird error message, and fails to receive any print job, whether wired or wireless.
I spent 15 seconds resetting the router, and 15 minutes troubleshooting mom's printer. Nothing worked.
I finally give up and leave the house.
Not a minute goes by and I receive a "your sister fixed the printer" text from mom.
I fucking hate printers.5
Long but hilarious:
I was deeply concerned about how we have a single, non-paginated call to a backend service, returning hundreds of entries, which has to be enriched with constant data fetched from our db for each entry. FOR EACH ENTRY. AND FOR EACH REQUEST.
I voiced my concerns to my PM, who called me a "rage prophet" for it.
As expected, the call took 20-something seconds to complete.
Ten minutes before the CEO comes over to have a look, another dev changes his loosely-related service, and the entire super-heavy, sprawling abyss of enrichment pipeline returns in sub-second timing!!!
CEO: guys, this is too fast. You have to slow it down a bit. It doesn't seem reliable that we're able to get all this data immediately.
PM: you see, rage prophet, it all worked out in the end
I recently interviewed for a job at company where I had 20 minutes to code a solution in python (whose standard library I know nothing about) to a question, which also included googling certain finance-related APIs, with not one but two technical interviewers looking over my shoulder THE ENTIRE TIME.9
Yesterday, I started a new job yesterday (yay!), and all of us new employees have gotten a laptop and a docking station.
Today, I was standing by the coffee machine, chatting with a fellow dev about different kinds of automation and efficiency techniques , when he suggested swapping-out coffee for caffeine pills, as a means to promote efficiency.
I immediately suggested we use the mouse as a docking station through which caffeine is pumped directly into the bloodstream, as a means to promote automation :)1
The lack of a meta-language in c# can be a pain in the ass, I have to jump through hoops to generate something like python's decorators, not to mention having to generate il to overcome some limitations of reflection when dealing with value types.
When you think you suck something it's NOT your fault - learn how it's done in a different language or framework, then come back to it.
When you think you mastered something, it IS your fault - learn how it's done in a different language or framework, then come back to it.
Randomly reviewing a coworker's c++ codebase revealed he was locking at the beginning of a critical section, but explicitly calling unlock for each and every error-handling branching within it. And yes, he forgot to unlock at several places.
That's just not RAIIght.