top | item 29750353

Ask HN: If not fresh out of college, what did you do to join a FAANG?

58 points| wallflower | 4 years ago | reply

Given the removal of the need to move to a High-COL area to work for a FAANG-type or FAANG-aspiring company with the rise in intermediate-to-senior level remote work opportunities for some of them, I feel that it might be possible to FIRE for more of us.

I've always been fortunate enough to avoid grinding LeetCode, telling myself I don't want to jump through those hoops (rotating a red-black tree on a whiteboard) and that I was happy enough at non-FAANG companies. I know that at almost all of these companies they will ask you LC medium (or even LC hard) questions. However, the death of a close friend has made me reevaluate whether I want to work until 65. Maybe retiring early or at least having the option to not work full time makes sense. I do know that you can still live a good life before you are retired, and I am guilty of "Groundhog Day" living like some of us are.

If you were not hired into FAANG out of college and were rusty on algorithms and data structures, what advice would you like to share on getting hired into FAANG? What did you have to do to prepare successfully for the interviews? How many "practice" interviews did you do? How much time did you spend every week? How did you maintain discipline during the grind Did you have a coach or some coach-type program? What books or courses would you recommend? Thanks for any input. Happy new year!

96 comments

order
[+] david-gpu|4 years ago|reply
> However, the death of a close friend has made me reevaluate whether I want to work until 65. Maybe retiring early or at least having the option to not work full time makes sense. I do know that you can still live a good life before you are retired, and I am guilty of "Groundhog Day" living like some of us are.

After grinding for years and finally becoming financially independent, my advice to people considering the same is: don't.

Instead, focus on making small improvements to your daily quality of life. From sleep, to exercise, to diet, to finding a project/team/company that is aligned with your personal enjoyment. Try things out and stick to whatever works for you at the moment.

The reason for this is that becoming financially independent is not going to magically make you a happier person, it just gives you more free time. If you were bitter and joyless from years of keeping your nose to the grindstone, once you retire you will just be a bitter and joyless person with extra free time to simmer in your own misery.

Happiness happens today, not some distant future.

[+] wallflower|4 years ago|reply
> Happiness happens today, not some distant future.

Thank you for sharing your perspective from someone who has done it. And congratulations on becoming financially independent! I feel you have shared a lot of wisdom in that one sentence. Life is now, not later.

It echoes what my brother-in-law told me when I blathered in our family WhatsApp about my (maybe) plan for 2022: "If this is driven by your friend's unexpected passing, then my suggestion is to live each day. Don't wait for retirement as life is too unpredictable. You should be able to live a good life while saving for retirement."

I'm still on the fence about grinding LeetCode to get into a FAANG or equivalent. However, I am rationalizing that even if I don't go for FAANG, getting familiar with LeetCode (even if not a grind that consumes my life) could still be an invaluable skill to hone as it would make those types of interviews less of a concern and more companies are adopting CodeSignal-type online assessments as their pre-screens.

[+] Jensson|4 years ago|reply
> After grinding for years and finally becoming financially independent, my advice to people considering the same is: don't.

> Instead, focus on making small improvements to your daily quality of life. From sleep, to exercise, to diet, to finding a project/team/company that is aligned with your personal enjoyment. Try things out and stick to whatever works for you at the moment.

You can do all of those while working at FANG. FANG is the best way to get peace of mind, you make lots of money for a modest amount of work so can focus on other things. If you get into a toxic team at Amazon then sure you trade stress and happiness for money, but the others aren't like that and are harder to get into for a reason.

[+] ckdarby|4 years ago|reply
- Focus on quality of life improvements with existing control

- Start experimenting for happiness. I only in the last two years found out how incredible I feel stopping coffee at 1 PM and waking up before 6 AM.

- Financial independence can make you happier because not only does it give you more time it can also reward us by not needing to do things we don't want to do like house cleaning.

[+] technological|4 years ago|reply
I know becoming financially independent does not make a person happy, however do you think in present condition money plays a important role in feeling happy ?
[+] adflux|4 years ago|reply
Love that last sentence!
[+] clintonb|4 years ago|reply
I'm not a fan of LeetCode since it doesn't give much signal about the ability to do the actual day-to-day job. I did not pass the interviews at Amazon, Facebook, or Google because I don't "grind" LeetCode. I worked as an engineer for about eight years before applying to Stripe. Stripe's interview questions resonated with me because they were more grounded in real-world problems. I hit my four year anniversary in early 2022.
[+] decafninja|4 years ago|reply
I'm curious what kind of questions Stripe asks.

I've encountered "practical" interview problems at various places also, esp. for frontend roles. But while not leetcode, many of them were things you still wouldn't code up in daily work - at least not serendipitously from scratch in 20-40 minutes with little to no references available.

My solution to this was...also grinding.

[+] ivanech|4 years ago|reply
I don't like the way this document is written, but it works: https://docs.google.com/document/u/1/d/1eKirumpmwDWTtKCJKn2H...

I did what it said and got offers.

[+] spdebbarma|4 years ago|reply
Thank you! I appreciate this. I picked up software development to build my startups, but now realize that working at a FAANG has immediate benefits to me - financial and social; as well long lasting benefits - better opportunities, peer network, etc.

I've been looking for something like this. I'd rather read this crass/vulgar document than a 250 page books on algorithms and practice leetcode without a direction. This also seems to be full of insider knowledge and your review makes me feel much more positive towards it. Here's to making this year count.

[+] wallflower|4 years ago|reply
Thanks for sharing this. I appreciate the honest and hard perspective. On a cursory look, it reminds me of Zed Shaw's guides to "Learning X the hard way".
[+] latte|4 years ago|reply
Here is my story:

- got an applied maths / CS degree in the beginning of 2000s, followed by a non-STEM master's degree and almost 10 years in a non-tech career

- burned out, quit job

- spent about a year working on pet projects and (re-)learning programming, then a couple of years on a startup with co-founders (which didn't gain much traction)

- moved to a different country for a developer job. I didn't want to ask my old connections for recommendations, so I just took an offer from a small company that found me on Monster or something similar

- after a couple of years, things at the company became worse, so I started looking for a new job. By that time, I had a circle of friends in the new country, some of which worked at FAANGs and asked me if I wanted a referral.

- I had remembered most of the theoretical stuff needed for LC interview from my CS course from 15 years ago, so I just needed to refresh it, cover the topics I didn't know and have some practice. That took me about a month or two of weekends, evenings and lunch breaks.

- I was so frustrated with my job that I took leetcoding as a pleasurable distraction - I didn't really need anything to maintain discipline. The country was in lockdown, so I didn't have much else to do anyway.

- the whole process from deciding to change jobs to getting an offer took about 4 months. I interviewed at around 5 companies, got 2 offer (one FAANG and one non-FAANG) and decided to take the FAANG one instead. Not sure if this job is a viable road to FIRE (and not sure if this concept is for me at all) but I like it so far.

[+] xiphias2|4 years ago|reply
Don't worry about rotating a red-black tree, I love algorithms, I worked at Google, and as an interviewer I would never ask (or even memorise) something so complex.

Now if it's reversing a binary tree (the famous interview question), if you don't love doing it, you won't love working with big data and complex systems.

As for me, I loved being there working for 1 feature for half year as much as I hated working at small companies where new features had to be implemented every day. I think the latter is just better match for you.

[+] QuercusMax|4 years ago|reply
Graduated in 2004 with a MS in CS and joined a company that I stayed with for 11 years. My titles were at various points Director and Fellow; I was the most senior engineer who touched code every day.

Interviewed at Google in 2015. I basically went through all the exercises in Cracking the Coding Interview, and spent a bunch of time relearning all the stuff in my Algorithms book that never really clicked when I was 20.

I probably spent a month study all told, and I passed the interview to get hired as a Senior SWE. Had some graph questions, and honestly I've had to do a fair amount of graph related stuff at Google, so it's not a bad thing IMO.

[+] throw24012312|4 years ago|reply
"Studied for a month". What are you all, geniuses? I am a Chartered Financial Analyst, Google Cloud Certified Architect, Azure Certified Architect, all-A student, "Architect" title at work, and otherwise not too dumb - not humble brag, straight up brag.

And yet, I am sure it would take me 6 months to prep for these interviews (while employed full time). Yet everyone is throwing around "lol a month". Trying to figure out if you are all top 1% brilliant geniuses or completely, completely full of it.

[+] david-gpu|4 years ago|reply
> My titles were at various points Director and Fellow

> I passed the interview to get hired as a Senior SWE

Maybe I'm unfamiliar with Google levels, but that sounds like a demotion from Director or Fellow. Did it feel that way?

[+] daviddever23box|4 years ago|reply
Why the fixation on FAANG?

There are plenty of opportunities out there, with large corporations, that would allow you to grow as a developer, learning useful production skills as you go.

[+] PeterisP|4 years ago|reply
I'm reading the parent post as essentially asking about someone who is not looking "to grow as a developer, learning useful production skills" but has already learned the useful production skills and grown as a developer (i.e. already is at "intermediate-to-senior level"), and wants to convert those sklls into large amounts of cash, thus the interest in FAANG as opposed to large corporations which pay less (or are expected to).
[+] salil999|4 years ago|reply
Some people just want a paycheck with low minimal work required. I worked at a FAANG and I can guarantee you that many people do not care much about growth and development. A lot are just there for big pay and less work.
[+] pcbro141|4 years ago|reply
Easiest way to make $300k+ working 40 hours a week.
[+] stale2002|4 years ago|reply
FAANG companies literally pay about twice as much, as random regular tech companies.

Its absurd.

[+] finikytou|4 years ago|reply
not really... I went to 10 different corporations and 1 FAAN. FORTUNE50, startups, finance, retail, software, electronics. there is nothing like faang. pros and cons included
[+] thewebcount|4 years ago|reply
I ran my own business for a while. It was difficult and while it only had one year out of five that it actually lost money, it barely made enough to pay me enough to live. It was very stressful.

However, during that time I sold products (and programming services) related to my field (video and image processing). I did my best to help other developers (some who could even be considered competitors). I posted to email lists of users, mostly with knowledge about the field in general and being very careful not to try to push them towards my company’s products because I didn’t want to come off as a shill.

Eventually, I decided that it wasn’t fair to me or my family to keep working so hard for so little return. I started looking for jobs with other companies and by luck there was a position that opened up on a team that was directly related to my skill set. (I had written some plugins for their product, in fact.) I had interacted with a few of their engineers on the various email lists I was on, and had even interacted with their QA once or twice when dealing with some issues with my plugins. I was able to get one of the engineers to pass my resume on to the hiring manager and eventually got the job.

While it’s hard to know for sure what the deciding factors were for them, I believe these things helped:

1. Being knowledgeable in the field 2. Posting helpful content for users and other developers and not worrying about whether I’m helping a competitor or going to make a sale 3. Getting to know an engineer or two on the team

[+] edmundsauto|4 years ago|reply
I was hired via the pure luck route. A recruiter contacted me on LinkedIn, and I went through the interview process blind. I guess I did well enough - one thing that helped was the certainty that no way would I take this job, regardless of the interview. I was only doing the interview due to family pressure, so I felt no personal pressure (I had my dream job, at 25% the pay rate, lined up and was ready to move across the country for it).

I'm in my late 30s, have a CS degree, started a company that was acquihired, have pretty diverse experience in my career. That, plus a storefront-only consulting site I built to have a 'presence' seemed to get my foot in the door. Once there, the advantage I think I had was 1) not nervous, and 2) able to think about the problems presented, rather than just trying to solve them directly. By that, I mean that I showed the interviewers how I was able to think - and I asked for help / collaboration when I was stuck.

[+] psyc|4 years ago|reply
Contract to hire. Easier initial interview. I still had to do a full FTE interview afterwards, but I had the extreme advantage that everyone on the team had already made up their mind. So some of them lobbed softballs, especially the manager.
[+] SOLAR_FIELDS|4 years ago|reply
This is how I did it - though it wasn’t “to hire”. I was part of a wave of 30 or so contractors and I kicked ass during my contract and made some internal allies (most importantly the hiring manager) who pushed to get me on as an FTE. The interview questions and panel were subsequently set up for me to succeed.
[+] wallflower|4 years ago|reply
Congrats! That is an interesting route to have a months-long "interview". I am assuming contract-to-hire is even more rare than QA-to-software engineer (only know of 2 personally who have done that).
[+] whoknew1122|4 years ago|reply
The question is what do you want to do at a FAANG? Do you want to be a software developer? Leet code might help.

But as a infrastructure, architecture, and security person I've never been asked a single coding question. It's all about the above mentioned topics. The fact I can sling a little code is just a value add.

If you are interviewing with me, you won't be asked about an algorithm; you'll be asked about SAML and the differences between IdP initiated and SP initiated login flows.

So what do you want to do? Make sure you have a few projects and can speak to those experiences.

[+] mrkentutbabi|4 years ago|reply
This is why I go to FAANG and live in high col areas and compete a hard as possible I forget how to live.

I want to work for 10 years then go back to my origin country and just live a simpler life.

[+] ckdarby|4 years ago|reply
Have you ran the numbers to just moving out of the high cost of living area?

I've had a couple friends at FAANG run the numbers that even with a cost adjustment they were ahead moving to states with no state income tax.

[+] xen0|4 years ago|reply
I graduated University with a Bachelor's degree in Maths and Physics. I 'accidently' landed a job as a Software Dev with a small amateurish company near my parents home. Passing their job interview basically required that I could write coherently and pass an ancient IBM 'logical thinking' test. I was there for 18 months.

Prior to this, my programming experience consisted of two terms of Pascal programming pre-University.

After this job, I joined a research company that actually knew something about software, if not money. Here I got most of my relevant experience, and after 5 years decided I should get a new job. I wasn't targeting FAANG, but I did interview at Amazon and Google.

My prep was largely some time on HackerRank and similar sites, probably totaling less than 20 hours. I likely spent more time preparing for Amazon's leadership questions.

I did no practice interviews, but did fail Amazon's on-site (and a few others).

I do, however, do Advent of Code every year. This was probably the single largest aid in getting me past Google interview.

I felt like I was a bit lucky with respect to the interview questions I got, but I think most people who pass feel that way. And anyway, the more you do prepare, the more likely you are to be lucky. ;)

[+] cletus|4 years ago|reply
The most important thing here is if you're asking this question right as you finish college and this is your goal, then you're screwed up.

Why? Because resume-building for high-profile employers begins long before graduation. Probably the most important factor: internships. Getting an internship is the highest-probability way of getting an offer bar none. If you don't have 1 or preferably 2 internships under your belt then you've made a mistake.

The second is that passing interview loops is a skill. It's one that can be studied for, learned and practiced. And if you're serious about this then you should do that. Many recommend CLRS [1] as a source for this. Personally, my choice would be Skiena [2]. Go through all the chapters on sorting and searching, lists, trees, graphs and possibly dynamic programming (some employers use this in interviews, some don't). Backtracking is useful but I've never seen it in an interview.

Do the same problems on an actual whiteboard. Don't just think about it. Get comfortable enough with any popular language (eg Javascript, Python, C/C++, Go, Java) such that the syntax and common libraries are second nature.

It's not unsalvageable to do this at the end of college (if that's the case). You just need to commit a few months to it.

Some will ask "why FAANG?" and the answer is obvious: the money can be life-changing but even aside from that it's an opportunity to learn a lot and having that on your resume is amazing social proof that will quickly eclipse the value of going to a top-tier school.

[1]: https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press...

[2]: https://www.algorist.com/

[+] qbasic_forever|4 years ago|reply
Internships really don't matter for anyone past a junior role. Direct employee referals are what will get you looked at by a recruiter and called up for a technical screening. After that it's purely a matter of how well you perform in the interview. I can guarantee your education is only give the most cursory glance. If you're 10+ years into a career I wouldn't even bother to list internships on resume anymore, there is likely far more impactful stuff you can use that space for on the page.
[+] caw|4 years ago|reply
I read Elements of Programming Interviews rather than do LC questions online. That book has a few flavors for popular languages—-just level up on the language you know best, don’t try to learn a new one.

I spent about a month covering the book, and then grokking the systems design.

It’s not so much the knowledge as the familiarity with the interview format and expectations (ask clarifying questions, explain your reasoning). The company I ended up joining had an opportunity for a mock phone screen interview, which I took advantage of. It was roughly a LC easy but covered the format and gave me some feedback on how I conducted myself.

[+] colordrops|4 years ago|reply
After working at mediocre companies and failed startups for the first 20 years of my career I got a job at a smaller company that is famous for being highly selective and achieving amazing engineering feats and worked there for several years, then followed the wave of coworkers to FAANG when I wanted to hang out with my kids and work less than 85 hours a week. Having several ex-coworkers that trusted me at the FAANG def helped getting in. I can't answer most grindy Leetcode questions at an interview.
[+] Onewildgamer|4 years ago|reply
What, 85 hours a week? Tell me that's just a joke
[+] ditto64|4 years ago|reply
Graduated '16 with a STEM degree. Opted against med school or doctoral studies, so instead took an IT job. Started scripting to fix common issues. Scripts became more like software and I transitioned to a dev job within the same company.

Friend with a FAANG started a bootcamp service and I was one of the first students. Algorithms and mock interviews for 6 months before I landed a FAANG role. It was a grind, but worth it in the end.

[+] 908B64B197|4 years ago|reply
> Given the removal of the need to move to a High-COL area to work for a FAANG-type or FAANG-aspiring company

I don't really like nor understand this Col thing.

Most of what's used to derive such metric is the cost of housing... except when you buy a house you are also building equity in it (and you get the cash value plus capital gain when you sell). It's just disguised compensation.