The pros and cons of being a software engineer at a BIG tech company
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.
Tags: career advice, software engineering
39 Comments
“Your company will employ tens of thousands of other engineers, and several thousand might be working on your particular product or project. ”
Something I don’t understand: Why do these giant companies with so many engineers still have such stagnant, crappy websites? Things like Amazon and Gmail have had the same user interface problems and missing features for YEARS. What do all these engineers do all day?
Many layers of useless and incompetent management will do that. Some of Google’s products are practically competing with each other. (see https://killedbygoogle.com)
If you want an example of a truly dated interface, look at some of eBay’s lesser visited pages.
The main answer, as far as Amazon is concerned, is scale. Each Amazon page relies on hundreds of services. Also, table tennis.
Damn. So many killed by Google products
I’ve thought of this.
Maybe a major overhaul of the user interface would put customers off?
Try to increase the clickrate on ads by 0.1%; because that would make the company a bazillion dollars. 🙄🙄
They are figuring out who will be doodled tomorrow.
They are working on things you cannot see
“spent long hours after work tinkering over what seemed like minute details”
There’s multiple layers of bureaucracy involved. Code reviews, sprint meetings, cross-product impact analysis.
Also, don’t forget FAANG need to dedicate a lot of manpower to infra, customer support, devops, and multiple “next new things” that die before they even get previewed to the public.
Amazon had interface problems? They focused on AWS and created a brand new income stream. Gmail missing features? Still the most popular mail provider. Remember how backward Chrome was, because they didn’t allow you to customize the UI like Firefox? Turns out people cared more about performance than UI. Focus on what’s important and has the best effort-rewards ratio.
They’re too busy working on the product to polish the frontend.
> Why do these giant companies with so many engineers still have such stagnant, crappy websites?
That’s not what those 10k engineers work on. Most work on the revenue generation side of the business which for FANNG is either data collection / selling this data to advertisers.
The bug exception here is Apple but calling their website stagnant is just not true.
That is easy.. because when you have 5 thousand people trying to improve something whose quality is subjective, it is IMPOSSIBLE to get everyone to agree.
Sorry, but the Gmail interface works smoothly in any case where others will let down. And that’s why it’s so appreciated.
Probably reversing a “BiNarY TrEe”
>talking about $BIG_TECH
>including Netflix instead of MSFT
lol
More advice could’ve been offered here by comparing FAANG-level tech companies to small tech companies. Especially since it’s a more common decision faced by new grads and seasoned devs than picking between FAANG vs the non-tech industry. Most of the pros for FAANG mentioned here could also be said for small tech companies. The cons for working at a FAANG company are more apparent when compared to small tech companies, and vice versa.
My thoughts exactly. I imagine the vast majority of IT professionals work in other software companies. The idea that if you don’t work at a US tech giant you aren’t working somewhere that is completely reliant on the engineers to make the product is just nonsense.
What is meant exactly by non – FAANG companies? In my opinion, they can be also software companies other than the 5 MD toned that implement divers projects and might also have their product. So not only the ones serving another field e. g. Construction.
Agreed, I think the author must have been talking about small startups. I don’t work for a FAANG company or a west coast-based technology company, but there are thousands of developers, testers, and other types of engineers or program support at my site. And we have internal tools for code reviews too. Also, I think every super large company (more than 50k employees) has a dedicated IT department handing out free equipment to employees doing engineering work.
I know it’s obvious but there are more than these two options. There’s big non-FAANG companies and small ones. And, as Rasha says there are non-FAANG software companies, but there are also non-FAANG non-software companies.
I worked for a big non-FAANG company as an employee and then as a long-term contractor through one of the big consulting companies. The IT dept was sold, er, outsourced. The only difference was who was signing the paychecks. As I said, it was a big company, ie, part of the Fortune 50.
The problem there was, as mentioned, you’re viewed as a cost center, not a revenue center. But most of the industrial departments didn’t understand s/w development and couldn’t, to save their life, write a decent functional spec. So, it was always our fault when as one R&D director told us once, we “delivered half the functionality at twice the cost in twice the time”.
I also worked for a small (~100 employees, probably 1/3 s/w, 1/2 h/w, 1/6 admin) custom systems house delivering turn-key SCADA systems working from customer specs. These varied from very detailed, very well spelled out functions to (one of my favorites) “one hardware system delivering XXXX functionality; one software system delivering XXXX functionality” (we had done the original, so it wasn’t that hard). But here as Daniel says, the opportunities to do stuff are much greater, though the budgetary constraints are a lot greater.
Anyway, the big difference between a big non-FAANG company and a small one is the ability to a) find the opportunities to “add value” and b) get permission/authorization/funding to “add value”. And as a contractor to a big non-FAANG company, the problem’s even worse, because the employees, if they have an opinion, generally think you cost too much.
Any article discussing companies like these should at least touch upon the ethics of these companies. For instance, do you really want to be a part of Facebooks very large role in spreading disinformation which has a large lasting negative impact on society? Is it prestigious to work for a place like that or is it shameful?
One thing you’re forgetting is that FAANG companies (or indeed any large company) tend to have more “diversity issues” because unconscious bias tends to blend in with code and performance reviews, or in expectations of how problems should be approached. And if you’re on the receiving end, you’re pushing back against a nameless process, rather than any specific person or viewpoint. At a smaller software company, you’ll have the opportunity to sit down with directors and talk about the process, and maybe even become instrumental in preventing diversity issues for people who come after you.
If it’s a nameless process, how does diversity figure into it?
Are you genuinely making the assertion that code reviewers look at skin color when making their evaluations?
This seems a little biased towards FAANG. You stated that at a FAANG company “The standards were high, but everyone was up to the task. If they weren’t, they found themselves out of a job.” in a positive tone but a non-FAANG “You’re an expense that has to prove itself every year, sometimes every quarter”. This is exactly the same this just viewed from a different lens. You probably mean that the KPIs used at FAANG are more catered to software engineers than at a non-FAANG but it really comes off as a six in one half a dozen in the other analysis. That and the point about 1 year contractors in non-FAANG when people rarely stay in the same FAANG company for more than 2 years anyway.
I like most of the other points, as a fake software engineer (construction engineer that does a lot of programming) I do feel that the non-technical people don’t appreciate the value of the work as much as a FAANG company would.
“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.”
This is what I can’t deal with. I don’t work for a FAANG organization, strictly speaking, but my company is more like them than different. Even small companies can be like them, with the right engineering culture. One thing I learned early in my career is NEVER work in a role where you are thought of as a “cost center.” NEVER. It impacts everything you do. (And by the way – if you’re an engineer in a FAANG company, you’re still a cost center, at least from an accounting point of view. But they don’t treat you like that, and it shows.) If you work at a company that regards engineers as a key asset, that means nobody upstairs is going to be high-fiving each other on the cost savings accomplished when they outsource your function to a bunch of unskilled labor who will run your systems into the ground and send your former employers crawling back to you to repair the damage. And even if you work in a “cost center” but somehow you are lucky enough to be seen by upper management is irreplaceable, it’s still not great. You’ll have trouble hiring and retaining talent to work on your team, and all it takes is one or two key people to leave and retire before you have to prove yourself all over again – and all of this for less money.
This article doesn’t seem to make a distinction between FAANG and non-FAANG software companies. That is, its example of a non-FAANG company is a construction company. There are many, many opportunities to work in the software industry and yet not work for FAANG. Just because you don’t work for Facebook doesn’t mean you will be viewed as a cost center to a company, or that your work won’t be understood.
This discussion is lacking a consideration of the ethical issues involved with working for these companies. Facebook in particular have an insidious role in the disord in our society whilst Google acts as the arbiter of information with no oversight. Amazon have very questionable workplace practices and are currently trying to stymie efforts at getting a fair deal for workers.
Developers at these companies may well be complicit in anti-democratic, anti-worker initiatives whilst ensuring that their information extraction processes are kept secret and their market dominance assured.
It is not my place to judge, but from the perspective of someone who works at an ethically focused startup I would find it very difficult to work for the above companies given the overall disutility they give to the world.
preach!
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.
I just left Facebook, none of this applied. It was a f-ing mess.
So the only tech companies are FAANG? That seems to be the implication of the article. In reality there are many companies in the US where software IS the product. Even at my little $3 billion company with only 600 employees, we have over 100 engineers. At smaller tech companies it is likely the base salary will be lower, but equity compensation can end up being worth a lot more if you make good choices about where you work.
All this free diners, showers, gyms, meditation areas etc are meant to have just one function – to keep you at work and have you sacrifice all your time to the company. It’s not the way a human creature should live
I worked on small team less than 5. Full stack. I think faang software is lousy. Buggy and ill conceived. Of course I worked on software at nuclear plants and weapons. So having software issues was not acceptable . Very different from the software you see from faang
“Another distinct difference for software engineers is that you’re seen as a liability, whereas FAANG companies would view you as an asset.”
Not always true. At all. I have worked for a non-FAANG software company, a non-FAANG engineering company, and two startups, and I was never seen as a liability. If I worked for a construction company, I could see where I would be seen as a liability, but I’ve made sure that I am always working on the product/service that is the lifeblood of the company (SAAS / E-Commerce site / software) .
The author has a very blinkered view of “non-FAANG companies” – there’s a whole world out there of enterprise software development that is neither FAANG nor the small construction company he’s experienced. Banking, public administration, healthcare… huge sectors that employ millions of developers with vastly different concerns to either FAANG or small companies.
Interesting article, but with a very narrow and biased point of view towards the so called FAANG. While it may be right, to an extent, to elevate and create and aura around the Software Engineers that work at FAANG, it doesn’t automatically push every other company there is around into the category of the ‘small construction company’. There are a multitude of other firms for whom Technology is part of their key business strategy and more than just a ‘cost center’ where technical competence and work delivery is well on-par with the FAANG.
The other aspect that was not covered well enough, in my view – is the layered up bureaucracy that’s an inevitable byproduct of a large company versus the absolute freedom to express oneself around the little to non-existent processes, at a Small Start-up Tech company – where you’re both a Tech asset and get to enjoy the full-scale flexibility, at least until the small start-up grows in size, that is. (or goes belly-up or consumed by the FAANG). In either of these scenarios, the Software engineer enjoys the full-blown freedom that would never have been experienced by his FAANG counterparts. For example, getting a change up and running in PRD on the same day as it was conceived….
One downside of working at large company is the huge amount of red tape. You’ll be expected to spend a considerable share of your time filing Jira tickets, following multi-step bureaucratic protocols, participating in a number of meetings, many of which have no clear purpose… There is also an issue of specialization b/n teams – each responsible fo a certain aspect of the code – API, infrastructure, security, etc. Development of any sizable feature requires extensive coordination and planning across multiple teams, which takes more time than actual development. As a result there many very talented engineers but the development process is excruciatingly slow, it might take weeks to deploy a trivial single-line change and months for something more complicated than that.
The larger is the company, the less time engineers spend coding, and more time following the “process”, and it’s very difficult to make an individual impact, as each person is responsible for a very small part of the overall product.
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using ‘Content here, content here’, making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for ‘lorem ipsum’ will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
A gross generalization at best, and I couldn’t disagree more with the following statement:
“At a FAANG company, you’re valuable because you contribute to the bottom line. At a company in a [non] 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. ”
In a construction company, maybe that’s true, but that’s just your experience with one company, but that it is not the norm. I am a software engineer at a retail company, and the tech stack is directly tied with the bottom line. If the point of sale system doesn’t work, you stop making money.
Any special reason why Microsoft is not mentioned in the list of BIG tech companies?