Message on Whatsapp 8879355057 for DSA(OA + Interview) + Fullstack Dev Training + 1-1 Personalized Mentoring to get 10+LPA Job
0 like 0 dislike
1,378 views

All interview experiences of Amazon can be found using the tag "amazon_interview_experiences" in the search bar.

Here is the link : https://www.desiqna.in/tag/amazon_interview_experiences

in Interview-Experiences by Expert (34,270 points)
edited by | 1,378 views

1 Answer

0 like 0 dislike

Round 1 - DSA

 

Interviewer introduced herself, I gave a bit of my introduction.
There was a person shadowing as well, no introduction for him.

 

Behavioral Question: Tell me of a time when you gave out of your way to develope something for improving customer experience.
Follow up questions: How did you measure if it really improved user experience.

 

With above all, 20 mins were over.

 

Interviewer said that we will be solving 2 coding problems.

 

ProblemRussian Doll

 

Solution Process:
The solution I proposed and coded was O(n^2) in Time complexity and O(n) in space complexity.

 

The interviewer kept on insisting me to improve the solution for the complete time, which I couldn't do.

 

Hint given by Interviewer: Can compromise with space to get better Time complexity.

 

I feel the hint was not at all helpful, this was when I was interviewing. But now, I feel more that way because, the best solution with O(nlogn) Time Complexity too takes O(n) space, so I'm not sure what she meant.

 

But, all in all, I feel it was a bit unjust to ask such a hard question with expectation of asking 2 questions. Though I was not even able to solve even the first one.

 

Round 2 - LLD

 

Interviewer introduced himself, and also let the person shadowing him introduce themselves. After that, I introduced myself.

 

Problem: Design a Calendar app. A user can create, view all events, get notifications. A user can have multiple calendars like, Personal and Work.

 

Solution:

 

User
	UserId string
	Name string
	Calendars List<Calendar>
	
---

Calendar
	CalendarId string
	Name string
	Events List<EventId>
	
	func CreateEvent(Event)
	func GetAllEvents() List<Event>
	
	NotificationService
	
---
	
Event
	EventId string
	Invitees List<UserId, State>
	Name string
	Description string
	
---

EventStore
	Map<EventId, Event>
	
	func Save(Event)
	func GetEvent(EventId)

---

State --> {YES, NO, MAYBE, NOT_ANSWERED_YET}

---

NotificationService
	NotificationProvider 
	
---
	
NotificationProvider
	func Notify(message, userId)
	
Implementations of NotificationProvider	could be Push Notifications, SMS notifications, etc etc
---

 

Follow up questions:
1. What if the event is recurring
Ans: Move Start Time and End Time (which have instance of date as well) from events, and marked the Event as EventTemplate. Created RecurringEventTemplate, which has StartTime and EndTime, and then Date is determined by Schedule, which is part of RecurringEventTemplate.
2. You must have seen that, when you create an event, you can also add a location, how do you do that. Let's say, you type "Del", you get suggestion of "Delhi".
Ans: Created a meeting Location entity, that stores all locations, and has a method GetLocationPrefix(string) string, so you could fetch suggestions from here.

 

Behavioral Question: How do keep learning and be up to date?

 

Result

 

Got NOT INCLINED in both the rounds, so the third scheduled round was cancelled.

by Expert (34,270 points)