I joined Facebook as a new grad but am a fairly mediocre SWE (only ever received MA and EE ratings) and barely reached IC5 in the last performance cycle. I started applying outside because 1) I wanted someone to pay for my relocation, 2) TC was đ„ after stock crash or I wouldâve switched teams, and 3) I didnât want to stagnate by staying with the same company for too long. Making this post to share my observations and ramblings on the different interview processes I went through. In total it was easily over a hundred phone calls or interviews. TLDR: this post is not for you All HCOL No response: Netflix, Lyft, Apple, DoorDash Rejected without interview: Twitch, Dropbox, Airbnb LinkedIn: recruiter contacted me after application and ghosted afterwards Affirm: recruiter reached out to me first and scheduled a call. 2 hours before the call I got a generic rejection email with no explanation and the recruiter did not show up. DO NOT WASTE YOUR TIME WITH THESE CLOWNS!! Failed coding challenge: Hudson River Trading Failed 1st round technical interview: Patreon, Robinhood, Roku, Two Sigma Failed manager interview after passing technical interview: Twitter Failed onsite: Citadel, Uber (5a), Coinbase (IC5), Roblox (senior) Stopped process: Figma (passed phone interview but didnât schedule manager email), Nuro (didnât schedule phone interview after recruiter chat) Passed onsites/offers: Series D startup ($x billion valuation) Senior SWE, 220k base, 20% bonus, 800k/4 years paper money Google Downleveled to L4, negotiated to 180k base, 530k/4 years RSU frontloaded, 15% bonus Amazon Downleveled to SDE II/L5, negotiated to 190k base, 240k/4 years RSU vesting 5/15/40/40,150k + 115k signing bonuses Asana Passed onsite but no headcount outside of SF office, not sure about level Discord Downleveled to mid level, negotiated to 202k base, 56k/4 years paper money, 30k signing Stripe (accepted) L2, negotiated to 200k base, 140k/year paper money, 10% bonus, 50k signing Block (Square, CashApp) L5, 195k base, 580k/4 years RSU Snap L4, 180k base, 534k/3 years RSU (178k yearly grant after 3 years), 45k/3 years RSU signing, 10% bonus Databricks Downleveled to L4, didnât continue with offer process TikTok (best offer but too late) 2-2, 285k base, 25% bonus, 370k/4 years paper money vesting 15/25/25/35 Instacart L5, 200k base, 800k/4 years paper money, $40k signing Pinterest Downleveled to L4, didnât continue with team matching process How I prepared: reviewed a few blind 75 questions on areas where I was rusty, read some of system design primer, searched blind for âstripe interviewâ âstripe onsiteâ âstripe screenâ. I donât look at leetcode solutions until I have solved it myself, even if it takes hours. Only given up on some bullshit questions like range sum query 1D mutable whose solution still doesnât make sense to me even after reading through it twice. Pretty much every companyâs process started with an initial recruiter phone call to talk about my reason for changing jobs, roles, teams, location, employment authorization, compensation expectations, existing offer deadlines, over time it seemed I was reciting the same script over and over. It was a waste of time (how many times do I have to confirm something I already answered in the application?), but recruiters never scheduled the phone interview until after the call. It was also really hard to find availability because Iâm a late riser and my mornings are already full of meetings, while most recruiters have a hard cutoff at 3 PM which could be noon for me if theyâre in EST. This bottleneck on timelines was actually so bad that it ended up costing me my best offer from TikTok. That being said, I definitely think I applied to too many companies, because what I thought was a couple recruiter calls and phone screens quickly snowballed, with a ~2 week latency, into a brutal onslaught of onsites, offer discussions, and team match calls that I felt like I was trying to solve an NP-complete problem trying to schedule all of them as efficiently as possible. For the short calls I squeezed them between existing work meetings, but when the onsites started coming in I took vacation days AND filled in before/after/gaps with more short calls/interviews wherever I could. Attached image is a real week from my schedule with an onsite every single day and more calls scheduled around them, even during gaps in the onsites I would jump on a call with a different company. Every single one of these events is an interview or call related to my job search, often back-to-back with no time to catch my breath before the next one. At one point I had two onsites AND two phone interviews on the same day (not pictured), all of them back-to-back from 9:30 AM to 6:30 PM, except for a 15 min gap that didnât even materialize because the previous interview ran over. Doing what I did was extremely draining mentally and physically (no time to eat or stretch) and I definitely wouldnât do it again, especially considering that most offers I got didnât provide much leverage during negotiations. Now that levels.fyi is a thing itâs pretty easy to see most companyâs offer bands. Throughout every interview process, I completely refused to give the first number or disclose my other pending offers, but in almost all cases their initial offer would be on the low end, and Iâd have to negotiate it to the high end, so in hindsight I shouldâve just given the high number first. The mid level offers did not budge much since they were on the high end and already matched or beat the few senior level offers I had, which were from companies that paid on the lower end. I pushed Stripe L2 as high as I could and accepted them because I really liked the team, but it was an extremely tough choice with Snap L4 (best cash comp and perks but not interesting team), Google L4 (good year 1-2 comp and business class travel but slower growth), and Instacart L5 (highest level and TC incl paper money but donât believe in company). When choosing an offer, I considered several key areas: TC, team/product, office benefits/perks, career growth opportunity, and WLB. Most offers fell short in one of the first three, most often because I wasnât excited about the team even if the offer was great. TikTokâs offer was not considered here because it came in two months after I had already finished my search. As I mentioned earlier, the recruiters took their sweet time in the beginning. An inhouse recruiter reached out to me on LinkedIn, we had a call, they had me apply online, a different recruiter followed up and insisted on ANOTHER call, didnât have availability for two weeks, and the interviews took another 1.5 months after that call. I went through with the process anyways because I wanted to see how hard their interviews were and also wasnât expecting to get an offer, let alone senior 2-2 level. Itâs a real shame too, because the offer completely destroys my others. The cash alone nearly matches their TC, even if the TikTok RSUs go nowhere it wouldnât matter much because it was cash-heavy. I try to cope by telling myself that I made the right choice, that TikTok WLB would be brutal especially as Iâm coming in with senior level expectations. I also donât have a TikTok account and am annoyed seeing shitty TikToks reposted everywhere on Facebook, Twitter, Discord. But I wonât lie to myself: nobody I talked to did anything remotely near 996 and I absolutely wouldâve taken their offer over any of the others if it had come 2 months earlier. I suppose I could reconsider them in a year if I really donât like Stripe. There were quite a few differences that stood out to me between my job searches now and as a new grad. With YOE at Meta on my resume, I got callbacks from the majority of my applications without referrals, and a couple of recruiter reachouts as well. When I was a new grad I sent out over a hundred applications and got ignored/rejected by almost all of them even though I had a MANGA internship. The hiring process itself felt much more streamlined for new grads. There were a lot more coding challenges for new grads, across all types of companies, while this time I only got coding challenges from the three trading firms. I suppose they need it to screen out the volume of new grad applications they receive, while experienced candidates wonât put up with them. Also, initial recruiter phone calls for new grads didnât happen and instead they would set up the first round technical phone interview over email, let me know the results over email, and schedule the onsite over email. It was a lot less phone calls than this time around, when they called me between every step of the process. Of course, back then onsite actually meant going onsite for the final round interviews, and bigger companies would designate âinterview daysâ where theyâd fly in multiple candidates together for campus group tours, tech talks, and happy hours in the evening. It was a bit weird knowing everyone there was competing for the same position, but I still had a lot of fun. I really miss using onsite interviews to score free trips to other cities and lament that this is no longer an option industry-wide :( After passing an onsite, the offer discussion and team matching calls took 2+ weeks for nearly every company this time, making it harder to line up offers as I continued in other interview processes. I got my new grad offer after a single call and wasnât in any position to negotiate, but now everyone wants to ask again about comp expectations, pending offers, team matching, back-and-forth negotiations, etc. I also slowed things from my end by scheduling calls with my future manager/teammates to learn more about the team/company outside the context of an interview. As a new grad I had 10 onsites but only got Facebookâs offer, so I was under the impression that onsites had insanely low success rates, and was quite surprised when the majority of the onsites this time got offers (though with many downlevels). New grad coding interview questions were also a lot harder, lots of hards and hard mediums; Yahoo asked me regex matching as the second question in the first round interview ffs. My coding interviews now were often easies and easy mediums, with a few notable exceptions like Google, Citadel, Two Sigma which were still crazy hard, but in general the bar and difficulty for coding interviews felt a lot lower than I expected them to be, even for Snap and TikTok. Another factor was that pre-COVID onsites had you writing code on a whiteboard, where you didnât need to run the code but needed to convince the interviewer that it would work. Every coding interview now is on an online editor, where itâs easier to write code but comes with a higher expectation of correctness if it has execution capabilities (most of them did). Iâm also not particularly good at leetcode or anything. Attached image is my entire leetcode history, 78 solved, and 40-something were from my new grad job search. I tend to communicate consistently throughout the interview, clarify the question, articulate my thought process, discuss pros/cons/tradeoffs of solutions, basically making sure that the interviewer and I are on the same page every step of the way. I see a lot of people who say theyâve solved 300 LCs and fail a phone interview despite finishing 2 hards in optimal time, and I canât help but think theyâre not doing the above things. Jumping directly into code, making assumptions, etc. tends to lead down the wrong track and doesnât give the interviewer an opening to correct things. On the other hand, interviewers are more lenient when I communicate well and leave a good impression. Several have introduced a difficult problem, but asked me to solve an easier part of that problem or explicitly told me they did not expect optimal time complexity, but they might not do that if they donât like you. One question I got was to find all peaks in a list of numbers. A naive coder would immediately begin writing code that returns all numbers that are greater than the ones next to them (Iâve seen similar mistakes too much), and itâs up to the interviewer whether they should butt in to ask about adjacent identical numbers (they are all peaks if itâs like 1, 2, 2, 1). Someone more competent would also ask about numbers at the start or end (2, 1, 0, 0 the start is a peak), a whole list of identical numbers (1, 1, 1), adjacent identical numbers in the middle of an increasing or decreasing sequence (1, 2, 2, 3 the 2s are not peaks), how the interviewer wants the answer returned (indices of peaks), and whether the order matters (no). Never mind that the question takes the entire 60 minute interview, theyâd prefer me to show that I thought through the question carefully and covered all angles in the solution, rather than rushing through two harder questions, missing edge cases or even committing to the wrong solution. I definitely shouldâve spent more time on behavioral and system design. Most likely I got sunk by the signal from those; several times I could tell the interviewer was clearly displeased. I went into system design interviews without knowing what a âgoodâ interview looks like, so I probably didnât consider or discuss the things they were looking for. And who needs a grill when you got Amazon L6/SDE III loop - 50-100% of every round was dedicated to LPs, and we both knew I was out of new stories and details on previous ones. New grad onsites were mostly coding and didnât have other types of interviews, or had a low bar for them, so that perspective led me to over emphasize coding interview preparation for this job search too.
I didn't realize TikTok was giving that much base
Theyâll extract every ounce of life back from you. Plus youâre working to build up the CCP
@aShv34 are you Indian? seems like your post is biased.
Congratulations and good luck!
Thank you OP. My yoe increased just by reading your post.
You are the target audience for my long, incoherent paragraphs. Those that don't care can just look at the offers and leave, while others who want every detail will enjoy reading it all.
Actually it should have dropped
Damn, nice job and I appreciate the insight. I'm a new grad myself, but I think this offers some insight into the rampant downleveling that these companies are pulling these days, and I guess the best way to avoid it is really getting those behaviorals and systems design down pat. While it's probably unrealistic, I hope to at least attempt to accelerate my L4 promo, and I see that's really gonna require making a good story if that's something that I try to do externally.
Not reading that đ
The way OP writes makes them seem so insufferable
Lol why?
like it or hate it, it's deliberate
Thanks for sharing your experience and congratulations.
Congrats! I may have missed what type of engineer are you? FE/BE/Mobile. Could you please let us know about TikTok interview process
After the fiasco with the initial recruiter call, it was two coding interviews 1 day apart. They were high medium/low hard questions. I passed those, and it was followed by system design interview and behavioral interview 1 day apart.
Thanks
Lol how do you have time for this as IC5
IC5 is the chillest level. No promo deadlines and not as much directional responsibility as 6+.
I talked for 3 paragraphs about how big of a mistake it was to do this many interviews. My schedule was nonstop back-to-back interviews for weeks.
Thank you for putting out such a detailed post.