Amazon | Seattle Virtual Onsite | SRE2 All 4 rounds
Summary
I completed a virtual onsite interview for an SRE2 position at Amazon, which consisted of four rounds covering system design, data structures, algorithms, and behavioral aspects.
Full Experience
I recently completed my virtual onsite interview for an SRE2 role at Amazon in September 2020, specifically targeting the Seattle EC2 team. The interview process comprised four distinct rounds, each designed to assess different skill sets crucial for the role. The rounds included a Bar Raiser session, a discussion with the Hiring Manager, a round focusing on Design Patterns, and finally, a session dedicated to Algorithms and Data Structures.
Interview Questions (4)
Design a doggie daycare application with the following requirements:
- Dogs must be vaccinated to enter.
- Dogs less than 4 months old or more than 10 years old go to a special 'kessel' area with a capacity of 20.
- Small dogs enter 'small gods playgrounds' with a capacity of 30.
- Big dogs enter 'small gods playgrounds' with a capacity of 20.
- Dogs can come and go throughout the day.
Implement the basic structure with methods for welcoming and saying goodbye to a dog.
class DoggieDayCare(): self.kessel = 0 self.small = 0 self.big = 0def welcome_doggie(dogId): pass
def bye_bye_doggie(dogId): pass
Design a data structure that functions like a set but also stores an expiration date for each element. The data structure should automatically delete expired elements. Discuss the pros and cons of using a dictionary versus a queue for implementation.
Implement an EventManager class that supports subscribe and publish functionalities, demonstrating the Publish/Subscribe design pattern.
class EventManager(): self.event_dict = {}def subscribe(eventName, callback): pass def publish(eventName, param): pass
e = EventManager() e.subscribe('category', lambda x: print(x)) # should print 'event 1' e.publish('category', 'event1') # should print 'event 1' e.publish('category', 'event2') # should print 'event 2'
Given a list of words and a list of prefixes, return all words that start with each given prefix.
Example:
Words: ["Apple", "Application", "Banana", "Boore", "Book"]
Prefixes: ["App", "Boo"]
Return: [["Apple", "Application"], ["Boore", "Book"]]