I worked for one of the largest load balancer/application delivery controller company for a grinder of a boss on a security team there.

My job was to hack shit, find vulnerabilities and write automation for attacks that our systems could prevent. There were 4 pretty big code bases (>100k lines) that were used for the same thing. There was no inter-team effort, everyone wanted to roll their own rather than working together because the bosses had huge egos and wanted their name in the brick.

I was tasked with building a new framework!

So yeah, five different automation frameworks, one for automating attacks against devices and servers, one for smoke testing (pound the box with traffic) etc. Mind you all of this shit could be done with a single framework because many of the tasks were similar. So I created a way to build test profiles from our test plans and consolidated the code bases. I learned a shitload about dealing with existing code during this effort. It was awesome in that respect, I learned how to deal with poor management decisions - execute better than they ever did.

Long story short I refused to scrap everyone elses hard work even though my boss told me to "build it from scratch and use it for the security team only". The reason being is because starting from scratch would have incurred more technical debt than the consolidation effort took. Mind you every other department in eng could have used said framework. Anyhow, under the radar I went about consolidating the other four frameworks and I gave my boss the timeline without his knowledge of what I was doing.

Three months later every eng department was using this new framework using the tools that they were used to using for deployment and verification, just a new ui and a lot of code that was cleaned up and everyone was pretty happy with it to be honest. Everyone that actually used it that is.

My boss, who never used any of the frameworks, got pissed off that I did not build a sec. team only framework and asked me to build a version only for the security team for "security reasons". This was the proverbial straw that broke the camels back. This fucking moron wanted to satiate his own ego at the expense of my peers time, health and the company. I don't really care too much for the company but everyone I worked with was very competent and I did not want to just throw the baby out with the bathwater. That would be stupid.

Long story short, I was interviewing at places at the time and got an offer that very day so I decided to take the offer.

Moral of the story:

Don't have your engineers build 4 different automation frameworks and then ask an engineer to "rebuild" a custom version for a bullshit reason. Don't build shit from scratch unless you are learning/experimenting and at large companies, they rarely reward experimentation.

I get that this might not exactly be technical debt but 4 frameworks and the effort I had to put in to the consolidation was brutal at times. Improperly used technology, poorly deployed interface supporting services and solutions for transient failures of tests being "just reboot the test box" was too much bullshit for me.

God I fucking hated that job. I will never work for a large, well established company again if I can avoid it. My startup might be getting picked up soon by a conglomerate and I have 6 months left on my vest. If we end up at the conglomerate I am going to quit and take a few years off working.

That is my experience.