LinkedIn logo

LinkedIn Mobile Engineer System Design Questions

43 practice questions for LinkedIn Mobile Engineer interviews

LinkedIn 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 LinkedIn.

system design Senior distributed systems #1

1. Design an Offline-first Sync Engine for LinkedIn mobile application

As users may often face connectivity issues, LinkedIn wants to ensure users can still interact with their content offline and have changes synchronized when connectivity resumes.
- Method 1: def save_post(user_id: str, post_content: str) -> None: - Save a new post; if offline, queue for syncing.
- Method 2: def retrieve_posts(user_id: str) -> List[Tuple[str, str]]: - Retrieve posts for a user with a flag showing online/offline status.
- Method 3: def sync_changes(user_id: str) -> None: - Sync any offline changes with the backend server.
Constraints:
- The sync engine should handle conflicts gracefully when multiple changes occur for the same content.
- Users' actions should remain responsive while offline.
Example 1:
Input: save_post('user123', 'My first post!')
Output: None
Explanation: Saves the post, queuing it if the user is offline.
Example 2:
Input: sync_changes('user123')
Output: None
Explanation: Begins trying to sync changes made while offline.
system design Senior api design #2

2. Design a Push Notification Manager for LinkedIn's mobile app

As part of enhancing user engagement, LinkedIn wants to build a Push Notification Manager to handle various user notifications efficiently; this will integrate with real-time updates and user preferences.
- Method 1: def send_notification(user_id: str, title: str, message: str) -> None: - Sends a notification to the specified user.
- Method 2: def schedule_notification(user_id: str, title: str, message: str, schedule_time: datetime) -> None: - Schedule a notification for a specific time.
- Method 3: def get_notifications(user_id: str) -> List[Tuple[str, str, datetime]]: - Retrieve all notifications for a user in chronological order.
Constraints:
- All notifications should be pushed in real-time to users.
- Users should have an option to filter notifications by type.
- It should efficiently handle high traffic scenarios where multiple notifications may be sent simultaneously.
Example 1:
Input: send_notification('user123', 'Connection Request', 'User456 wants to connect')
Output: None
Explanation: Sends a connection request notification to the user.
Example 2:
Input: get_notifications('user123')
Output: [('Connection Request', 'User456 wants to connect', datetime.now())]
Explanation: Returns a list of notifications for user123.

Related LinkedIn Mobile Engineer interview prep

Start practicing LinkedIn questions

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

Get Started Free