Google Onsite

It's been about a year since I initially starting interviewing for my current position at Google, as a Developer Programs Engineer (DPE) on Google Cloud. DPEs are engineers within Developer Relations (DevRel), with other roles including Developer Advocates and Technical Writers. Understanding what the current developer experience is, and how to make it better is at the heart of DevRel. While the concept is fairly abstract, that means there's a lot of flexibility in what DPEs can do. As a Cloud DPE, we spend a lot of time writing code which ends up in one of our repositories in Github, often in the form of code samples or tutorials on how to get started with a specific GCP product. Beyond that, many of us choose to write blog posts, contribute to open source projects, engage with developers on StackOverflow and Reddit, or give talks at conferences. Having the flexibility to choose our day to day is one major reason why I appreciate my current role as a DPE. If you want to learn more, I recommend reading this post by one of my colleagues. For this post, I wanted to focus on what the interview experience was like for a new graduate.

Traditionally, DPEs and other positions in DevRel benefit from having prior industry experience, as it helps with the end goal of being able to empathize with developers. However, people within DevRel started to see the value in bringing on new grads, which introduces fresh opinions on how easy an API or service is to use and ultimately improves the developer experience. I was initially contacted by a recruiter by email asking if I would be interested in a DPE position. Like most college seniors studying CS, I had no idea what DevRel was, having only heard of traditional engineering positions like the coveted Software Engineer position at Google. Nonetheless, I dug a big deeper and was very intrigued by the (fairly limited) information that I found on the internet. During an initial phone screen after I expressed interest, the recruiter told me the interviewing process was fairly analogous to that of a SWE, and scheduled me for a technical phone interview.

The phone interview was scheduled for Thursday, about 8 days after I reached out with available dates, with a Cloud DPE from our San Francisco office. He started with a few basic CS related questions, such as what databases I've used before and some nuances in Javascript, based on the fact I have that listed on my resume. He provided me with a screenshot of a Stack Overflow question about someone asking why their async Javascript code wasn't working and asked me how I would answer it. Satisfied with my answer, we moved on to writing tests for cloud service, focusing on edge cases and how to robustly make sure everything was working. At the end, I asked him a few questions about the DPE role such as his day to day. He said it varied a lot from day to day, which at the time I found confusing but makes a lot more sense now that I look back on it.

I believe my phone interviewer was sufficiently satisfied with my answers to his technical questions because I was invited to schedule an onsite on Friday, a day after the phone interview. The recruiter I had been in contact with actually switched halfway through, but provided me with some standard resources on how to tackle the coding portion of the interview: CTCI, interviewcake, and a few Google videos for tackling coding interviews. I primarily prepared by reading through CTCI, and solving problems from Leetcode and CTCI on a whiteboard with a friend's help. I sent some dates I was available, and was scheduled for an onsite in Google's headquarters in Mountain View for almost 2 weeks later.

I was very excited for the onsite, since it was my first time seeing Googleplex and going to the bay area in general. The onsite process was nothing short of seamless, as Google handled booking the flight, hotel accomodations, and car rentals for the 2 days that I was in Mountain View. They also reimbursed for other expenses, such as going to and from the airport, and a $50 food stipend each day. I flew into San Jose International Airport (SJC) in the morning the day before my interview, and grabbed a car from National Car Rental, from which I have Emerald Club Executive status from my Chase Sapphire Reserve card. I grabbed ramen at Santouka in Mitsuwa and headed to Apple Park Visitor Center since the Computer History Museum is closed on Mondays and Tuesdays. After that, I checked into my room at Hotel Vue, and although it wasn't the nicest hotel in the area, it was free and very close to Googleplex. It also gave me the chance to explore the Castro St restaurants for dinner.

My interview began at 10:30 the following day in Building 41. After dropping my rental with the onsite valet, I walked pass the Android statue (Android Oreo at the time) and dozens of gBikes that littered the heart of Googleplex. I was scheduled for 4 interviews, 3 of which were in-person and 1 was through hangouts. Since each interview was about 50 minutes, the format of the interview was essentially 40 minutes of a standard algorithm/design question along with 10 minutes of other technical or behavioral questions. For the coding parts, 2 of my interviewers requested I use the whiteboard, while the other 2 requested I use Google Docs. Three of the technical portions were traditional algorithm problems (about leetcode medium difficulty), with the remaining being more of a systems design question. Each interviewer chose a different format with the time that wasn't allocated to the coding portion. One gave rapid-fire trivia questions, such as the difference between static/dynamic types in C++. Another asked me to choose a recent technology and asked how I would explain it to an average person (I chose to talk about bitcoin/blockchain). My last interviewer asked me if I was comfortable writing SQL queries, and asked me to write a fairly straightforward SQL join query. In addition to all that, there were standard behavioral questions (i.e. why do you want to join DevRel/Google) which I had anticipated based on tips from my recruiter.

After my first interview, there was about 45 minutes of lunch break scheduled with a manager that doesn't provide feedback and is meant to be a way to relax between interviews. We grabbed lunch at the noodle bar in Building 47 and had some idle chit chat where he asked me about my education history and I asked some questions on what it was like to work at Google. This was also the first time I got to see Google's microkitchens, which are essentially corners in different floors of each building that have a variety of snacks, bottled/canned drinks, and coffee. For the most part, I was too nervous about the actual interview that I didn't really explore the different snack options until I went back for my orientation session two months later.

It took about 17 days after I finished the onsite before I had a solid offer, which by Google standards was really fast. From what I understand, my interviewers gave me good feedback and I needed to move on to team matching before my packet could be presented to the hiring committee. Google does have a bad reputation of being slow to hire, with the justification that it keeps the bar higher. I started talking to hiring managers about 10 days after I finished the onsite, and got past HC 5 days after that. Then it took 2 more days to actually receive my initial offer letter.

Overall, I was fairly happy with interview process and was very excited to know I had landed a job at one of the best tech companies to work for in the U.S. I might write a separate blog post about the orientation process if I think there's enough information to talk about that's non-confidential, so stay tuned.