Rippling logo

Rippling Mobile Engineer Coding Questions

41 practice questions for Rippling Mobile Engineer interviews

Rippling 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
coding Medium Verified Question #1

1. [AI Enabled Coding] Card Game


Category: String coding problem
# Question You are building a simplified card game where each player has a hand of cards and the higher-rated hand wins. Each hand contains exactly...
Input: String
Output: Computed result
coding Hard Verified Question #2

2. [AI Enabled Coding] Design Logger


Category: Array coding problem
# Question You need to design a logger library for a new application. The design should be able to allow us to easily add future loggers, like a db...
Input: Array
Output: Printed output
coding Medium Verified Question #3

3. [AI Enabled Coding] Food Delivery Company


Category: String coding problem
# Question You are building a driver payment system for a food delivery company. The accounting team needs to track how much money is owed to drivers...
Input: String
Output: Integer
coding Hard Verified Question #4

4. [AI Enabled Coding] Rule Evaluator


Category: String coding problem
# Question You need to build a rule evaluation system for a corporate credit card platform. Managers should be able to create rules that enforce...
Input: List
Output: Computed result
coding Hard caching #1

1. [OA] LRU Cache — implement the caching layer Rippling uses for its API responses

To improve performance and reduce latency, Rippling needs a mechanism to cache frequently accessed API responses while ensuring the least recently used data is evicted when the cache reaches capacity.
Implement a class LRUCache with the following methods:
- LRUCache(int capacity) initializes the LRU cache with a positive size capacity.
- int get(int key) returns the value of the key if the key exists, otherwise returns -1.
- void put(int key, int value) updates or inserts the value if the key is not already present. When the cache reaches its capacity, it should invalidate the least recently used item before inserting a new item.
Example 1:
Input: LRUCache cache = new LRUCache(2); cache.put(1, 1); cache.put(2, 2); cache.get(1); // returns 1
Output: 1
Explanation: The cache has the key 1.
Example 2:
Input: cache.put(3, 3); // evicts key 2
Output: cache.get(2); // returns -1 (not found)
Constraints:
- capacity will be a positive integer.
- The total number of calls to get and put will not exceed 10^4.
coding Hard sliding window #2

2. [OA] Sliding Window — optimize the user notification system's performance at Rippling

To enhance the user experience, Rippling needs an efficient method to fetch and display notifications for users in real-time, balancing between performance and battery usage.
Given a string notifications representing the incoming notifications and an integer k, return the maximum number of distinct notifications that can be obtained in any sliding window of size k.
Example 1:
Input: notifications = "abcabcbb", k = 3
Output: 3
Explanation: The distinct notifications in the window can be abc.
Example 2:
Input: notifications = "aabbcc", k = 2
Output: 2
Explanation: The distinct notifications in the window can be ab, bc, or ca.
Constraints:
- 1 <= notifications.length <= 10^5
- 1 <= k <= 10^5
- notifications consists of lowercase English letters.

Related Rippling Mobile Engineer interview prep

Start practicing Rippling questions

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

Get Started Free