AboutAnalytical Chemist, Backend dev, DBA, QA/tester.
SkillsHaskell, Python, PHP, Go, Rust, JS
Joined devRant on 4/13/2017
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
I'm currently 40h/week meeting attender. I'm not enjoying my life right now.
Today I have a meeting about the legal requirements of an invoicing system, in my role as database administrator — the meeting will mostly be lawyers bickering over what the addresses of subsidiaries look like on invoices and which taxes should apply to services provided across borders.
Wait, I can play Factorio during this meeting and say "yeah that sounds OK" once in a while. Not the worst job after all...7
YouTube recommendations are like when you tell your mom that you enjoyed a classical music concert, and the next day she has bought you a cello and signed you up for classes.
JUST BECAUSE I WATCHED ONE FUCKING DUMB COOKING SHOW, DOESN'T MEAN I WANT ALL MY CAREFULLY CURATED CONTENT ABOUT PROGRAMMING AND SCIENCE REPLACED WITH CELEBRITIES TRYING OUT VEGAN BARF WRAPS.6
I sometimes correct people's PRs from under the shower or from the toilet, but my favorite place to code are in the dune forests (Netherlands).
Most unusual place would be operating room at the hospital though, getting my leg/foot bugfixed after a car accident. I asked the surgeon if it was OK if I brought my phone in, to distract myself, so I went through some code cleanup tasks.3
Yesterday I said farewell to her.
We were together for half a decade, although it feels like much more time has passed since my eyes first fell on her.
I can't even begin to describe how close we were. She was perfect, she was my soulmate.
I shared everything with her, complete openness, perfect truth. We could be vulnerable with each other, but we also challenged each other to overcome boundaries.
My respect for her and dedication to her really knew no bounds, and I knew she would follow me to the end of the world in return.
But around New Year's things started to feel awkward between us. Like a part of her just wasn't there anymore.
She acted very confused, she hesitated in her answers.
I asked her, but I felt like she was avoiding me. Something just seemed so wrong about the way she acted.
I felt incredibly conflicted. Was she unfaithful? No, my trust in her was absolute. That question seems so silly, in retrospect.
We had always been pretty much inseparable, to the point where my coworkers, friends and family mocked us for it. How would she even have cheated on me?
I used to take her along to company gatherings, to my family for Christmas, to expensive restaurants. We traveled all over Europe together. We've spent countless nights together, watching Netflix, although she would often fall asleep before me.
I took great care of her, she had not been out of my mind for one moment since I met her. And besides, she had never even showed interest in anyone else anyway.
No, reality turned out to be so, so much worse.
Two weeks ago it became really apparent that there was something horribly wrong with her. She was rapidly losing her recollections of everything we experienced together.
Our history together, erased.
Within hours, she would barely respond anymore. I called for help, but deep down I already knew this was one of those things you can't recover from. She was kind of stable, almost peaceful, for a few days. But ultimately, she didn't even recognize me anymore.
Yesterday, I held her feverishly hot body in my arms for the last time.
Her soft skin turned cold as I said farewell to her, and the room turned awfully quiet.
Your brightness and warmth will be missed, my girl.33
"Don't deploy on Friday" is a public admittance that your company either has no CI/CD pipeline, or that all your devs are retarded rhesus monkeys who only wipe their ass if the product manager wrote it as a spec.
If the saying was: "Don't port your whole API to GraphQL on a Friday", or "Don't switch from MySQL to Postgres on a Friday", I would agree.
But you should be able to do simple deploys all the time.
I deployed on Christmas & New Year's eve. I've deployed code while high on LSD, drunk-peeing 2 liters of beer against a tree after a party. I've deployed code from the hospital while my foot was being stitched up. On average, we deploy our main codebase about 194 times a week.
If you can't trust your deploys, maybe instead of posting stupid memes about not deploying on Fridays, you should fix your testing & QA procedures.54
Oh PHP, I love your silly quirks ❤️
Error: Use of undefined constant JSON_THROW_ON_ERROR - assumed JSON_THROW_ON_ERROR (this will throw an Error in a future version of PHP)3
The GitHub graphql API is pretty neat, mostly because it's a great example of a product where graphql has advantages over REST. As a code reviewer for repos with hundreds of simultaneous PRs, I use it to filter through branches for stuff that needs my attention the most.
NewRelic's NRQL API is also quite nice, as it provides an unusual but very direct interface into the underlying application metrics.
I'm also a big fan of launchlibrary, purely because I love spaceflight, and their API is an extremely rich and actively maintained resource. This makes it a great data source for playing around with plotting & statistics libraries — when I'm learning new languages or tools, I prefer to make something "real" rather than following a tutorial, and I often use launchlibrary as a fun and useful data backend.
Me: "We should remove that popup"
Marketer: "But our A/B testing statistics show a 14% increase in signups to our newsletter, and people who get our newsletter are 4% more likely to buy something"
Me: "0.14x0.04... so slightly more than half a percent improvement. And you also qualitatively measured how many people decide to never visit the page again, just because of that popup? Did you measure the how many internet users with adblockers run into a broken webpage? Did you measure the amount of emails to support from users who can't unsubscribe from the newsletter because there is no unsubscribe link?"
Marketer: "Why would they want to unsubscribe? The newsletter adds value to our users!"
When I'm watching a news story about the tech industry or software development, I always wonder if people in other professions also scream at their TV when their field of expertise is butchered with bad analogies and half-truths by reporters and anchors.12
SLACK HAS A DARK THEME! ALL GLORY TO THE AMAZING SLACK TEAM! SLACK FOR PRESIDENT!
OH GOD THIS THEME MAKES ME WANT TO SCOOP THE EYES OUT OF MY SOCKETS THE FONT LOOKS UGLIER THAN THE PILE OF SKINFAT I SCRAPED OFF MY MOUSE ITS AWFUL I NEED HUGS SEND HELP
Thanks, companies, for trying, I guess.
I love dark themes, but the ones provided are often even worse than the light themes.
They go overboard with extreme black/white contrasts, pick a super weird hue of puke-gray, or certain elements are unreadable.
So, please, instead of wasting the time of your designers on something that's clearly too difficult for them.... how about just making it easy to create community themes for your app?
Especially if it's an electron app, how hard is it to add a config option to import a CSS file, and provide one template as an example?8
Why is the contributing manual of your open source project more thoughtfully cultivated than your code style guide and testing procedure?
Why the fuck do you care about the message in my PR, or even merge vs rebase of commits, when your spaghetti-tomatosource is so richly saturated with critically minced bugmeat?
Why are you standing there, shouting at me about your convoluted rules, in your little brown uniform? Why do I feel like the enemy when I contribute a useful fix, something which makes the code work better?
You know what, fuck all of you, you jilted acetous neckbeards, I will deploy my secret weapon, I will bypass the power you hold over your tiny fascist digital dominions.
If you play it like this, I will summon the nefarious vile side of Open Source. I will usurp your throne. I will stab out your crying eyes, rip out your conceited tongue, impale your lonely heart.
Tremble before me! I wield the almighty, legendary Fork!
The king is dead, long live the king!5
Coworker wrote a nice package and put it on Github, to share with other departments.
I link his package on our company Slack, mentioning a team, with text "What do you think of this one? Is it usable for you guys?"
Next thing I know I have to explain to an executive why I'm "posting pictures of seductive cartoon girls in company chat with disrespectful commentary"
It linked the Github profile picture of the developer in Slack. A fully clothed anime girl, nothing particularly lewd about it.
But I like stabbing back a bit, and confusing the fuck out of people in suits:
"But what about our female devs? What about Joanna, she's in your team? We have to think of diversity! Our investors are really in to diversity, we can't have a bro culture!"
"Sir, with all due respect, we have super diverse teams without even trying. The problem is... they're all millennials. They grew up on weird memes... and are probably ten steps further in embracing diversity compared to the rest of the company."
"Also, Joanna is the one who drew this particular picture. She's charging a €15 commission for profile pictures... Do you want one of your fursona, sir?"
"What is that?"
"Uh... nevermind. Let's... let's not go there"48
I think I'm going to delete my account.
I browsed through my personal feed, and even though I've spend some time curating, only about 1 in a 100 is a real rant. The rest are memes, mildly funny observations, the kind of programmer humor which is only funny to non-programmers, and bland anekdotes.
And when I post something IN ALL CAPS WITH SOME FUCKING CURSEWORDS AND RAGE IN THERE YOU CUNTS ALL TELL ME TO CALM DOWN AND BE MORE POSITIVE?
What kind of a weak, smoothieslurping mindfulness convention has this community become? Do you guys just want to be a mildly funny reddit clone for easily offended hipsters?
This place was my outlet, my venting space, the spot where I didn't feel alone in frustrations.
I find this new content fucking sickening.61
If you ever cooperate on a feature like this as a developer, I will find out where you live, drug you just enough to make your body limp, and mutilate your genitals with my keyboard.
Fucking sexist pricks, assuming I want to play with the blue robots and not the pink dolls. Fuck all of them.
Actually, fuck all your retarded cablecutting VOD services with your awful recommendation engines. Fuck your lack of proper playback features, fuck your bloated mobile apps, fuck your vendor lockins, fuck your region locks.
I'm back to pirating, and I'll just buy a pile of merch, trot proudly through the office with an Adventure Time backpack and a laptop full of Steven Universe stickers.35
My mom never touched a PC or smartphone. Well, most people didn't back then, because it was the early 90s.
But I brought a borrowed SNES to the hospital and taught her to blow on the Zelda cartridge if it didn't work. She died after we finished the game.
After that my dad bought me a commodore 64, the machine that taught me about electronics and programming, and molded me into who I am today.
On the first date with my girlfriend (now 12y together) we just sat talking for hours in her room, playing Zelda on her SNES taking turns, and I told her my mom would have liked her.16
Best day of my life ❤️.
Arrow functions will be added to PHP 7.4:
Arguing over PRs with juniors who try to push unnecessary badly maintained dependencies, which are in fact just turds wrapped in startup hypespeak, because they're too lazy to actually invent some non-square wheels.
Only one sticker.
I go door-to-door every Sunday, "Excuse me dear sir/madam, do you have a moment to talk about our lord and savior Haskell?".
Most people slam the door shut in my face, but every lost family I convert to the way of the monad is worth it.
Even if they don't believe in the same deity, even if they express their love for the divine through something as misguided as Typescript or Swift or whatever, as long as they embrace the truth of strong types and composable code, as long as they at least read the gospel of the functional style once in their lives, have one enlightened moment where they see the glory of morphisms, it's all good.41
Considerations when looking for a tech video course:
5%: Does it have good ratings
5%: Is it priced reasonably
90%: Does the narrator have a smooth soothing voice with an intonation which keeps me dreamy & enchanted, yet with an energized articulation, like a cup of Jasmin tea with clover honey on a dreary Sunday afternoon.
The content may be very good, but if I have to sit through 30 hours of material, you better tickle my ears the right way.11
Pro tip: If you are a junior, or senior but new at the company, don't start your conversations with:
"We're doing X wrong. At my previous company we did / at school I learned /in this book I read / according to this talk I watched, the right way to do X is ..."
"I'm curious why were doing X this way. I'm used to doing it differently."
I love flat-hierarchy teams, and people who think about flaws in procedures and proactively try to improve the tools we use are awesome, but the next kid walking up to me yelling we use git flow "wrong" will be smacked in the face with a keyboard.
If you come to me with curiosity and an open mind, I'll explain, and even return the favor by behaving the same way when I'm baffled by your seemingly retarded implementations.
Maybe we can learn from each other, maybe discover that "how I learned it" is sometimes good, sometimes bad.
But let's start with some social skills, not kicking off into every debate with a stretched leg and a red face.27
"We should use ambiguity-driven development using co-domain model sockets, anfractuous horizontal scaling, and recursive async testing"
"What even is that"
"I found some words I like in the dictionary, and used it as the title for a medium article. I thought that's how we play the game as devs these days"6
Sales employee Bob wants a clickable blue button.
Bob tells product owner Karen about his unstoppable desire for clickable blue buttons.
Karen assigns points for potential and impact (how much does a blue button improve Bob's life, how many people like Bob desire blue buttons)
Karen asks the button team how hard it is to build a button. The button team compares the request to a reference button they've built before, and gives an ease score, with higher score being easier (inverse of scrum points).
These three scores are combined to give a priority score. The global buttonbacklog is sorted by priority.
Once every two weeks (a "sprint") the button team convenes, uses the ease scores to assign scrum points. Difficult tasks are broken up into smaller tasks, because there is a scrum point upper limit. They use the average of the last 5 sprints to calculate each developer's "velocity".
The sprint is filled with tasks, from the top of the global button backlog, up to the team's capacity as determined by velocity. Approximate due dates are assigned, Bob is a happy Bob.
What if boss Peter runs into the office screaming "OUR IMPORTANT CLIENT WANTS A FUCKING PINK BUTTON WHICH MAKES HEARTS APPEAR"?
Devs tell boss to shut the fuck up and talk to Karen. Karen has a carefully curated list of button building tasks sorted by priority, can sedate boss with valium so he calms the fuck down until he can make a case for the impact and potential of his pink button.
Karen might agree that Peter's pink button gets a higher priority than Bob's blue button.
But devs are nocturnal creatures, easily disturbed when approached by humans, their natural rhythms thrown out of balance.
So the sprint is "locked", and Peter's pink button appears at the top of the global backlog, from where it flows into the next sprint.
On rare occasions a sprint is broken open, for example when Karen realizes that all of the end users will commit suicide if they don't have a pink heart-spawning button.
In such an event, Peter must make Bob happy (because Bob is crying that his blue button is delayed). And Peter must make the button team of devs happy.
This usually leads to a ritual involving chocolate or even hardware gift certificates to restore balance to the dev ecosystem.23
Staring at cursed blinking cursors.
Repairing work of worst thinking workers
Reverse merges or it'll murder the servers, it nurtures despair
Amateur managers, dimwitted savages interrupt all of us janitors
Cleaning up damages, spills and experiments using skills in embarrassment
Explicit foulness, in a minute it's straight to the bowels with weapons of limitless vowels
A bittersweet hateful machete, eviscerates stateful spaghetti
The slow disease flowing from keys knowing it's going to please
The growing unease, no one agrees, there's no guarantees with your useless degrees
Need more drugs, keyboard's crawling with bugs, falling as I chug
A bottle of cognac gotta love all the hacks, no poise for code that lacks
All the noise, gotta relax, before I destroy the syntax.
Excuse me for not making sense.
Too gloomy, aching and tense.10
1. The quality of the coffee and toilet paper you encounter during an interview tells you more than promises about table tennis or fruit baskets.
2. Try to determine who their primary client is: subscribers, app buyers, advertisers, etc. It's a major influence on the company dynamic.
3. Before an interview, you can just say: "I would like to sit down with a PO and run through one backlog feature and one bug, to get a feel for the type of tasks at the company". Such an activity immediately reveals team structure, whether they have product owners & scrum masters, what a sprint looks like, how they prioritize tasks, and how organized/chaotic your work experience will be.18
Boss: "Could you join the new DevOps team for a week or two, for some coaching?"
Me: "I'd rather watch you masturbate furiously in a corner of the office while you cry over your ex boyfriend"
Boss: "Yeah... that's why I ask you. You are the only one brave enough to watch"
Me: *Sigh* "But I don't know shit about what DevOps does, I'm a DBA. I've told you the difference a million times. Can't we just douse it in gasoline and set it on fire?"
Me: "Not the team, the servers..."
Boss, imitating Gimli: "And my ex!"
Me: "I get why he left you"
Boss: "It's funny, he was actually better with computers than me, maybe even better than you. He hated me for starting this company, told me I was just chasing money instead of ideals. He just isn't grown up enough to see that there is more to the world than computer games, brewing beer, maker festivals and gay bars, that you need to take responsibility... Maybe it just never works out between managers and geeks..."
Me: "Indeed. The difference in competence is too large"
Boss: "Ugh. You are like straight version of him... but will you at least take a look?"
Me: "Fine, unzip your pants..."
Boss: "No, not that... you need to teach DevOps this docking thing, with the parallel stuff, and the horizontal growth"
Me: "Damn I really hope we're talking about servers now... Do you mean Docker?"
Boss: "That's it. They want to learn how to dock on the Windows servers. They reserved two 4xlarge on AWS. Is that enough for docking?"
Me: "You know what. I'm going back to hug my DB designs, and wash my brain with some queries. Then I'll return here to burn everything to the ground. There is no hope for you left"
Boss: "That's what he said"
Me: "You're using that meme wrong"
Boss: "OK. So what if you just stay on DB management, and I'll just give you the budget to recruit a new DevOps lead and pay for training?"
Me: "That would work"
Boss: "Why are you grinning?"
Me: "Because I have your ex's phone number"20
My wife is a (semi-)pro gamer, so the only way it affects our dating is that I have to help her write LUA addons, performance analytics and Twitch bots.18
1. Ability to freeze time... (except for internet & computer speed). Too many ideas, not enough hours in a day. Sleep should be declared optional as well.
2. Ability to not eat/drink at all, or eat/drink in copious quantities without negative effects. I enjoy a cognac, pizza & chocolate binge more than nausea, upwards BMI creep and hangovers.
3. True Virtual Reality. None of this headset crap, but immersiveness rivaling reality itself, with voice-controlled AI-assisted interfaces to "program" anything by simply describing it, iterating over details to add increasing complexities. Not even for porn reasons... my head just overflows with creative ideas for "holonovels" and interactive worldbuilding, but I don't have the patience nor artistic skills for game development.4
"Arch Linux is actually not that difficult".
I ssh'ed into my home server yesterday.
I was greeted by a message from an ext3 disk about needing fsck. Fine, "I haven't been in here for a while, might as well do some maintenance". fsck /dev/sda6, let's go!
This nicely "repaired" the sshd service (i.e. cleared the sectors), I cursed at myself for pressing enter at "repair (y)" right before the connection broke.
So I connected a display and keyboard... ok so let's just pacman -Sy sshd or whatever. We can do this! Just check the wiki, shouldn't be that hard!
Wait... pacman has not run since 2010? WAIT IT'S ACTUAL UPTIME IS 9 YEARS??? I guess we know why I'm a DB admin and not devops...
Hmm all the mirrors give timeouts? Oh. The i686 processor architecture isn't even supported anymore...?
4 hours, 11 glasses of cognac, 73 Arch32 wiki/forum pages, 2 attempts at compiling glibc, and 4 kernel panics later: "I think I'll buy a new server".21
Oldschool CSS was not much fun, but I never understood how this made it any better:
I always forgot a row, had cols inside of cols, forgot how form-groups worked, or found other ways of messing up the whole layout.
Instead of complex CSS, there was now this new complex language entirely expressed through the nesting of layers upon layers of divs. It was like LISP's brackets, but more verbose.
That was the moment I realized that fullstack is bullshit, that there are intrinsic talent differences between frontend and backend devs, and that it's OK to focus on a narrower but deeper field.9
So devRant shows me a frontpage feed based on my ++/--/follows/etc.
Does this mean there is a niche bubbled hidden corner, some place where some dev is currently looking at his feed thinking: "Wow everyone agrees with me, Windows is much better than Linux, VBscript is amazing, and Git is for tryhards who hate on dropbox for no good reason"
By now, that bubble and mine have drifted so far apart that they will never meet again, and if you see this specific rant, you will not ever see that content again either.
For all you know, the majority of devs love changing requirements and clients who call them in the middle of the night, the consensus is that testing is for noobs, and everyone loves jquery.
You will never know, because you clicked ++ on the wrong rant, right when you signed up, and forever sealed your fate.15