Jun 08 2020

Techie rant

Category: TechnicalIuliana @ 21:17

Do not take this entry seriously. Or do it, I don’t really care right about now.

When I was a young highschool student I saw being a programmer as a very rewarding job, not only financially, but personally as well. I dreamed of all the problems that computers could solve and I wanted to contribute with my brainpower to writing those solutions. So I became a programmer, then I discovered it was cooler to call yourself a software developer, then I figured software engineer describes my expertise better, then software architect and finally I am being called these days a full-stack engineer.

Only I don’t feel like anythign anymore.

I haven’t written code that made use or improved an algorithm in years. So I can’t call myself a programmer anymore.

I haven’t designed or wrote an application from scratch either, and my toy apps that I sometimes write for my technical books do not really count. So I don’t feel like software developer describes me either.

Software engineer? Ha! I barely understand how IPs work most times.

Software architect – I doubt I’ve ever been one.

And I can’t call myself a full-stack engineer, because I should know a lot of things, but every day I feel like I know less than what I need to do my job.

And I hate it. I hate that after six years of studies and more years working in this domain I am reduced to scavanging Google pages and hoping somebody else had the same problem as me and there is a solution that might work for me, prefferably one that I understand.

I love writing code, really, I do. But I’ve been reduced to mixing and matching existing APIs, and hoping that the documentation explains well enough what I need to send to get the correct response.

In IT we used to have a separation of responsabilities. Developers designed and wrote code, sysadmins designed and managed the infrastructure and testers tested the application. It was pretty straightfoward and the sysamin did not care if the code threw a NullPointerException and the developer did not care if the application server could not reach the database. They all solved the problems specific to their piece of evironment. It was pretty niched and it was working fine, well most of the time.

But then Amazon had the wonderful idea of selling VMs. Which is all good and nice until you have an issue and you can’t fucking ssh into it. And some smart ass sysadmin figured out it could automate creation and destruction of VMS. And then some smart developer figured out if a sysadmin could write code to control VMS, so could he. So this is how the DevOps were born.

And then some developer unable to write code that would work on any machine thought: what if I could deliver the environment where my code works? And so Docker entered the picture. And every software developer thought it wasn’t cool to have your code run on your machine, it was cooler to have it in a container. Nevermind that your application only prints a shitty “Hello World!” that you could just write on piece of paper and shove it where the sun don’t shine …

Oh wait where was I? Oh yes, containers. They sound cool and they are… until you cannot fucking ssh into them to figure out what went wrong. And then you discover that the minimal OS of that container image does not support something you need, so there you go, you have to build your own image now.

And then some smart guy thought, what if I made an app that manages containers, and automatically scales them and kills them and then creates some more? This is how Kubernetes was born. And now we all design our applications to be as stateless as possible to allow for containers to be killed and reborn and keep the application online. And now we all use YAML as a fucking programming language. And we store a lot more data than needed in our databases, which are provided as a service, only making Bezos and others richer.

And because configuring how an application should be deployed ends up creating a lot of similar configurations, Helm entered the picture, as a repository for all possible kubernetes deployment configuration templates. It’s like Maven, but for Kubernetes configurations.

And because most applications are so complex they require multiple containers and connecting them is a pain, Istio appeared. And because that is exactly all we needed, more fucking YAML. Because who needs Amazon virtual private clouds and subnets, when you can declare your own for containers … using fucking YAML.

And I’ve just scratched the surface. There are so many technologies that I feel I no longer understand any of them. There are over 150 services running on Amazon AWS that are supposed to help people build applications. But for fuck sake, if I ever have a business idea that requires a web page where people should read about it, I’d rather build an application that runs on a single VM, with with data stored in an RDS Aurora instance and I would keep my business to a decent size to avoid needing all that shit. Why? Because it is a never ending story and it is a long painful trip down the rabbit hole.

Seriosly now, if you ever start a business and you think you need a web page for it, when your business grows it will get more and more expensive to maintain it. And if you hire some consultant company to put it in the cloud, it will feel a lot like this joke:

A young man from Minnesota moves to Florida and goes to a big “everything under one roof” department store looking for a job.

The Manager says, “Do you have any sales experience?”

The kid says “Yeah. I was a salesman back in Minnesota .”

Well, the boss liked the kid and gave him the job.

“You start tomorrow. I’ll come down after we close and see how you did.”

His first day on the job was rough, but he got through it. After the store was locked up, the boss came down.

“How many customers bought something from you today?”

The kid says “One”.

The boss says “Just One? Our sales people average 20 to 30 customers a day. How much was the sale for?”

The kid says “$101, 237.65”.

The boss says “$101,237.65? What the heck did you sell?”

The kid says, “First, I sold him a small fish hook. Then I sold him a medium fishhook. Then I sold him a larger fishhook. Then I sold him a new fishing rod. Then I asked him where he was going fishing and he said down the coast, so I told him he was going to need a boat, so we went down to the boat department and I sold him a twin engine Chris Craft. Then he said he didn’t think his Honda Civic would pull it, so I took him down to the automotive department and sold him that 4×4 Expedition.

” The boss said, “A guy came in here to buy a fish hook and you sold him a BOAT and a TRUCK?”

The kid said “No, the guy came in here to buy tampons for his wife, and I said, ‘Dude, your weekend’s shot, you should go fishing.’ “

After these weeks trying to make sense of why somebody would need all this shit, I totally understand the stay-at-home moms. Because keeping a house and raising kids is hard, but I bet it is more rewarding than this. Because a kid will smile at you and love you even when you are not perfect. But a Kubernetes pod will never fucking work if you messed up a small piece of your configuration.

I really hope one day I will come back to this entry and laugh at myself. But now I feel overwhelmed and bitter and I will stop writing so I can get drunk and cry with my cat in my arms and maybe tomorrow I’ll have enough will power to continue.

Stay safe, stay happy!

2 Responses to “Techie rant”

  1. silviu says:

    I used to be a sysadmin. Now I’m a devops engineer. That means I no longer spin up servers and services using my own scripts but I use ansible, docker, terraform and cloud formation to ask – you guessed it – remote APIs to spin up stuff for me. With the added bonus of running code and containers somebody else designed and hopefully also secured and audited.

    And when I see the amount of foreign libraries the build server pulls I wonder how we have even the bit of security we have now.

    It’s fun for all of us :)

  2. Iuliana says:

    So, what your saying is that you feel my pain and I am not over-reacting?
    Thank you kind, sir! :)

Leave a Reply