Amazon logo

Amazon Mobile Engineer System Design Questions

40 practice questions for Amazon Mobile Engineer interviews

Amazon mobile engineer interviews focus on iOS or Android platform knowledge, memory management, offline-first architecture, and mobile-specific system design.

All Roles Software Engineer Backend Engineer Frontend Engineer Full Stack Engineer Mobile Engineer Data Engineer Data Scientist ML Engineer DevOps Engineer DevOps Engineer Product Manager SRE Security Engineer Engineering Manager Data Analyst UX/UI Designer QA Engineer

No verified questions yet for Amazon.

system design Senior api design #1

1. Design a Background Task Scheduler for Amazon's mobile app notifications.


Amazon's mobile app sends various types of notifications to users, such as promotions or order updates. The goal is to design a task scheduler that can queue, execute, and reschedule notifications based on user-defined preferences and system load.
Class: BackgroundTaskScheduler
- Method: scheduleTask(notification: Notification, time: int): void - schedules a notification for a specific time.
- Method: cancelTask(notificationId: string): void - cancels a scheduled notification.
- Method: executeTasks(): void - executes all due notifications in the queue.
- Method: getPendingTasks(): List<Notification> - retrieves all pending notifications.
Example 1:
Input: scheduleTask({id: '1', title: 'Sale Alert'}, 5)
Output: []
Explanation: Task is added to the schedule.
Example 2:
Input: executeTasks() at time 5.
Output: [{id: '1', title: 'Sale Alert'}]
Explanation: The scheduled notification is executed at the correct time.
Constraints:
- The scheduler should efficiently manage up to 10,000 notifications, maintaining O(log n) time complexity for scheduling and execution.
system design Senior api design #2

2. Design an Offline-first Sync Engine for Amazon's shopping cart feature.


As part of Amazon's mobile shopping experience, users expect to have their shopping cart synchronized across devices seamlessly, even when offline. The goal is to design an offline-first sync engine to ensure user interactions with the cart are preserved and updated in a conflict-free manner.
Class: OfflineFirstSyncEngine
- Method: addItem(item: Item): void - adds an item to the cart.
- Method: removeItem(itemId: string): void - removes an item from the cart.
- Method: syncChanges(): void - synchronizes local cart changes with the backend when online.
- Method: getCartItems(): List<Item> - retrieves current items in the cart.
Example 1:
Input: addItem({id: '1', name: 'Echo Dot'})
Output: []
Explanation: Item is added to local cart.
Example 2:
Input: syncChanges() when online.
Output: [{id: '1', name: 'Echo Dot'}]
Explanation: Local cart updated in the backend.
Constraints:
- The sync should be efficient, aiming for O(log n) time complexity per operation.
- Handle up to 10,000 items in the cart.

Related Amazon Mobile Engineer interview prep

Start practicing Amazon questions

Sign up for free to access walkthroughs, AI-generated questions, and more.

Get Started Free