How to Pass Amazon Onsite Interview

Introduction

Before you can sit for the onsite exam, you must pass the amazon coding interview. Please check this blog on how to pass the amazon coding test.

I was able to successfully pass the Amazon exam in my second attempt. It was a very challenging and refreshing experience. In this blog, I am sharing what I did to prepare for the exam.

Interview Structure

The on-site interview has four separate interview sessions, done by four individual interviewers. Each interview should take about 55 minutes.

Out of four interviews, three will be algorithmic questions. One will be a system design question.

Algorithmic Questions

For Algorithmic questions, you will have to write your code on a paper or on a whiteboard. You can use any programming language. You will have to provide the runtime and/or memory complexity of your program. You will have about 40 minutes to finish your question. If you complete it early, the interviewer may ask you a second question.

Design Question

Same goes for the design question. You have to draw the design diagram on the paper/whiteboard and explain your question to the interviewer. Similarly, you will have about 40 minutes to complete the question.

Leadership Questions

Amazon is very serious about its leadership principles. At the end of each interview, you will be asked some questions about Amazon Leadership Principles. This will take about 10 – 15mins.

Preparation

Algorithms

Basically, follow the same set of preparations that I described here for the coding exam.

Since you won’t have IDE support during the interview, you will have to prepare for it as well. Trust me this is important. When you do practice questions do them on paper. Don’t worry about small mistakes on language syntax. But try to output the best industrial code you can.

Same principals as online coding interview applies. Use meaningful variable names, try to come up the with best code structure you can.

Design Question

Design question can be very challenging because of the ambiguous nature of it.

These questions can be of two flavors. Either it can be a very high-level question like “Design Netflix”. Or it can be quite a low-level question like “Give me a class diagram for a Table”. So either you are designing a complex system with high granular modules. Or you are designing a very simple system with very modules with low granularity.

To prepare for this exam again you have to practice a lot. Do sample amazon design questions available online. Try to glance through SOLID Design principles. Key to pass this interview is to be able to justify your design trade-offs to the interviewer. You don’t have to present your solution with AWS, or any cloud solutions for that matter. Use whatever technologies you are familiar with.

Leadership Principles

You can read about the leadership principles here. Read each one of them and try to absorb the essence of every principle. Then try to think about your past experiences where you had to apply these principles. I recommend you to prepare two examples for each of the leadership principles from past experiences.

Preparation Resources / Books

Like I have recommended in my other post, I highly recommend you to invest on Amazon best seller Cracking the Coding Interview: 189 Programming Questions and Solutions book.

This book covers all the algorithms, data structures that needed for your interview with complexities and it has 189 practice questions. Book is not cheap. But a sound investment considering that it will help to get to Amazon.

Looking for a free book??

If above book is too expensive, an alternative book is Coding Interview Questions. This is not as good the first book, but gets the job done. You can read this book for free for 30 days if you register for Amazon’s Kindle Unlimited Membership Plan’s free trial period.

During the Interview

Think Out Loud

Always maintain good communication with the interviewer. Ask questions regularly. Also, try to think out loud. Explain your thought process to the interviewer. For a particular question if you can think of two or three solutions, explain all the solutions to the interviewer. And tell him what you think the best solution and why.

Make Assumptions

Questions can be ambiguous – sometime on purpose. Clarify ambiguities with the interviewer. You may be able to make some assumptions to simplify the problem. If you are going to make any assumptions, clearly state them.

Use Language Provided APIs

You can use any language-provided library for the algorithmic questions. This is highly encouraging because it saves your valuable time. But if you are going to use any API / Data structure, you should be able to explain the inter-workings and complexity of them to the interviewer.

Leadership Questions

For leadership questions, you will be asked about one of your past experience. And you will be asked lots of questions from different angles of the situation. It will be very hard to maintain a lie; so be honest and truthful.

One Screw up Doesn’t Count

Also, all interviewers have a vote on you. So if you screw up one interview, don’t give up. Give your best shot to remaining interviews.

Other Recommended Readings

https://www.linkedin.com/pulse/20141120061048-6976444-ace-the-coding-interview-every-time/?trk=mp-reader-card

//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=d1e624dd-ae12-4858-a5f9-324544f807a6

How to Pass Amazon Online Coding Test

Introduction

Recently, I was able successfully to pass the Amazon Online Coding test. I was an amazing experience that pushed my mental strengths to the limit. In this blog, I am going to explain what did I do to successfully pass the test. Let’s start with the test structure.

Test Structure

The purpose of the online coding test is to identify candidates who may do well on the onsite interview. It measures the problem solving skills and coding skills of the applicant. Also it has some questions to measure you against Amazon Leadership Principals. You’d be taking the test on a online code pad tool. You can use most of the popular programming languages. You can go to the tool and get familiar with the features before attempting the exam.

Test has two coding questions. First question is easier than the second. You will have 90 mins to complete both questions. Once you’ve submitted the code, you will get some MCQ questions about Leadership Principals. These questions is not timed, you can take as much as time you like.

Preparations

Let’s see how to prepare for the tests. Brush up your knowledge on basic data structures like Stack, Linked List, Queue, Heap, Binary Search Trees, Hash Tables and Graphs. Sorting and searching are the most popular questions in test. So brush up your knowledge on Merge Sort, Quick Sort, Heap Sort, Binary Search.

Tree traversals are also important. Read up on DFS and BFS. Cover all three traversal models pre Order, in Order and Post order. Study Prim’s and Dijkstra’s algorithms for graph traversal. Also read about Divide and Conquer and Dynamic Programming.

You usually asked to provide the time/memory complexity of your code. So study how to calculate it. Also try to remember time complexity of classical algorithms.

Recommended Readings

You could study by your self. But I highly recommend you to invest on Amazon best seller Cracking the Coding Interview: 189 Programming Questions and Solutions book.

This book covers algorithms, data structures needed for the test. It explains how to compute time and memory complexities. Very importantly it has 189 practice questions. Book is not cheap. But a sound investment considering that it will help to get to Amazon.

Looking for a free book??

If above book is too expensive, an alternative book is Coding Interview Questions. You can read this book for free for 30 days if you register for Amazon’s Kindle Unlimited Membership Plan’s free trial period. You don’t even have to have a Kindle. Just log in to read.amazon.com and start reading.

Practice Practice Practice

Practice is the key. Do as much as practice questions you can. Try the practice questions of the book if you have it. Also there are several online web sites (like Leetcode) which provide hundreds of practice algorithmic questions. Make the best use of them.

During the Exam

You can access the internet during the exam. You are allowed to use your own IDE. But the risk is if you couldn’t copy paste your code on time, you will loose everything.

Time is Precious

50% of the exam is about time management. Two questions are hard enough to make it difficult to finish both within 90 minutes. If the first question is the easier one, don’t waste too much time on it.

If you are running out of time, prioritize the important bits of the algorithm. For example, if you are going to implement a sort, you should prioritize the Comparator since it’s going to be to the core logic of the program. To have any chance to pass the interview, you should at least have something to show for, for both questions.

Write Good Code

This is the first time Amazon is going to see your code. So give the best first impression. Follow basics; use meaningful variable/method names, move the redundant code to functions. Try to create classes instead of using complex collections. Write comments where needed. Try to output the best industrial software you can.

Do not Brute Force

You may be tempted to solve problems by brute force. But this is highly dicoraged. Try to provide a optimal solution than the Brute Force. Having 60% completed code of the optimal solution is better than a 100% working code of theĀ  brute force solution.

Leadership Questions

After coding questions, you will have to answer a questionnaire which evaluates whether you are a good cultural fit for Amazon. Try to be your self and answer honestly. If you and company are not going to be a good match, it’s going to be a bad move for both the parties.

Finally

Don’t trust the tool too much save your work continuously as you progress. I took about 3 weeks to prepare my self for the coding test. Try to start early as possible.

Finally Good luck!!!

//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=d1e624dd-ae12-4858-a5f9-324544f807a6