If you are waiting for the interview call, you gotta read this. After making sure that my resumes were updated and well according to the standards. I scanned though the job portal for Amazon jobs, after carefully reading the job description; I decided to apply during mid last year. I almost forgot about the application, out of the blue I got a call from the recruiter asking whether I was still available in the market. I replied positively to the recruiter. They sent my profile to the hiring manager and asked me time slots for the interview. Got the response for the interview slots.
I prepared myself for the interview for about a week, brushed programming skills on data structures/algorithms, I took courses with MIT open course ware. Finally, I was at peace before the interview, all the topics I covered were running in my mind like a dream. OK, enough of story, let’s go through the interview questions.
The interviewer was very kind enough to explain about his role in the company and its business values. He asked me about my roles and responsibilities in the team, following are the questions in order.
- Tell me about your responsibilities and teams
- Tell me about the challenging situation with the team and how do you handle it.
- What proactive ideas you gave to the client and what is the response from them. And to follow-up this, he asked me questions about the solutions.
- Tell me about the situation where you took hard decision and its impacts. Specifically, he was asking about breaching the dead line.
- How did you handle changes in requirement and how did it impact the team.
- How did you manage the conflicts in the team.
I answered the questions with utmost diligence. I complimented the team all along, it was the truth. Hey, no cribbing about the management. After that, he asked to open http://collabedit.com for programming. He started to write the problem statement. Following is the problem statement. Create alogrithm for the dependency list of the package installer.
I looked at the diagram and got a bright idea to use an undirected graph. He asked me why undirected graph, I though for a while and decided to use directed. Since there is no reverse dependency, i.e., core is not dependent on Apache so it is always one direction. He asked me to write the program and I started to create a graph class. Following is the solution I provided, I will just write in pseudo code.
- Created a class called “
graph
” which has a list of int
, string
s, and variable to store the max number of the vertices. Integer list has the index for the string
in the string
list, example string
“Root Package
” has index “0
”.
- A function to iterate through the graph and update if it is visited in boolean list. I chose Depth First algorithm for iteration.
- In
Public
specifier; I added constructor, Add edge function, Get list function.
I was not silent in the call but kept on telling him what I was thinking, just to engage him in conversation. You may think why list of vertices, I will give you a pictorial representation of the list.
This list has the path to trace back to the parent, because he asked me to check for cycle. Anyways, the coding went well and he said it is good. Maybe you have a better idea for this problem, but this is what I can come up during the interview session.
Code is available in my github page.