4 ms·
My WTF entry: I worked at a company whose main website was written in J2EE. This was here in the Bay Area, right in downtown SF. When I joined, I soon learned
by paloaltokid 10y ago
My WTF entry: I worked at a company whose main website was written in J2EE. This was here in the Bay Area, right in downtown SF.
When I joined, I soon learned about "Stephen". Stephen had already left the company but he was still very much a presence. Most of his comments contained expletives, even for something simple like changing a log level: "tell Tomcat to shut the fuck up!"
Throughout the wiki, there were references to technical "discussions" around coding standards that often had statements like "Stephen doesn't like this!", which was short for "I don't want to get yelled at so we'll do what Stephen says". There were a lot of things Stephen didn't like. He didn't like Java. He didn't like private methods. He seemed on the fence about getters and setters.
But he loved Python. Boy howdy did he love Python.
Stephen loved Python so much that much of the Java codebase was uneditable. Yes, uneditable. You see, in order to write the Java code that'd be actually, you know, run in production, you didn't simply open IDEA and write Java. You wrote Python code that emitted Java. Hibernate configs, classes, the lot. Development time wasn't the fastest.
Something else Stephen hated was MySQL. He hated it a lot. Postgres was way better in his opinion. Stephen hated MySQL so much that he stripped it out of all the Puppet files one day because he didn't think the company should be running it. Nevermind that he was editing the production files for another team, so the next time Puppet ran, the predictable outcome occurred. I believe that was one of the few times his actions had any direct consequences for him.
Beyond Stephen and his hatred of all things non-Python and MySQL, the deployment process was a true thing of horrifying beauty.
You see, one didn't simply just drop a WAR file into Tomcat and restart the server process. That'd be much too simple. When you deployed, you deployed everything. And when I say everything, I mean everything.
Apache? Compiled from source and re-installed. Java? Compiled from source and re-installed. Name a dependency other than Postgres and that ish was compiled from source and re-installed. Deploying any code change was a minimum 45-minute process. Heaven help you if a bug was found.
(Oh yeah, and of course Stephen's domain user couldn't be removed from Perforce or any of the build systems because all the scripts ran as his user. Nobody knew what might happen if his user was removed. To this day the company still exists after an acquisition and I'd bet good money that Stephen's user is still out there consuming CPU cycles.)
My takeaway from this experience is that this kind of environment is pretty common, and it's because of some basic psychology in people. Engineers don't want to look stupid and their social skills are often not developed. So when you meet someone with a strong personality who uses shouting to establish technical superiority, they can get a long way.