Category: Sliding window system design problemThese are commonly asked system design questions from Rippling interviewsInput: Given input Output: Computed result
codingMediumVerified Question#2
2. [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
codingHardVerified Question#3
3. [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#4
4. [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#5
5. [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
technicalMediumVerified Question#6
6. How to pass AI Enabled Coding Rounds From FAANG Interviewer
Category: Algorithm coding problem# Tips For AI Coding Rounds AI coding rounds are not as different from regular coding rounds as you might think. The interviewer still needs to get...Input: Given input Output: Computed result
system designSeniormessaging#1
1. Design a Message Queue for Real-time Notifications in Rippling
Rippling needs a robust message queue to handle real-time notifications for its users, allowing messages to be sent and processed efficiently across different parts of the system. Class Design: Define a class MessageQueue with methods to enqueue new messages, dequeue messages for processing, and check the status of messages in the queue.- enqueue(message: str): Adds a message to the queue. - dequeue() -> str: Retrieves and removes the oldest message from the queue. - getQueueSize() -> int: Returns the current number of messages in the queue.Example 1: Input: enqueue('Welcome to Rippling') Input: enqueue('New Notification') Input: dequeue() Output: 'Welcome to Rippling'Example 2: Input: getQueueSize() Output: 1 Explanation: After dequeueing a message, only one message remains in the queue.Constraints: - 1 <= message.length <= 100 - At most 10^6 messages can be processed in a year.
system designSeniorapi design#2
2. Design a Job Scheduler for Rippling's Employee Tasks Management System
Rippling manages numerous tasks for employees, requiring an efficient job scheduler that can prioritize tasks based on dependencies and timings. This scheduler must operate at scale to accommodate all employees seamlessly. Class Design: Define a class JobScheduler that manages and schedules multiple jobs, ensuring that dependencies are resolved and jobs are executed at the right time.- addJob(jobId: int, dependencies: List[int]): Adds a new job with its dependencies. - executeJobs(time: int): Executes all jobs that are due at the specified time. - getJobStatus(jobId: int) -> str: Returns the current status (pending, executed, failed) of a specified job.Example 1: Input: addJob(1, []) Input: addJob(2, [1]) Input: executeJobs(1) Output: Job 1 executed successfully.Example 2: Input: addJob(3, [2]) Input: executeJobs(1) Output: Job 2 is still pending due to dependencies.Constraints: - 1 <= jobId <= 1000 - Each job can have at most 5 dependencies.
codingHardsliding window#3
3. [OA] Sliding Window — Track active hours for Rippling's employee monitoring system
Rippling aims to keep track of how many employees are active within certain hours to optimize productivity resources. A sliding window approach can facilitate this by keeping real-time data. Problem Statement: Given an array activeHours, where each integer represents the hours when employees are active, calculate the maximum number of employees that can be active during any specific period of time using the sliding window technique.Example 1: Input: activeHours = [1, 2, 2, 3, 3, 4, 5] Output: 5 Explanation: The peak active hours would merge to add up to 5 employees active between hour 1 and hour 5.Example 2: Input: activeHours = [1, 3, 4, 6, 7] Output: 2 Explanation: The sliding window would find two peak hours.Constraints: - 1 <= activeHours.length <= 10^4 - 0 <= activeHours[i] <= 24 - Hours are represented in a 24-hour format.
codingHarddynamic programming#4
4. [OA] Dynamic Programming — Optimize employee tax calculations in Rippling's payroll system
In Rippling's payroll system, calculating employee taxes accurately and efficiently is vital. As the number of employees grows, optimizing this process using effective algorithms becomes essential. Problem Statement: Given an array of unique employees where each employee has a specific tax bracket as an integer, find the most optimal way to calculate the total taxes owed using Dynamic Programming. Return the total amount owed after optimizing the tax determination based on the employee array.Example 1: Input: employees = [1000, 2500, 4500, 6000] Output: 1450 Explanation: The tax calculations for employees will yield a total of 1450 after applying the optimal tax structure.Example 2: Input: employees = [3000, 4000, 5500] Output: 850 Explanation: The system optimizes the calculation to achieve a total of 850 based on the tax rules applied.Constraints: - 1 <= employees.length <= 10^4 - 0 <= employees[i] <= 10^6 - Every employees value is unique.