The pros and cons of being a software engineer at a BIG tech company

There are benefits to being a technical lead at a less software intensive business.

Article hero image

Facebook, Amazon, Apple, Netflix, and Google (FAANG) are some of the largest tech companies in the world. They can be great to work at for many reasons. If you’re an employee at any of the FAANG companies, you’ll most likely earn a great salary and have access to a robust developer network to learn from. If you don’t work at a FAANG company, you might feel a little left out.

But the truth is, not all software engineering roles are the same. The projects you work on, people you report to, and environments you work in will vary. In this post, I’ll give a detailed breakdown of why these differences exist and share some of my personal experience working on both sides of the fence. I'll unpack the experiences you might have as a software engineer at a FAANG company as well as if you work for a large company in a non-FAANG industry.

When engineers build the product

The biggest difference for software engineering roles at FAANG companies is the product. Software is an integral part of each company's product or platform. This necessity for software requires that each company has enough engineers. Your company will employ tens of thousands of other engineers, and several thousand might be working on your particular product or project.

You'll step into a robust infrastructure built for your success as a developer. Expectations will be clear, and protocol will be well structured. There will likely be a straightforward and efficient process for everything; if there isn’t, it’s probably being developed. Someone will always be available to review and help debug your code. There will be in-depth internal wikis that will help you through any issues you might face.

Google is a great example of how FAANG companies operate at scale. I remember when I visited Google for an on-site interview. During the interview, a few Googlers walked me through the company's development infrastructure. Part of that infrastructure was seamless code reviews. There was an internal tool where developers could ask other developers for a code review. If they needed equipment, a Google engineer could get whatever they needed from IT. Most of the time, the equipment was free. The free gear was to provide employees with a quick turnaround so they could go produce their best work.

At FAANG companies, you’ll be surrounded by technically adept people. You'll meet a lot of brilliant software engineers who know their way around code like the back of their hand. You'll also meet non-technical employees who know their way around code. For FAANG companies, software is the key and employees know that going in. This means that everyone needs to understand software enough to work with it. Non-technical employees won't need to know how to code, but they'll need to understand it at a conceptual level. The company can't afford non-technical managers ideating unrealistic features. They don't want communication and product inefficiencies between their engineers and everybody else.

During my time at Facebook, I met many non-technical employees who knew how to code. Facebook required product managers to complete a six week coding boot camp. The raised knowledge standard helped the company in several ways, primarily that managers understood technical specifications. They ideated innovative and realistic features that engineers could jump on board with. Non-technical managers didn't rush programmers out of ignorance. There was no loss of communication between stakeholders. Better yet, teammates had an aligned understanding of what needed to get done.

Because FAANG companies need to hire so many engineers, they constantly compete for the best talent. This competition affects software engineering roles in several ways. Each FAANG company will try to offer you the best work environment possible. This includes more than a robust development infrastructure. FAANG companies will also offer several great work perks—hefty salaries, free daily meals, paid off-sites, and celebrity events.

Competition among FAANG companies isn’t always purely beneficial for you. The competition will bring in the best of the best engineers, who will hold you accountable to produce the best work possible. FAANG companies will measure you against their own intense internal performance programs. They design these programs to ensure all engineers are producing great work. If you don’t measure up, they’ll let you go.

When I was at Facebook, I often met employees who had worked at other FAANG companies. Recruiters from Facebook would target employees from another FAANG company. Throughout my time with Facebook, I saw how hard everyone worked. Engineers were persistent in shipping the highest quality work. They made sure they performed all aspects of the testing and validation process and spent long hours after work tinkering over what seemed like minute details. They encouraged everyone else to do the same. The standards were high, but everyone was up to the task. If they weren’t, they found themselves out of a job.

What you can expect with non-FAANG industries

There’s no doubt that software drives many of the FAANG companies’ products and platforms. As a software engineer at a FAANG company, your code will be the lifeblood of the organization. But what about software engineering roles within industries that aren’t software-driven?

For a software engineer in a non-FAANG industry, you’ll have more opportunities to add value. These opportunities are due in part to there not being as many developers. This means you'll be able to bring fresh new ideas to your industry, possibly ones that could disrupt the industry. Another way you can add value is by automating tasks for the rest of the company. As you get to know your co-workers, you'll discover the areas you can start automating. Whether it's reporting or machine learning, you'll have an open door to get started. Others will begin to recognize you for your ability to add value through software. Management may take notice and promote you faster than if you were to work at a FAANG company.

I remember my time working at a construction company after I worked at Facebook. There were far fewer developers at the construction company—I was one of five programmers in the entire office. In some ways, this scarcity was discouraging, but it offered a potential way to add massive value. By the time I left, I had overhauled and automated their financial estimates model. The model could predict the cost of a given project with 95% accuracy. One of the other, more senior software engineers created an internal tool that could produce a 3D model of a building proposal based on a design mockup from project managers. The internal tool optimized client relationships for the company. Clients could come in and immediately know what the company could provide at scale. If you end up working in a non-FAANG industry, you'll see fewer developers and less support from non-technical staff, but you’ll have plenty of opportunity to add massive value.

Another distinct difference for software engineers is that you're seen as a liability, whereas FAANG companies would view you as an asset. At a FAANG company, you're valuable because you contribute to the bottom line. At a company in a tech industry, this isn't always the case. The company will view you like every other business function. You're an expense that has to prove itself every year, sometimes every quarter.

Because of this, a company outside the software industry is likely to pay you less. The company will want to pay the direct contributors first. This group may be project managers, auditors, or even account executives. But if your software isn't a key driver for revenue, don't expect to earn a hefty salary.

Based on my experience, outside of software-driven industries, you may be more likely to work with temporary employees. Companies often want to integrate software into their business but are not be willing to pay for a full-time developer. They will then hire temporary workers that work for six to twelve months at a time. There are many issues that may arise with temporary workers. Contractors may not understand your development infrastructure. You might spend unnecessary time making sure both of you are on the same page. When they leave, you may be the one who has to take extra time to understand the code they left behind. Any knowledge they have often leaves the company when they do.

Login with your stackoverflow.com account to take part in the discussion.