Interview with Amazon and Waymo during the pandemic (2020)

Interview and preparation experience

Yoyee J
10 min readJul 12, 2020

From the previous post (Interview for software engineer (computer vision), 2020 | by Yoyee J | Jul, 2020 | Medium), I talked about the general information about applying for software engineer in computer vision. In this article, I’d like to share some experience interviewing with the 2 (big) companies. I’ll talk about the interviews and how I prepared for that. In the end, the resources are listed as references.

Overview

Amazon

For Amazon, I applied for Lab126 and computer vision engineer but got rejected. I then spotted an Applied Scientist position in Amazon Scout, which is working on a small cute robot [1].

The Amazon blog [1].

I originally applied for Applied Scientist in Amazon Scout. The HR contacted me and switched me to software engineer position, for localization team. The specific team matches my interest and background, so I started my interview journey.

Waymo

An alumni from National Taiwan University (NTU) referred me to Waymo (many thanks). It is a software engineer position in the camera team in Seattle.

Timeline (again)

Amazon Scout

3/11: 1st phone interview

3/23: 2nd phone interview

4/20: 1-day virtual on-site

4/22: verbal offer

Waymo

4/15: 1st video interview

4/27: 2nd video interview

5/14: 1-day virtual on-site

5/20: verbal offer

Interviews

For many interviews, it is under the following structure, introduction+ behavioral question (15 min.), and followed by technical question (30–45 min). I’ll talk about the interview processes here and how I prepared in the next section.

Introduction

Hello! | Super Simple Songs

I usually started with 1 minute elevator pitch.

“Hello, I’m You-Yi. I’m a 2nd year master’s student in UC San Diego. Recently I’m working on my M.S. thesis about deep learning SLAM. We try to leverage the advantages of geometry-based and deep learning-based SLAM. Earlier this year, we had a paper submitted to IROS 2020. I’d like to introduce more details about this project.”

Most of the time we would talk more about my research project. I’ll talk about the motivation and some details. Since I can guess the background of the interviewer, I can control the portion of technical details. The key is to let them understand what the motivation is and what you have done.

Behavioral

It might be special for Amazon to emphasize the behavior interview more than other companies. Waymo has few or no behavioral questions, so I’ll focus on Amazon here. The behavioral questions may be related to the Amazon leadership principals, and take around 10 mins in one interview.

Interviewers like examples. It is good to be concise with a clear example. Follow-up reflection questions are common. For example, questions like “what have you learned from the experience” or “what would you do if you encountered this scenario again” are common.

Technical

Technical interviews are challenging and important. I’d like to separate into the following 3 parts, including coding, computer vision related and system design questions.

  • Coding:
https://github.com/eric-yyjau

This part is the most common one, which can be regarded as leetcode questions [2]. Most interviewers will let you choose the programming language, whereas some will ask you to use a specific one like c++. The difficulties are usually ‘easy’ or ‘medium’ as on leetcode.

There are many tips regarding a coding interview, which I may not cover here. Upon finishing the implementation, reviewing or testing is important. It’s fine to have bugs or syntax error when writing codes, but it’s better to correct them yourself. If you forget some function syntax, you can bring it up. The interviewers will give you a hint or ask you to look it up.

When the questions are hard, I tend to write the structure in a top-down manner. Then, I can fill up the blank. Although a couple of questions took me till the last minute, I got a chance to wrap up the algorithm and communicate what I could have done better with the interviewer.

  • Computer vision related:

This part is exciting as we may be asked open-ended questions related to computer vision. The interviewer tested my background in the field as well as the potential to solve the challenges they encountered. Questions could be the basic pipeline and details of visual odometry. How to get camera poses from 2 views? How are the 2D images and 3D point clouds aligned? Or how can deep learning approach be applied in the real scenario?

Since the questions are broad, clarification is the key. I tried to make sure we have the same assumption about the input and output before answering.

Writing down an equation is easier than saying it out. I used the website [3] to draw with iPad and share the whiteboard, which ended up really helpful.

  • System design:

The system design questions usually come out of nowhere. An obscure scenario is described, and you, as an engineer, are asked to solve the problem. For example, a robot is programmed to send a notification 5 mins before arriving at the destination. However, we want to change the time to 10 mins before. How can we do that? Since there’s no context of this question, assumption and clarification is necessary in the beginning. We can assume to have a function controlling that feature written as ‘ABC’. Based on the function, we can update the feature by doing ‘DEF’.

Discussion is the key for the type of questions. When we propose some possible solutions, the interviewer may put more constraints. Under the constraints, we can update our solutions to make it robust and scalable.

[16] seems to be a good resource. However, I didn’t have time to go through.

Virtual on-site interview

It seems to be a new concept due to the Covid-19. It basically consists of many rounds of video interviews in a row (like 5 rounds). I feel the most important things are water and lunch. I practiced concentrating following the schedule for a couple of days. Basically, I sit and code for 3 hours in the morning, take 1 hour break, and then code for 2 hours in the afternoon. In the real interviews, the time went faster than I expected.

Some said “I’m sorry we couldn’t have lunch together. It is usually the most interesting part in an on-site interview” :)

I’ve heard there are whiteboard coding questions during an on-site interview. However, I didn’t encounter any of them. I only have whiteboard computer vision questions.

Preparation

My projects

It’s common that the interviewers ask about the relevant projects. I usually start with the motivation of the project, and basically elaborate the thing on the resume. I mainly focus on introducing my thesis and the paper I submitted. Therefore, I prepared 1-min, 3-min, 5-min versions to introduce from high-level to details [6].

Coding practice

  • Leetcode

I was not confident about coding interview due to some failures last year. Therefore, I decided to fill up the hole when I started my job search. However, I didn’t have a good plan to practice until I received the interview invitation from Amazon. I targeted the questions for Amazon listed on some websites and had my Leetcode notes [4] sorted in categories (inspired by Leon Yang). I tried to list out the key thoughts in one single line and some functions I forgot. This note can keep track of the progress and serve as a quick review before the interview. The youtube channels [7][8] from Bo Qian are really informative for modern c++ programming.

One key part in the plan was the mock interview with Chun-Hsiang, who is a strong c++ programmer at Google. It was during the practice that I spotted my blind spots and realized what to work on. He gave me a medium question from leetcode. I was stuck in the beginning and shared some random thoughts. I misunderstood the question and clarified twice. I had tons of syntax errors. In the end, I didn’t finish the implementation within 45 mins.

The manuscripts of his interview comments.

Besides the basic procedures, from clarifying questions to implementing algorithms, he gave me several suggestions. I can give 2 to 3 simple examples to have better clarification. I can explain the function or for loop in a whole in order to save time. Don’t forget the semicolon; In the end, he gave me a warm encouragement which boosted my confidence. Thanks to Chun-Hsiang.

  • Clean Code Handbook [5]

I have a handbook printed out, which includes 50 common questions. If I don’t have time to practice coding, I read through it to get the key ideas. The questions and concept repeat in the interviews. The book includes brilliant solutions. One of the most difficult part for me is the indexing of binary search. I practiced again and again using paper and pencils or the coding pad.

Computer vision questions

In order to refresh the understanding in computer vision, I went through the notes from a Stanford course, From 3D Reconstruction to Recognition [9]. It covers the background from single view to stereo view geometry. The class Advanced Computer Vision (CSE252C) I took in UCSD by Manmohan Chandraker is really helpful. Sadly, the resources may not be publicly available.

I had a mock interview with my lab-mate, Ishit, for computer vision questions. He threw a couple of questions related to system design under certain constraints. For example, how do you calibrate the stereo cameras? How do you do sensor fusion from GPS, IMU, and cameras? These are hard and practical problems. Inspired by these questions, I found some resources online [10,11,12]. Although I didn’t encounter these questions in the interviews, I hope to find out the answers in the industry.

Behavioral questions

When preparing for Amazon interviews, I planned 30% of my effort for behavioral questions. I practiced for the leadership principles and some general questions [13]. I thought of the examples from my previous projects or internship. When it came to teamwork, I talked mainly about the Dreambook project [14]. It was an invaluable experience for me. In the project as a team of 5, we went through a process from brain-storming, discussion, implementation to live demo.

Thanks to Charlene for practicing the questions with me. Her comments made me have more reflection on my experience and better communication.

Questions to ask

I feel the best time in an interview is to ask questions. Before the interviews, I searched for the interviewers on LinkedIn to understand their background and think about related questions. I’m curious about what the team works on and how they work with each other. I can ask “may I ask what are you working on in the team?” or “how will we cooperate with each other?” I put some questions I had in the notes [15]. These are more general questions. For each interviewer, there may be some specific questions. For example, I asked “How do we balance development and stability?” to the engineer in the reliability team.

Notes were taken during the discussion, so that I could understand the team bit by bit. I hope to know as much of the team as possible before I join. This is the best opportunity for me to look into the team. That is, interview the team as they interview you.

Tips (may be useful)

Chit chat

Interviewing is like meeting new friends or future partners. Some interviewers are in a similar age as me and are quite approachable. I met so many friendly and humorous people. They love what they are working on.

“How are you doing?” or “How’s everything going in Seattle?” are good start for me :)

Follow-up questions

When the interviewers are answering my questions, what should I respond? Before, I responded “I see” and somehow stopped the conversation. I was advised to have some follow-ups. For example, when the interviewer is talking about the cameras used for self-driving cars, I may respond “do you mean we mainly use cameras for localization? … Do we considering using lidar or IMU sensors as X company does?” The constant response and follow-up can bring the discussion to a deeper level.

Acknowledgements & reflection

Thanks to many people for help during the process. It won’t be possible if they didn’t refer me to the companies, practice interviews, or share the experience with me. I’m really grateful for that. I remember the day I had virtual on-site. When I stepped out of the room around noon, I saw a plate of dumplings on the table. My roommate Leon was sitting and waiting for me. It was pretty warm.

Hope some of you may find this helpful and good luck for your job search.

--

--

Yoyee J
Yoyee J

Written by Yoyee J

A Optimistic learner, enthusiastic server, and passionate engineer. Taipei → San Diego. M.S. in Electrical and Computer Engineering.

Responses (2)