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.
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
codingHardVerified 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
codingMediumVerified 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
codingHardVerified 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
codingHardcaching#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.
codingHardsliding 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.