Do I really want to work at a tech company?

If you’ve been on Blind or any other work chat platform, then you’ve heard the acronym “FAANG.” It stands for Facebook Apple AmazoN Google and it represents what are supposed to be the top-tier companies in terms of talent and compensation. Of course there are many other companies that have stellar reputations and also pay well. Netflix is a great example of that. In general, though, FAANG is supposed to represent the top employers. The best workplace you could possibly enter as an engineer.

Is that true?

To say these companies are influential in the tech space is like saying black holes tend to move stuff around. When Amazon starts pushing for serverless application development, I can guarantee you that a couple months from now a developer at Mutual Of Generic Insurance is going to have his director leaning over his cube wall asking if they can do it, too.

Nowhere do we see this influence present itself more than in the hiring process. Entire books have been written which aid software engineers in their quest for employment, which centers around the real-life quiz show called the coding interview. In theory, it’s sound. These FAANG companies hire the best and brightest. If other companies want the same results, they need to follow suit.

On the Engineer’s side of things, the FAANG companies then become a type of gold standard in their various niche. Google is famous, for example, for beautiful campuses and providing chef-catered meals free of charge. I’ve been there. Everything you’ve heard is true and it really is that awesome. Amazon has a reputation for paying a little less attention to frills, but compensating well instead.

No matter where your inclinations lie, one of these companies is supposedly the place to be. Engineers will practice for months at at time to get their foot in the door of one of these companies. I know I did. Why wouldn’t they? Getting to work with the best and the brightest and being well paid for it, too. Who wouldn’t want that?

Well, maybe you. That’s who.

I’d like to give an honest account of my experience working at both enterprise development shops and working for technology companies. As a disclaimer, these are huge companies and experience can vary vastly depending on the products you work on, who you work for, etc. My goal is to provide people with a little more information before they commit to that new job.

Tech Company Claims

You’ll work with the most talented engineers in the world.

Tech companies have some very intelligent people working for them. After all, they did survive hours of interrogation about data structures, algorithms, and possibly system design. To be blunt, the downside of working with world-class talent are the world-class egos that come with it.

I wouldn’t describe the working environment of tech companies as collaborative, I’d characterize it as combative. Every decision you make will be scrutinized by your peers. Every code review will have at least one drawn out argument about something as trivial as variable names. Every meeting will be dominated by those with the loudest voices and the least concern for the opinion and expertise of others.

Some people thrive in these environments. They suit up and jump in. Others do not. Despite the popular opinion in tech companies that this is somehow beneficial to quality products, my experience has been otherwise. Regardless, ask yourself if you can realistically handle this on a day-to-day basis.

They are committed to their employees and will compensate you better than anyone else.

Commitment is something these companies use as a marketing statement as much any other employer does. Recruiters and managers like to talk about the passion their people have for their product, or how they’re like a family, but the fact is that if the share price is on the line your job will be on the chopping block faster than you can say “right sizing.” That’s universal to all large companies in the U.S.

Compensation is far better at tech companies than it is at enterprise development shops, in my experience. The health plans will be better. Your base pay will be higher. They will offer Restricted Stock Units and sign on bonuses. If we’re all being honest about why we do what we do (to make money) this is a prime motivator to come work for one.

You will be working in a true meritocracy.

To be fair, I think that some people truly believe this. I don’t. For one, I’m not sure how a meritocracy of ideas is possible in an objective sense. Someone, somewhere has to make the choice of what ideas are best. Even if it’s a group of someones the criteria is ultimately up to people who can be influenced by more than objective data.

Many tech companies want their decision making processes to be objective and data-driven. To an extent, this is true. Decision makers will actively look for this information when green lighting any new projects. However, the claim that the best ideas always win is simply not true.

As the old saying goes, the figures don’t lie, but liars always figure. Like most companies, tech companies often fall into the same traps of relying on how information is presented and who is presenting it. I have personally witnessed rational, fact-based ideas get sidelined simply because the engineer involved didn’t have the public speaking skills necessary to win over their audience.

That being said, tech companies at least try to be data driven and proactive, whereas enterprise dev shops tend to make decisions solely on budget concerns and networking.

You are going to be working a lot of hours.

Oddly, this isn’t always the case. From what I’ve seen it varies greatly by what product you support and the attitude of your management. If I had to average it all out though, I would say that it’s about even. No kidding.

What I’ve seen is that at enterprise dev shops you often spend unnecessary hours pulled into supporting applications that are running on an increasingly precarious stack of scripts and band-aid code because there’s no room in the budget to spend time on code quality refactors.

On the other hand, at tech companies you tend to have more stable products, but will regularly get pulled into death marches in order to meet deadlines for launching new features and products.

It’s a bit of “six of one, half a dozen of another” situation. While you’ll be spending time on different problems, you’re still going to working through your mother-in-law’s birthday party at some point.

It is incredibly cutthroat.

This is absolutely true. However, it doesn’t let some enterprise dev shops off the hook, either. Performance evaluation tools such as stacked ranking which are still in use by many large, non-tech companies basically guarantee that networking will be more important than your actual achievements.

Remember what I said early about world-class egos? This is part of the problem at tech companies. Debates get hot, everyone will believe they alone are better than their peers, and competition for promotions will get fierce. But you’re on a team right? It’s not like any your fellow engineers are going to take your manager out to lunch and slip in some comments about how concerned they are about your project, right?

Big promotions bring big money. When money is on the line, anything seems to go. An unfortunate corollary to this is that many tech companies will push engineers out if they don’t advance quickly enough. Taken together this leads to a fairly toxic environment.

Enterprise Development Claims

You will have a better work-life balance.

Completely untrue. As I wrote above, you’ll find that working as a developer for NotMe Shoes can demand just as much of your time as Google did. At which point you may really start missing the free catered lunches.

Which isn’t to say that there aren’t jobs which will require less of your time. There absolutely are, but they tend to be less “technical” which means you won’t be coding as much (or at all) and may find your skills in danger of atrophying.

Companies love to say they care about your work life balance and mental health. They don’t. They never have, and never will.

Work on stable projects instead of vapor-ware and POCs.

I’ve worked on new and exciting projects in my enterprise dev time that didn’t make it to see the light of day (budget, it always comes down to budget) so I can tell you that this happens there, too. But it does happen less often.

That being said, I’ve found this is true. If you’re a DBA for BigBoy Pharmaceuticals, that team probably isn’t getting decommissioned any time soon. I once had a leader who told me that if you’re after job security, your best bet is to work on a product that is core to the company needs. You’ll find a lot of these core teams at non-tech companies.

You won’t have to work as hard (no one says this directly).

Not true. It’s just a matter of what you spend your work hours doing.

At a tech company you may spend hours of your day analyzing application performance, peer-reviewing code, or requirement gathering with your product team. At an enterprise shop, you may swap some of those hours for meetings with senior leaders and contractors, or simply filling out TPS reports. But you definitely won’t be sitting around idle. For some engineers, this sort of non-tech work is soul crushing and they run screaming from it.

No one with any real skill is going to be working at Mutual of Generic Insurance Company.

To prove all doves are not white, you only need to find one black dove. In that sense, this is demonstrably untrue. However, the spirit of comments like this is really the idea that anyone worth their salt would be at a tech company making them Benjamins.

This is also untrue. Here’s what I have found. There are many smart people working for non-tech companies like Coffee Giant, Inc. Some simply like their jobs. Maybe they have a personality that doesn’t mesh well with the ultra-competitive nature of the tech companies and they know it. Maybe they have a family and don’t want to live in the Bay or Seattle where the cost living is frankly, fucking stupid. There are reasons.

Here’s the caveat. Yes, you will occasionally get a coworker who doesn’t pull their weight as well as others. That’s life. My experience has been that this isn’t too different from what you’ll deal with at tech companies, though. It just happens for different reasons. At an enterprise dev shop you may get a coworker who doesn’t do well because they are incapable of doing better. At a tech company, you may get a coworker who doesn’t contribute as much because they feel the work is beneath them or is being done ‘wrong’ and they want to spend time debating it rather than working their fucking user-story. Overall, I feel the slack an average engineer will have to pick up is about the same in both cases.

Another point to consider which is definitely a negative on the enterprise side: Reliance on contracted developers. This is a whole article in itself, but the gist of it is that you will never work with more unqualified programmers than the ones your VP just brought in from some contract agency because they were cheap and throwing labor at a problem always solves it, right? In this sense, the above claim is actually true.

You will be drowning in red tape.

Yes. God, yes. So much yes.

You will have reports for your reports. Preplanning meetings for your planning meetings. Timesheets which must completed to a precision that German watchmakers would call unnecessary. I can tell you horror stories about one-line code changes that literally had to wait for a month to deploy for no other reason that “that was the process.” You will be lost in a labyrinth of ticketing systems run by teams in undisclosed locations, and woe be to those who do not know the secret codes and speak the words of conjuration necessary to find their requests approved.

Weary travelers you have been warned.

Overall

Like so much in life, the best place for you to be depends entirely on you. Do you thrive on debate or do you prefer a quieter life? Is money everything to you? Are you okay living in a high-cost of living area?

What I’d like to impress is that in my experience, no one type of employer is objectively better than the other. They all have flaws. Don’t let anyone tell you different.

No job is going to be perfect. But, there’s no reason to make our lives harder than they need to be by shoehorning ourselves into jobs that don’t really suit us. I hope that some of my insight is helpful to someone, somewhere who is looking at making a career change or is coming out of school and looking at their options.