Full write-up is below, but I want to start with one very strange thing about the onsite interview that I have not found documented anywhere else on the internet:
I was told by my recruiter that at least ONE of my five onsite interview questions had to be done in C++.
This should sound very strange to you. Google is well known on the internet to be language-agnostic for interviews, and I think this is generally true. I asked all of my SWE friends about this, and they were also baffled. My recruiter insisted. I was doing my interviews in Python because the language is concise (no need to even think about closing brackets when whiteboarding, which is low-key really distracting).
My C++ skills were very rusty, so I spent a full week before the onsite tearing through "A Tour of C++" by Bjarne Stroustrup and Leetcoding C++. This was a mistake. I should have started prepping C++ a week earlier because it's a language that takes time to master (there are a lot of little details). The feeling that I hadn't crammed enough C++ for the onsite definitely hurt my confidence, but my recruiter told me I could pick any of my interviews to do in C++, so I had some flexibility to be strategic.
In the end, none of my interviewers seemed to be aware of this C++ interview requirement (lol). I ended up doing poorly on the question I chose to do in C++ because I ended up using some data structures to solve the problem that I didn't anticipate in my preliminary analysis (lol). But I verbalized all of my main ideas (which were correct) to my interviewer, so I'm sure I got partial credit. I have a feeling I could have just ignored the C++ requirement and no one would have noticed.
I also ended up bombing one of the questions I did in Python (lol). Surprisingly, I was called a week later notifying me that I passed the hiring committee (I thought the C++ slip-up might have killed me!). I ended up matching with a team that primarily uses C++, and I took the offer. So I guess it's good. I guess the prep paid off in the end. Big fat lol.
======== Full Write-up:
My interview experience was excellent. My recruiters did a great job of keeping me in the loop and making sure my schedule and travel were squared away. I applied to the Cambridge office because I wanted to get out of the Bay.
I graduated with a B.S. in CS in 2017 from a top 5 US college (but not top 10 for CS). I had no prior experience working at large tech companies of any kind, but I had been working at a startup in SF since graduating.
I was contacted by a recruiter on LinkedIn in early 2018 about applying. I quit my job a few months later to prep for interviews full time. This strategy worked for me (and I would do it again), but YMMV so be aware of the risks!!!! My previous employer graciously offered me part-time hourly work, which was very convenient for this.
I had several glowing internal referrals submitted by former coworkers and friends vouching for my skills and character.
The technical phone screen, I would say, was LeetCode easy/medium, but YMMV. I was lucky that my TPS was so easy, because I needed way more prep to pass an actual onsite
I asked for (and received) 5 weeks to prep for the onsite. I did one onsite at another company just a few days before Google's. I wish I had done a couple more onsites to boost my confidence (I ended up failing my first onsite), but oh well, it all worked out in the end.
The interview was typical LeetCode medium, with sometimes LeetCode hard follow-ups. All on a whiteboard. There were 5 technical interviews with one informal lunch interview at the cafe with an engineer. Everyone was very nice!
The rest of my experience was the typical team matching phase and then compensation negotiation that you can read about elsewhere.
LeetCode medium-to-hard.
Make sure you know how to traverse trees and graphs.
Some have lots of practice on LeetCode!
The following metrics were computed from 28 interview experiences for the Google Software Engineer role in Cambridge, Massachusetts.
Google's interview process for their Software Engineer roles in Cambridge, Massachusetts is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Google's Software Engineer interview process in Cambridge, Massachusetts.