Uber

Apache ZooKeeper

A centralized coordination service for distributed systems providing configuration management, leader election, distributed locking, and service discovery

MongoDB

A document-oriented NoSQL database designed for flexible schemas, horizontal scaling, and developer productivity

Apache Cassandra

Apache Cassandra logo

Distributed NoSQL database designed for high availability, linear scalability, and handling massive amounts of data across multiple data centers

Apache Flink

Apache Flink logo

Distributed stream processing framework for real-time analytics, event-driven applications, and complex event processing

Apache Kafka

Apache Kafka logo

Distributed streaming platform designed for high-throughput, real-time data pipelines and event-driven architectures

Apache Spark

Apache Spark logo

Unified analytics engine for large-scale data processing with built-in modules for streaming, SQL, machine learning and graph processing

BFS Shortest Path in Unweighted Graph (O(V+E))

Learn BFS shortest path in an unweighted graph: O(V+E) time, queue + parent[] for path reconstruction. Step-by-step for interviews—start now.

Clone Graph

Create a deep copy of an undirected graph represented with adjacency lists

Course Schedule

Determine if you can finish all courses given prerequisite relationships using topological sorting

Data Migration Strategies

Techniques for migrating data between different schemas and systems

Detect Cycle in Directed Graph

Determine if a directed graph contains a cycle

Edit Distance (Levenshtein Distance)

Find the minimum number of operations (insert, delete, replace) required to transform one string into another.

Elasticsearch

Elasticsearch logo

Distributed search and analytics engine built on Apache Lucene for real-time search, logging, and data analytics

Exponential Backoff

Retry strategy that progressively increases delay between retry attempts to handle transient failures and prevent system overload

Find Bridges in a Graph

Find all bridges (critical edges) in an undirected graph using Tarjan's algorithm

Find Duplicate Number

Find the duplicate number in an array containing n+1 integers where each integer is between 1 and n (inclusive)

Find Majority Element (Boyer-Moore Algorithm)

Find the majority element that appears more than n/2 times using Boyer-Moore majority vote algorithm

Find Median from Data Stream

Design data structure to find median from continuous stream of integers

Find the Second Largest Element in an Array

Find and return the second largest element in an array of integers

Floyd-Warshall Algorithm - All Pairs Shortest Path

Find shortest paths between all pairs of vertices in a weighted graph using dynamic programming

Group Anagrams

Given an array of strings, group the anagrams together.

Horizontal Scaling

Scaling strategy that increases system capacity by adding more machines or instances rather than upgrading existing hardware

Implement Stack

Design and implement a stack data structure with push, pop, top, and empty operations

Is Graph Bipartite

Check if a graph can be colored with exactly two colors such that no two adjacent nodes have the same color

Kth Largest Element in Array

Find the kth largest element in an unsorted array

Kth Smallest Element in Sorted Matrix

Find kth smallest element in row and column sorted matrix using heap

Longest Substring Without Repeating Characters

Find the length of the longest substring without repeating characters

LRU Cache

Design a data structure that follows Least Recently Used (LRU) eviction with O(1) get and put operations.

Meeting Rooms II

Find minimum number of meeting rooms required using heap

Merge Intervals

Given an array of intervals where intervals[i] = [start_i, end_i], merge all overlapping intervals and return an array of the non-overlapping intervals that cover all the intervals in the input.

Merge K Sorted Arrays

Merge k sorted arrays into one sorted array using heap

Merge Two Sorted Arrays (LC 88) — Two Pointers

LeetCode 88 merge sorted array in-place: reverse two pointers (merge from end) in O(m+n) time, O(1) space. Step-by-step + examples.

Minimum Number of Platforms

Given arrival and departure times of trains at a station, find the minimum number of platforms required so that no train is kept waiting

Move All Zeros to the End

Move all zeros in an array to the end while maintaining the relative order of non-zero elements

Network Delay Time (Dijkstra's Algorithm)

Find the time it takes for a signal to reach all nodes in a network using shortest path algorithms

Optimistic Locking

Concurrency control mechanism that assumes conflicts are rare and handles them when they occur, using version numbers or timestamps to detect concurrent modifications

Rotate Array by K Steps

Rotate an array to the right by k steps where k is non-negative

Search in Rotated Sorted Array

Given a rotated sorted array and a target value, return the index of the target if found in O(log n) time, or -1 if not present.

Sliding Window Median (LC 480) — Two Heaps, Lazy Delete

Hard LC 480: rolling median via sliding window + two heaps w/ lazy deletion. O(n log k) time, O(k) space. Step-by-step solution—prep now.

Three Sum (Triplets that Sum to Zero)

Find all unique triplets in the array which gives the sum of zero

Top K Frequent Elements (LC 347) — Bucket Sort + Heap

Solve LeetCode 347 Top K Frequent Elements (Medium) with frequency map + bucket sort O(n) or min-heap O(n log k). Step-by-step for interviews.

Topological Sort

Find a linear ordering of vertices in a directed acyclic graph

Trapping Rain Water

Calculate how much rainwater can be trapped between bars of different heights

Valid Anagram

Determine if two strings are anagrams of each other

Word Ladder

Find the shortest transformation sequence from beginWord to endWord using single character changes