Google Japan Internship Interview Experience
How I got the offer (and declined it)
Note: By the way, I am willing to give a cheap paid mock interview to anyone who requests it! Please approach me at any social media :D.
Introduction
If you’ve read my previous post, you know that I also applied for Google Japan internship last year and failed miserably on my first phone interview. This year, I decided to apply again for an internship. I didn’t hope too much. I just want to gain more experience by doing interviews as much as possible.
And magically, I got an offer!
Preparation
Exactly the same preparation listed in my previous post. I apply to Google via its careers site without any referral. Here’s my very simple and tidy resume. This is the resume I’ve sent to all of my 2018 job applications.
Overview
The steps are basically the same as other Google internship recruitment process.
- Online coding test.
- 2–3 phone interviews. Each phone interview lasts for 45 minutes. All people I know (including myself) got only 2 interviews.
- Host matching interview
- Offer!
Online Coding Test
The test is very similar to a HackerRank test. There are two questions. You need to submit a code to the system, and the score is determined by your code’s output for each test case. The time duration is ~2 hours. One distinction is that the system does not care about time limit. It only cares about correctness.
Maybe I was lucky, but I solved both questions in under 30 minutes. The questions themselves are not difficult. I’m not sure if I gave the optimal solutions or not, but I managed to continue to the phone interview step anyway.
Phone Interview
Yep, this is the most important part of every software engineering internship: technical phone interview!
Your knowledge of algorithms, data structures, and system design are going to be tested. It’s basically a coding test, but you also need to speak out loud your approaches to the interviewer. Trust me, while I can write a clean and optimal code at HackerRank, it’s very different here. You need to have a good combination of speaking out your thoughts clearly while typing the code, and hopefully producing a clean code. In my case, while my basic idea is often correct, my written code is always messy and buggy. But don’t worry, the interviewer will usually ask you to fix the code, or at least ask if you’re sure your code is correct. 😊
Prior to the call, you will get a link to an empty Google Docs. Yes, you’re going to write your code there. I can tell you it’s a bit uncomfortable at first, but if you’re applying to Google, you need to ensure you’re familiar and comfortable with this.
Also, I heard that interns do not get system design questions. While in general this isn’t true (see others’ experiences), I always get algorithms questions.
First Phone Interview
My first phone interview was with a Google senior SE residing at Tokyo office. The caller’s number was a Japanese number. He’s very American (CMIIW but Americans are so nice that they always say things like “Cool!”, “Awesome!”, “Wonderful!” 😂). He only gave one question which is about DP (Dynamic Programming), even though there were a lot of follow-up questions (what if the input is huge, any way to speed up the process, etc.). I think he’s very enthusiastic about the question (or me? :P). The call lasted for 50 minutes. I think my answer was good enough.
It had been two weeks and I hadn’t heard back from anyone. I asked my recruiter, and he said the interviewer hadn’t given the feedback yet. I suddenly became so hopeless. Probably the interviewer thought I sucked? After 1 month, I got an update from my recruiter saying that I would get a second phone interview. I guess my interviewer forgot to submit the feedback directly 😂.
Second Phone Interview
I requested to use Google Hangouts instead of phone interview, and my recruiter arranged the event. I clicked on the Hangouts call link, waiting for someone to join. Finally, my interviewer accessed the Google Docs, and he informed me that he could not access the Hangouts link. We tried some work-arounds, but none of them worked. Three minutes were wasted. He finally asked my phone number to do a phone interview, and I hesitantly gave it. The phone call came from NYC, and as I’d expected, the voice was very shaky.
To be honest, I am sure I did very poorly on my second interview. I had to ask questions like “sorry”, “can you repeat it back” multiple times. I can guarantee how annoyed my interviewer was 😭. He gave me two questions. I was able to give a correct answer to the first question and only a ‘pseudo-code’ for the second question due to the time limit. The call lasted for 42 minutes, and I could feel he’s very rushed.
The results came very quickly. Less than one week after the interview, I got an email from my recruiter who confirmed I did well on both of the interviews, and I will be matched with a potential project/team!
Some tips from me:
- Try to ask your recruiter if you can use Google Hangouts instead of regular phone call. If you have a stable internet connection, Hangouts is a much better choice.
- The normal duration of each interview decision should be 1–2 weeks. If you don’t get a follow up soon, don’t hesitate to contact your recruiter.
Host Matching
You should be really proud if you’ve passed the phone interviews. I mean, after you’ve squeezed your brain so hard, you might think this step should be an easy one. However, from what I’ve heard, host matching is the most notorious step for Google Japan internship (at least for Indonesian applicants). It’s not that they will ask any hard technical question to you. The chance of getting a call from potential host is just small. Last year, two of my colleagues passed their phone interviews, but they got rejected because no team was interested in them.
First, the recruiter is going to give you a survey to fill in. There are a lot of things that you just need to check, mainly your interests and skills. For example, you need to check your topic preference, e.g. Security, Computer Vision, and Speech Processing. Next, you also need to create two essays explaining your experiences and what you want to do at Google. Be thorough yet concise when giving your answer. Explain everything you have done, but not too long and confusing to be read.
Here’s my answer for my experiences essay (I did not save the other essay’s answer, sorry 😔).
I have a lot of experiences in the field of NLP. I am familiar with NER, relation extraction, text classification, and summarization. Here are some of my projects (acting as project lead).
1. ViaChat: Given a text input, we generate questions automatically to test user’s comprehension of the text. We generate questions with relation extraction and further processing. Chosen as top 5 finalists in Imagine Cup Indonesia.
2. Twitter hashtag multi-label classification. Given a tweet and a number of possible hashtags, we determine what hashtags the tweet should have.
3. Multi-document summarization using deep learning, specifically CNN and GCN. This is my undergraduate thesis.
I also have experience in software design and testing. Back in my internship at GDP Labs when I was asked to create Apple Push Notification provider, I applied a lot of design patterns (e.g. Builder, Factory, Decorator) in the implementation. I also enjoyed designing unit and integration test, e.g. creating mock services and determining edge cases.
Besides my internship experience, I also do a lot of web and mobile projects. I served as a full stack developer for a 3D building height validator web application project. I used React for the front-end side and Cesium to enable 3D and map visualization, and Laravel for the back-end side. I’ve also created a mobile application for a car travel business. I am familiar with multiple web frameworks (JS MEAN Stack, Rails, Django, Spring).
The key here is to be patient. I did not get any update after 1 month. This resulted in my decision to accept another offer (full-time) from a Singaporean startup (Shopee) because I thought I would 100% fail this step, and therefore not eligible for the internship (I’ll talk about this later).
I suddenly got scheduled for a call with a host working at Google Maps team after 6 weeks of waiting. I am utterly in shock. Were my essays really that good? The next two days, I attended the call. My host explained the project and it was basically a Question Answering NLP project. He only asked two very basic questions for me:
Why Java? Any other proficient programming language?
Tell me about your NLP projects.
After that, I asked only one question and I felt I understand the project very well. And that’s it. The call just lasted for 5 minutes. I was wondering if this is a good thing or not…
And in just two hours, my recruiter gave me an update.
Garmastewira-san,
Great news! We have found you a host (XXX) who is interested in your profile.
We are now ready to extend you with an offer. So that you can also sign it and start VISA process soon.
I was like, whaaatttt????
Offer and Decline
The offer letter came the next day. It is just like any standard offer. It shows salary, housing, commuting allowance, benefit, work duration, rules, etc.
If you sign the offer, you will expect a lot emails coming from immigration, candidate help, background verification, etc. You really don’t have to worry about anything. For example, if you work in Japan, they will take care of your CoE (Certificate of Eligibility). What you need to do is just filling in and submitting documents each email requests.
At first, I decided to accept the offer because I was blinded by the perks promised. However, I later became concerned that I had already accepted a full-time job and canceled my master’s degree. I asked Google whether it’s possible to do the internship first and then continue my full-time at the other company. However, Google did not agree to this, as one of the requirements of the internship is this:
Currently enrolled in a full-time Bachelor’s or Master’s degree program in Computer Science or related technical field and returning to a full-time degree program after completion of the internship.
They actually gave me an option if I at least promise to pursue a master’s degree after graduation, regardless of when I will start the study. Sadly, I felt that I don’t think I want to pursue a master’s degree now. I’m really tired of school. I’m way more excited on directly solving real problems.
It was a hard decision, but I finally choose to decline Google and accept my full-time job offer at Shopee. So yeah, this is the end of the journey.
Final Words
You need to practice a lot to pass the phone interviews. But other than that, make sure that you’ve done a lot of interesting projects to attract potential hosts. Having projects with diverse topics might help you get matched up with many hosts. There can be multiple interested hosts (thus multiple host calls).
Finally, good luck for anyone who’s planning to apply for Google Japan Software Engineering Internship next year!
Miscellaneous
I haven’t tasted the awesome office and perks in Google Japan (I heard every Friday is Sushi day 😭😭). However, I was a Noogler for several days prior to declining the offer. Google actually has an awesome “Google Candidate Help” site to help newbies. Here’s my profile on the site.
Yo Google, I promise I’ll come back to you soon!