About Me
For personal reasons I'm moving from the East Coast out to Seattle this summer (pandemic permitting), and I was becoming disenchanted with both startup life and fully-remote work, so I started applying.
Application Process
I've had a Google recruiter pinging me every six months for the last couple of years, ever since I failed a simple phone screen. I let her know I was interested and looking to start around May/June, and she recommended starting the interview process in February.
In February, I talked to the Google recruiter again, who told me that she felt we didn't need to do a phone screen and I could move directly to the on-site phase. We scheduled the on-site for March 25, since I hadn't done any interviewing recently and wanted time to prepare.
In the intervening weeks, I asked several friends to refer me, as well as sending off some applications blindly:
Of these, Snap, Gravitational and Yubico never got back to me, and Tableau quietly rejected my referral (with no notice - how rude!). So I proceeded with Amazon, Facebook, and Google.
During the initial call with the Facebook recruiter, he expressed some concern that my background didn't line up well with the position, so he passed my information to another recruiter in a different area at FB as well. So I ended up with four active applications in total.
Prep
Like I said, I have a reasonable amount of work experience, but I've never successfully passed even a phone screen for a tech company, so I was pretty worried.
Everyone I talked to, including recruiters and friends, recommended LeetCode, so I ended up here. My algorithms class is at this point ten years in the past, and was heavily focused on the math side of things, so I also grabbed a copy of Cracking the Coding Interview to refresh.
I started by reading through CTCI and thinking through the more interesting exercises for the topics I didn't remember as well; it took a full weekend and another few weekday evenings to get through the parts I was most worried about.
I then switched to focusing on LC; generally I tried to do 1-2 hours each night, and spend at least half a day each weekend on it. My stats say that I've done 107 problems, most of which are Medium. I also tried to do the Saturday evening contests each weekend; these are great for giving you problems you haven't seen before with a time limit. Contests were probably the single most helpful thing I did to prepare.
After I started actual interviews, I dropped my LC time substantially - usually just an hour the day before each interview to get my mind back in gear. Burnout was a major concern for me and this helped a lot.
Interview Experiences
I'll go through these by company rather than chronologically so it's easier to follow.
Most came with NDAs so I won't give direct links to problems to be safe.
The recruiter told me I didn't need to do a phone interview. That was nice; I had never passed one before, and skipping it made me feel a lot better.
On-site (March 25, virtual due to COVID-19): They gave me a Hangouts link and I sat on that call all day (with a 45-minute lunch break).
Overall I felt like these went pretty well, all things considered.
After hearing that Google's process was slow, I was surprised to hear back just two days later that I'd passed! Hurrah!
Passed Hiring Committee on April 6, set up team fit meeting April 10, received offer details April 16. Google's initial offer was for about $280k/year (amortizing the signing bonus across four years).
Amazon
Referral submitted Feb. 24; recruiter emailed on Feb. 26 and we set up a call on Feb. 27.
Phone interview (Mar. 10): This was about 30 minutes of talking over stuff I've worked on, and asking the interviewer about his experiences. Then we did an easy LC problem (sliding window). Very pleasant conversation, and the only hiccup was when my router died for five minutes. It all worked out in the end, and I was told the next day that I'd passed.
On-site (April 3, virtual): I sat on a video call for six hours, with interviewers rotating every hour, plus a one-hour break for lunch.
Interviews:
Amazon's interviews were incredibly focused on behavioral-type questions. I spent five hours in total interviewing, and probably 4 hours of that was answering behavioral questions. Thankfully I knew ahead of time to expect this sort of thing and prepared thoroughly; this also was extremely helpful for behavioral questions with other companies. Even if you're not applying for Amazon, I'd recommend going through their LPs and writing down a story or two for each. It reminds you what you've done and prepares you to talk about it.
On April 7 the recruiter called to tell me that they'd be making an offer! However, the position I'd originally applied for had been filled by an internal transfer, so they found a different position on a related team in the same organization, and after chatting with the hiring manager for that team it sounded fine.
On April 13 I had a call with the recruiter to discuss offer details. Amazon's initial offer was for about $230k TC.
The original FB recruiter I talked to passed me to another recruiter as he wasn't sure how well my background matched his team.
I first talked to this side of Facebook on March 11, and set up a phone screen for the next week.
Phone interview (Mar. 20): Introductions, an incredibly-annoying LC-medium problem about string parsing, and we're done. It's impossible to feel good about problems that boil down to casework but it went okay I guess.
On-site (Mar. 31, virtual):
Overall I felt just okay about this set of interviews. Nothing went horribly, but there also weren't any that I felt like I'd done exceptionally well on. I was amused to find that every one of the coding questions was lifted directly from Leetcode.
On April 8 the recruiter emailed me to let me know I'd passed the interview, and on April 9 I was told I'd passed Candidate Review. Because I had a separate application going with the AR/VR folks, we waited until their side was done before talking about offers.
Facebook AR/VR
This is the position I originally was referred for: Platform Security Engineer at FB AR/VR, formerly Oculus.
Referral submitted Feb. 28, recruiter emailed Feb. 4, and called Feb. 5 to set up a phone screen.
Phone interview (Mar. 19): Pretty standard. Introductions, ~25 minutes on a LC medium problem (tree traversal), 10 minutes talking through a second LC-medium problem, and a few questions.
On-site (April 7, virtual):
On April 15 I had a call with both Facebook recruiters, and was told that both sides were interested in extending offers, so that interview must have gone better than I thought. However, Facebook won't compete against itself, so I had to pick either FB Core or AR/VR. After several days of agonizing over it I ended up picking AR/VR.
On April 22 I received my offer details. Facebook was exceptionally generous and offered about $300k/year, amortizing the signing bonus across four years.
Final Thoughts