Ask HN: If not fresh out of college, what did you do to join a FAANG?
58 points| wallflower | 4 years ago | reply
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!
[+] [-] david-gpu|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.
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
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
> 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
- 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
[+] [-] adflux|4 years ago|reply
[+] [-] clintonb|4 years ago|reply
[+] [-] decafninja|4 years ago|reply
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 did what it said and got offers.
[+] [-] spdebbarma|4 years ago|reply
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
[+] [-] latte|4 years ago|reply
- 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
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
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
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
> 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
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
[+] [-] salil999|4 years ago|reply
[+] [-] pcbro141|4 years ago|reply
[+] [-] stale2002|4 years ago|reply
Its absurd.
[+] [-] finikytou|4 years ago|reply
[+] [-] thewebcount|4 years ago|reply
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'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
[+] [-] SOLAR_FIELDS|4 years ago|reply
[+] [-] wallflower|4 years ago|reply
[+] [-] whoknew1122|4 years ago|reply
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
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
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
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
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
[+] [-] mooreds|4 years ago|reply
[+] [-] caw|4 years ago|reply
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
[+] [-] Onewildgamer|4 years ago|reply
[+] [-] ditto64|4 years ago|reply
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
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.
[+] [-] unknown|4 years ago|reply
[deleted]