I joined a FAANG company 1.5 years ago after working mostly in startups and one medium sized company. I wish I’d joined way sooner because I’d have millions more in my bank account. But besides the money alone, I think every engineer should work for a top tier tech company at least once in their lives. In general you’ll grow more when you surround yourself with the brightest people, which you’re more likely to find at a top tier tech company.
Before this, my mentality was more to maximize money / work. I think this may have made sense back when chill jobs were still a thing. But given that we’re now in the “takeoff” phase and maybe just a few years until AGI and mass job automation, I think everyone who isn’t close to their financial independence number should be working hard because that’s the only way to stay competitive these days, and it’s not clear how long this opportunity will last.
I had a lot of misconceptions about Big Tech prior to joining like:
- People don’t really work that hard
- The work is very routine
- You’re only working on one really specific thing (this is both simultaneously true and not true)
- People care a lot about what time you’re in/out of the office
- Agile, sprint planning, scrum, daily standups, and all that BS
- Very top down
The reality was totally different.
My Experience
Because I still work at this company, I unfortunately can’t spill too many beans. But in any case my experience so far could be split into three phases:
- Honeymoon (TNTE, or too new to evaluate)
My first half was not a performance rating half, so I barely had any responsibilities. I felt like I’d won the lottery. Working on whatever I want, eating amazing free food, gym, soccer, and getting paid 2-3x previous jobs. I felt like such an idiot for not joining sooner. In meetings people were using so many acronyms I could barely understand what people were talking about, but nobody expected me to say anything and I could learn things at my own pace.
- Hell
All of a sudden it was a rating half and my manager suddenly cared about me, and it was absolute hell.
Onboarding was very rough (the other new hires all agreed). I didn’t feel like people were supportive or even cared about my success, though in hindsight I realized that for the most part you’re kind of just supposed to figure things out on your own. At previous jobs I felt like people were pretty supportive in onboarding (eg. whiteboarding how the system works). Here there was none of that, but you’re expected to just know everything. It felt more like a bunch of mercenaries in Squid Game vs. a real team.
The work was nothing like any job I’d ever had, to the point where I wouldn’t even call it software engineering. There was almost no coding, and a lot of alignment. I hated the work, didn’t feel like I was actually learning anything, and didn’t feel like I was being set up for success.
I had the worst manager I’ve ever had in my life, and a … let’s just say a very difficult relationship with the TL. I watched this manager screw over another new hire, drive him to the point of needing a psychiatrist, and get him fired. While all of this was happening, my father was passing from cancer.
- Enlightenment (team switch + ramping up)
Thankfully that manager left, and I switched to a team that was doing what I’d consider software engineering. The new manager is fantastic, and everyone on the team is kind, smart, and hardworking. The beginning was a little rough ramping up, but now I feel like I’ve more or less gotten the hang of things.
Your team makes a huge difference
A key takeaway there is, your experience can change dramatically depending on your team – and specifically the tech lead(s), manager, people, and work in that order (at this company tech leads have more power than managers). Although the average person here is more competent than at any company I’ve previously worked at, there are still bad apples unfortunately.
One of the best things about Big Tech is that you can change teams, and it’s as easy as talking to a manager who agrees to take you on (though some companies like Microsoft actually require going through the full interview process to change teams). Whatever you’re interested in, you can probably find a team that does it – which is not the case at small companies.
Reasons to work in Big Tech
- The compensation is 2-3x+ higher than what you’ll make elsewhere. The sky is the limit. Even if you get laid off, severance is probably going to be more generous than some scrappy startup.
- Free breakfast, lunch, and dinner is amazing.
- Having a massive office with a gym, free food, and so many places to work is amazing.
- You can meet so many people because the company is so huge
- Nobody cares what time you’re in/out. Hybrid work schedule. Shuttle times vary and the office is so big. Also people are too busy to be paying attention to that.
- These companies do almost everything, so you can probably find a way to work on whatever you’re interested in.
- Endless things to learn.
- The work is way less routine than I expected. Again if you’re bored, you can always switch teams
- Smart, hardworking, ambitious people
- Prestige + brand name. I hate prestige, but the reality is that it makes a difference. This is true both professionally – especially for non-technical people who don’t know how to evaluate your experience – and also personally (eg. your Asian girlfriend’s dad is more likely to feel comfortable and approve her daughter’s boyfriend working at Google vs. some random no-name startup).
Although there are negatives and performative aspects, the skills that you need to succeed in Big Tech generally correlate with being a better, more evolved person. For example at higher levels you’re expected to demonstrate initiative and leadership, have solid communication and public speaking skills, prioritization, ability to deal with ambiguity, etc. All of these are great skills to excel in. You’ll rarely see a staff+ engineer who doesn’t at least appear competent.
Downsides
- You’re literally a cog in the machine
- May not be very fulfilling depending on company/team
- You need to work hard. Work-life balance is not much of a thing. Stack ranking + constant layoffs means people are constantly stressed. Everything is treated as urgent, which can feel artificial.
- Work can be boring depending on team or project (eg. I’ve talked to people on teams like “privacy” who find it boring)
- Everything is proprietary. Specific tech stack often doesn’t translate to other companies.
- Can feel very performative at times. Politics.
Differences in Big Tech compared to startups
- The cost of a mistake is much higher
This is probably the biggest difference, and it’s taken me some time to get used to. At a startup if you make a mistake, it’s probably not that big of a deal. In Big Tech, it could impact other teams, millions or even billions of dollars, and it’ll cost you in your performance review.
In Big Tech there’s a lot more emphasis on ensuring mistakes aren’t made, and if they’re made that the blast radius is as small as possible.
- The systems and codebases are endlessly large + complex
It’s just not practically feasible to understand every system component or part of the codebase. This means you need to get good at prioritizing and being comfortable with ambiguity.
- More need for “alignment”
I had never used the word “alignment” before Big Tech, but it’s a word you hear constantly here.
At startups, you can just do things. In Big Tech, you often first need to “align” with stakeholders. This could be straightforward, or worst case could involve chasing people down and endless meetings.
- Little to no Americans
I won’t speak much to this because I don’t want to get in trouble, but it’s just the reality that many of these companies are completely foreign dominated. There are many orgs that are 90% dominated by one ethnicity. Naturally some of them will bring elements of their work culture, and there are enormous cultural differences. For example in China it is normal to work 996 – 9am-9pm, 6 days/week.
It was a pretty big learning curve learning to understand and work with these cultural differences, and this is something I never had to think about in my previous jobs that were American dominated.
Startups
Startups usually have less bullshit and can be way more fun and have more upside. But just know that you’re taking a massive pay cut with startups unless you win the startup lottery. Being a founding engineer is generally not a great idea because you’ll likely be expected to work crazy hours like the co-founders, except with only a fraction of the equity and they can fire you at any time.
If you’re going to work for startups, be picky and only work for the best. Working for startups should be something you deliberately choose, not something you only do because you don’t think you can break into a top company.
Ways I’ve grown
I’ve grown a ton being here, and not necessarily in the ways I expected.
When it comes to technical skills – In my previous team I honestly didn’t learn a ton other than gaining familiarity with production systems in the domain I was working in (ads), experimentation, and a basic high level understanding of how ML is used in production. In my current team, I’ve learned significantly more since I’ve had to do real coding and understand the systems on a deeper level. I’ve had to work with C++, Python, and another language – neither of which I actually worked with professionally prior to this in any meaningful capacity.
The ways I’ve grown the most are as follows:
- Understanding and exhibiting more of the behavioral traits needed for leadership
- Dealing with ambiguity. For example prior to this job, I felt like I needed to understand the entire system of whatever I was working on. Here that’s not possible, so I’ve had to better prioritize what to learn, and make peace with not having the full picture inside and out.
- Attention to detail. As I mentioned above, the cost of a mistake is much higher in Big Tech. Not only in terms of impact, but also you don’t want to sound dumb by saying something wrong when everyone else is so sharp. I’ve learned to be a lot more rigorous.
- Get better at approaching random problems where you know nothing. A lot of this job is that (eg. investigating the root cause of some discrepancy), which was a surprise to me. Those random investigations are where not just context but raw intelligence shine.
- Getting better at teaching myself things. Like I said, onboarding is usually non-existent and documentation also non-existent or outdated. Usually nobody’s going to walk you through things, and that could just be because nobody actually knows how things work because the engineer who built it left the company years ago. To understand things, you may have to just dive into the codebase (or use AI)
- Managing a bunch of things at the same time. Prioritization. This company by default tries to give you more work than you have time for, so it’s on you to manage and prioritize.
- Hard work and discipline. This is not a company most people can just coast. Stack ranking kind of guarantees that.
- Having to be self-promotional. The company has an internal “Facebook” where people write long posts about what they’ve worked on, and reference them in their performance review packets.
All these may sound super generic, but honestly they’ve made me both a better worker and a better person.
Ultimately the nature of work always changes. Whatever tool or library you’re working with will become obsolete. What matters in the long term isn’t the specifics of what you’re working on at the moment, but your ability to tackle new problems and adapt to new environments.
You should seek work at a higher level of ambiguity. If whatever work you’re doing can be done by asking ChatGPT or one-shotted by Claude, your job will be automated and you need to find a higher challenge.
Closing Thoughts
I could write a whole book on this, but I’ll leave it at this for now.
Although Big Tech absolutely has its flaws, I find that the benefits outweigh the negatives, and I highly recommend shooting for a top tier tech company. My favorite part is just being around smart, hardworking people who always push me to better myself.
An older version of myself might’ve considered that cheesy – like why devote yourself to the rat race? I’ve done a lot of exploration in life and my answer to that now is – what’s the alternative?
If you decide you don’t like getting paid half a million dollars a year plus with relatively solid work life balance compared to investment bankers and consultants, that’s totally fine. Just try it first before you knock it. And if you don’t get the offer the first time, just keep trying because all these companies have the same dumb interviews.