At this point I've been in two full-time programming positions. I've learned how a handful of other firms operate through infosec work on the side, and testimonies from friends. My eyes are open.
When you're looking to work in IT, there are some things you need to be aware of.
I'm sure you've heard bad things about legacy code. It's often used as the butt of a joke by technical writers.
In the back of your mind, you probably think "I'm supposed to laugh at these jokes, however in reality things can't be that bad, right?"
Wrong. Things are that bad.
Legacy code = when our technology was first starting to get outdated and old (or practices were deprecating), instead of doing an overhaul or updates then, we ignored the warning signs and kept building onto it and now everything's a real shit show and you have to put up with it.
You want to go:
- "Uhhhhh Internet Explorer shouldn't be the only supported browser."
- "Tables shouldn't be used to style a page."
- "MongoDB is the least appropriate database for financial transactions."
- "Why can I perfectly replicate the session by copying unencrypted cookie data?"
- "Netscape doesn't exist any more."
- "There is presently zero browser support for this."
- "Money shouldn't be a float."
- And so on.
What does the rational-thinking person do when their house is falling apart? They fix the house. They wouldn't dream of putting on an addition. The house itself is falling apart, after all.
Legacy code is a house that's falling apart. And you'll be asked to build additions onto it. Watch out for rusty tetanus nails and falling beams.
One of my close friends had a technical support internship this last summer. He would tell stories about how he sat at work all day, doing nothing. Like one call would come in a day.
I thought, "Surely he must be exaggerating."
Then I started my first programming position. For the last half of my first day, after a tour and lunch, I sat there doing nothing.
"This must just be a first day thing."
Then for the next couple days I did nothing. My supervisor came over at one point, and I go, "Is there something I'm supposed to be doing?"
I got some documentation to read and installs to do. That took me two days.
In the task / performance management system, the due date was a month out.
I would look at everyone else, at their monitors. They were talking about vacations or cookie recipes off Facebook, going on cruise websites, using their phones to go on Facebook, watching YouTube videos, whining, staring off into space.
For every 8 hour work day, I estimate about 1 hour of real work occurred. I got assigned like 2 hours of work a week because I was really new.
It got to the point where I would just stare at the clock. Every couple minutes that went by, I'd try to focus on the fact I was a dollar richer.
I couldn't stand doing nothing at work, this horrible music playlist going all day. Everyone sitting there, babbling or anesthetized.
After a month I hopped to my current job for an 85% shorter commute and 35% pay bump.
Related post: Stagnant = Obsolete
Assignments. Mental stimulation. A purpose. These are what I need at work.
At the end of the day, I want to feel like I've achieved something for the firm.
I don't care what I'm being paid. The true enemy of happiness is boredom.
You know in those vampire movies where vampires took over the world, and now the remaining humans are in pods so their blood can be harvested? That's what "work" / those jobs can be like.
Who are the pimps of corporate IT? IBM, Citrix, Oracle to name a few.
And, like legacy code, a lot of positions will have you being their bitch. The whole programming department will be their bitch because they seduced management years ago.
IBM goes, "Hey we'll give you this stuff for free."
Then two years later they come back and go, "Yeah you need to pay for that now."
In that two years, because of all these tricks like IBM-proprietary XML mapping, your firm is now heavily dependent on IBM.
Which brings us to our next point.
If you have a keen eye, you might notice millions of dollars being wasted. If you have open eyes. If you have one half-opened eye.
A lot of this money will go to the pimps I just discussed.
Then more of it has to do with employees. Obviously, when you're doing nothing, you're not making the firm any money.
They pay people $30/hour, you see them delivering maybe $3/hour of value.
How does that math make sense? It doesn't.
Your corporate overlords, though, have a lot of money to play with. A lot to burn.
Instead of looking at the efficiency of current employees, they think things will progress more rapidly by bringing on new hires. Tolerating, even grooming, the same behavior as old employees.
For example, say a rational person is in charge of software. Every day there's a production build of this one program, and every day it gets pushed to Big Pimp servers.
Big Pimp Inc. is charging some queer amount for every push. Every day Big Pimp is getting paid.
At one point, somebody was like, "Hey there's this open-source alternative we could run the program on. We wouldn't have to pay Big Pimp hundreds of thousands of dollars a year."
Now, Big Pimp made you write the software in such a way that it's heavily tied to their servers. But two enterprising employees out of the hundred-person department managed to get the software working on this open-source alternative.
The rational manager would go, "That's fantastic, Employee-That-Works 1 and Employee-That-Works 2. Everyone else in programming is now going to stop what they're doing, and you two are going to lead everyone else to move the entire codebase to this open-source alternative. Nobody works on anything else until we are no longer dependent on Big Pimp."
Because it would save the company money every day.
But that's not what happens. It's easier to keep spending the money.
The real manager goes, "That's cool. It looks like that was really hard to do, so type up half-assed instructions on how you did it. I'll tell everyone to install this open-source thing on their computer, and if they get time they can try to get the software working on there too. But they probably won't succeed. Not a big deal, we'll keep paying Big Pimp. The money doesn't come out of my pockets. Let's bring on more people."
The last place I want to have a discussion with anyone? Bathroom.
There are certain people at your work who, instead of just making eye contact and nodding to you in the bathroom, will go "HEYYY. HOW'S IT GOING TODAY?"
And you're not friends, or buddies.
You've never seen them. Unless they pulled this trickery before, burning them into your memory.
Just watch out for those people.
End note (silver linings?)
There are jobs where you don't have to put up with all of this, at the cost of your sanity.
You find them with (a) small, lean-and-mean operations or (b) big corporate players who have their act together. Currently I'm grateful to be riding in the second boat.
So how do you figure this stuff out, before it's too late?
For big corporate players, you can use Glassdoor or similar sites.
For small operations, they'll hopefully be more open to having you come on for a trial period. Even if it's just working there a week.
By small, I mean like 30 or less people. The experience I'm mostly ranting about was with a 1,000 person company.
By nature, when you have 30 or less people, there isn't really money to waste yet. People are more apt to have laser-focused stuff to do.
Anyway. What I'm trying to say is it's a jungle out there. Good luck to the job hunters and job jumpers.