Category: Sliding window coding problem# Design Rate Limiter Design a rate limiter system that controls the number of requests allowed within a specified time window. The rate limiter is...Input: String Output: Computed result
Category: Trie-based coding problemInput: String Output: Computed result
codingMediumVerified Question#3
3. Object Oriented Design - Notification Service
Category: Trie-based coding problem# Problem Statement Design a notification service that supports sending notifications through multiple channels (SMS, Email) and is architected to...Input: Number(s) Output: Computed result
codingMediumVerified Question#4
4. Shortest Substring with N Unique Characters
Category: String coding problem# Shortest Substring with N Unique Characters *This is a variation of the leetcode problem* Given a string s and an integer n, find the length of...Input: String Output: Computed result
codingHardVerified Question#5
5. Rate Limiter
Category: Sliding window coding problemDesign a rate limiter that tracks API requests per client and enforces limits using a sliding time window. Your system must support: - hit(key,...Input: Given input Output:** Computed result
codingHardVerified Question#6
6. Non-Adjacent Team Selection
Category: Tree coding problem# Question You are given n people labeled from 0 to n - 1. Some pairs of people know each other directly. These relationships are given as a...Input: List Output: Computed result
codingMediumVerified Question#7
7. Bounded Repeat Substring
Category: String coding problemA sensor data stream is represented as a string of characters. A contiguous segment of the stream is considered valid if it contains no three...Input: String Output: Computed result
codingMediumVerified Question#8
8. OA [CodeSignal] Prime Jumps
Category: Algorithm coding problem# OA [CodeSignal] Prime Jumps A game is played with the following rules: - A player starts at cell 0 with a score of 0. - There is a row of n cells...Input: Number(s) Output: Computed result
codingHardVerified Question#9
9. Combine N-ary Trees
Category: Tree coding problemYou are given the roots of two N-ary organization charts, each representing a hierarchical department structure. Every node has an integer...Input: List Output: Computed result
codingMediumVerified Question#10
10. Digit Replacement Maximizer
Category: String coding problemA numeric optimization system performs exactly k substitution operations on a number string s. In each operation, choose any digit in s that is...Input: String Output: Computed result
codingMediumVerified Question#11
11. Best Window For Target Count
Category: Trie-based coding problemA log analysis tool searches for the most frequent occurrence of a specific error code within a fixed-size window of log entries. Given an integer...Input: Array Output: Integer
codingMediumVerified Question#12
12. Evens Before Odds
Category: Array coding problemYou are given an integer array nums. Rearrange nums so that all even numbers appear before all odd numbers. The relative order of even or odd...Input: Array Output: Integer
system designHardVerified Question#13
13. Top 5 System Design Questions Jan 2026
Category: Interval-based system design problem# Top 5 Recently Asked System Design Questions - Microsoft These are the commonly asked system design questions from Microsoft interviews and some...Input: List Output: Computed result
codingHarddebouncing#1
1. [OA] Debouncing — Implement a debounce function for user input in Office 365
Users in Microsoft Office 365 often face lag in interface responsiveness due to multiple rapid inputs. Implement a debounce function to enhance user experience by limiting the rate of function executions. Define a method debounce(func, wait) that returns a debounced version of the given function which ensures the function is invoked after a delay only if it hasn't been called within the wait period.Example 1: Input: const debouncedFunc = debounce(() => console.log('Action'), 1000); debouncedFunc(); (followed by another call within 1 sec) Output: No output, because the function has not fired due to debouncingConstraints: - wait is a non-negative integer. - The debounced function can be called at most 10^6 times.
codingMediumclosure#2
2. [OA] Closure — Implement a counter that tracks user actions in Edge
Microsoft Edge needs to track user actions such as clicks to improve user experience through analytics. Using closures, implement a simple action counter. The Counter class should support the following methods: - increment() -> void: Increases the count by 1. - getCount() -> number: Returns the current count.Example 1: Input: const counter = new Counter(); counter.increment(); counter.increment(); counter.getCount(); Output: 2 Explanation: The counter was incremented twice, so it returns 2.Constraints: - The count will never be negative. - There will be at most 10^6 calls to the methods.
system designMediumapi design#3
3. [OA] Client-Side Router — Design an SPA Router for Azure DevOps Dashboard
For Azure DevOps, implement a lightweight client-side router that allows navigation between different dashboard components without a full page reload. The Router class should support the following methods: - addRoute(path: string, handler: Function): void: Adds a new route with its corresponding handler function. - navigate(path: string): void: Navigates to the specified path and invokes the associated handler.Example 1: Input: const router = new Router(); router.addRoute('/home', () => console.log('Welcome to Home')); router.navigate('/home'); Output: Welcome to Home Explanation: Adding a route for /home and then navigating to it triggers the corresponding handler.Constraints: - At most 100 routes can be added. - Route paths will always be unique and valid.
system designSeniorcaching#4
4. [OA] LRU Cache — Design a caching mechanism for OneDrive file access
To enhance the performance of OneDrive, implement an LRU (Least Recently Used) Cache that stores recently accessed files. The cache should have a maximum size and remove the least recently used file whenever a new file is added beyond that limit. Define the LRUCache class with the following methods: - get(fileID: int) -> str: Retrieves the file content for the given file ID and updates its usage. - put(fileID: int, content: str) -> None: Stores the file content in the cache. If the cache exceeds the size, remove the least recently used file.Example 1: Input: const lruCache = new LRUCache(2); lruCache.put(1, 'File1'); lruCache.put(2, 'File2'); lruCache.get(1); Output: 'File1' Explanation: Accessing file 1 keeps it in the cache while file 2 is also stored.Constraints: - Cache size will be at most 3000 files. - Each fileID will be unique.
Related Microsoft Frontend Engineer interview prep