Mar. 22nd, 2024
And I wrote to Sandra regarding this being unethical. And she answered "yes, I understand".
Almost simultaneously I'm getting a mail from John, asking me whether I would like to connect him to our management, and introduce their project (Golem). I wrote to him that our company works with banks, and they have their rules, and replacing one cloud with another is hardly possible, and besides, I just started, and nobody will listen to me.
Shit. At least I'm not going to LambdaConf this year. And never. And I don't believe it will ever happen again. (And yes, that was the last year for LambdaConf.)
Oh, and the same day Adam Frazer (the CTO of Ziverge) wrote on Twitter that he's leaving the company. So, there are just John and Sandra left. Well, what can we do. The sun also sets.
Anyway, after shopping and after a walk I got to work. The usual stuff. A couple of remaining Jira caess. One of them consisted of me having to install Rancher Docker on my machine and make all the tests that require docker pass locally. Ok, I made them work. Another case was to fix the logging, so that it wouldn't publish too much info from urls. OMG, Ids being passed around in URLs: Architects do their job.
I started investigating the code. Written by the Spanish, and also one special crazy guy, Kevin Meredith, the author of two books (I did not read them, but I'm sure they are full of crap). We have five common connections on LinkedIn. The code he wrote is like he was reading The Red Book ("Functional Programming in Scala", known in Madrid as El Libro Rojo) and trying every trick he found. My impression is: he doesn't actually know how to write code.
See, e.g. an URL contains, e.g., .../user/<userid>/org/<orgid>... To extract userid and orgid from this url, this Scientist uses a monad (which is a type parameter in his code). Inside this monad some fucking "Kleisli" is created (these Cats library people, when saying "Kleisli", mean a type of a function A => F[B], where F is vaguely supposed to be a monad. That's it, this Kleisli type has no other method. It's just a cargo cult, and they expect this straw plane to fly.
This is the garbage these guys were slapping together. They also have a Haskell habit of calling a function's parameters using just one letter. I'm really starting to doubt the IQ of Haskell fans. Just another cargo cult. They see the code written by SPJ or by Kmett, and try to reproduce it, with zero understanding.
But these Scala fans, they write everywhere things like "this is some message about object ${object.toString} and...".
It's obvious that they are not good with Scala. And it's like this just everywhere in that project.
So I shared my observations in the local Slack channel called "sig-scala" (the channel was founded by Ryan Delucchi, who also worked in this company, about three years ago). I think I already talked with Ryan about our funny company.
But, but! Keep in mind! The atmosphere here is really positive, and the people are not evil. And, as to diversity, we have two Chinese girls working here, so what else do you want?
Samantha wrote to me that it was a wrong idea for me to create a separate filter for headers, since one already exists. What, where/ Ha, it's in a project I never heard of. So I suggested her to discuss all this with Marc, who had conceived the idea. I don't care, I can do it either way.
As to that case with filtering headers, I asked Brad, what exactly are we filtering out? What keys? He took a look, and another, and says: oh, that's nothing it was done a while ago, you can close the case. Well, perfect! Mission accomplished!
But actually I still have to check, how all these updates I have made behaves on Staging. Ok, ok, will do it next week. And that was it, I went shopping.
Made myself a dinner, Greek salad (χωριάτικη σαλάτα), and got back to work.
Spent some time working, and then we had a long meeting dedicated to "WTF happened last week". It was an investigation regarding a flow of HTTP 500 that we had, between 7AM and 8AM, on Friday. One of the excuses was: but it was Friday, a payday, so it was like a bank run.
The first explanation was that it was the library connecting with Redis that started misbehaving. Well, how come it was not misbehaving on Thursday? No salary that day? But finally we blamed just Redis (could have blamed Democrats, too). Kind of yes; if the cloud were really elastic, as it claims, more nodes could have been added. Oh, whatever. It's an eternal topic. Been there seen that, in Google. And Redis, this one, too.
But the meeting was kind of serious. Someone I have no clue who he was, but he looked pretty important, had organized it all impressively; involved some philosophy, even mentioned Plato in the end.
I was sitting quietly till almost the very end, but eventually my patience got shorter, and I turned on the mike and asked whether this every happened before. And how is the library related if it's Redis that returns HTTP 500? Well, who's listening to me anyways. Engineers were busy getting into the running services with a debugger, investigating what threads and fibers were doing. Well... what are they doing? Waiting for a response from Redis, what else? And everybody seems to actually know that the problem is on the Redis side.
fsa
It's a kindergarten, of course. More, this is a known problem, really regularly happening on paydays. In the end a Big Beautiful Document was created, to show a Big Report to the upper management. You know the management, they don't know how computers work, and they need explanations.
Now it's over 10pm here in France, and I have to go to sleep now.