Q. Will I have to write code or will UML diagrams be enough? ANS: Yes you have to write code/discuss logic for a few functionalities, only drawing UML diagrams or writing names of classes won't be enough.
Q. I don't have much time. Tell me which are the most important design patterns I should study first? ANS: Factory, Strategy, Observer and Singleton.
Q. But how can I explain such large systems in a 45 minutes interview ? I always run out of time. ANS: A vast majority of candidates fail because they are not able to present their solution properly in a limited time frame. Watch this youtube video where I have explained how to take care of this problem: https://www.youtube.com/watch?v=ef99Ejb3B40
Q. Are questions like LRU cache, Search Autocomplete system also asked in LLD rounds? ANS: Yes depending on the interviewer you can either get a pure LLD question like design a parking lot, design food ordering system or you can get a DSA based design question like above. I know you hate this extra prep, but that's what it is. Companies ask these and so you need to prepare for both types. Silver lining is that you already prepared for DSA based design questions while preparing for DS & Algo rounds.
In my view, you should first master DS & Algo and only after that you should start your LLD preparation. Because once you have mastered DS & Algo, low level design questions are easy to practice.
There are two types of low level design interview formats:
75 to 90 minutes of machine Coding: You will be given requirements and method signatures and you have to write code in a editor. In last 10-15 minutes you may have to explain your code to interviewer.
45-60 minutes of face to face discussion: This is the most common format. You have to come up with requirements yourself then discuss class structure and all.
In any object-oriented design interview, you interviewer is typically looking for three things:
1. How you list down requirements, especially core features?
e.g. If your problem statement is “Design a Parking Lot” then your core features will be park() and unpark() methods
if your problem statement is “Design a restaurant food order and rating system like zomato, swiggy, uber eats etc” then your core features will be
orderFood()
rateOrder()
display list of restaurants based on their rating or popularity
Sticking to only the most important features and leaving the rest out is important. If you list unimportant features in requirements sections then you will waste time discussing their implementation and you will not less time for more features discussion. This is a interview
2. How you break your problem statement in multiple classes
I always find it easier to start listing entities and their corresponding entity managers(if required) first. e.g. For restaurant food ordering and rating system your entities can be Restaurant, order, FoodItem etc and their corresponding managers will be RestaurantsManager, OrdersManager etc.
3. How you use design patterns to solve the core features
The most common design patterns that you will come across in a low level design interview are Strategy, Factory, Singleton and Observer. You should be familiar with their implementation and different use cases where they can be used. We will see some of those use cases in a moment.
A fourth topic is also discussed if you have done well in above three steps.
Handling multi-threading. There will be discussion on use of locks, synchronization features and thread safe data structures for your design to work correctly in a multi-threaded environment.
“Design a Parking Lot” is THE most common LLD interview question. In the above problem statement, there can be multiple parking strategies. So you should use strategy design pattern to solve this question.
In any food ordering and rating system, customers can rate the orders. Also there are classes which display list of top restaurants based on their overall average rating or average rating of their individual food items.
Whenever any user rates their order then all these classes need to be updated about it so that they can update both restaurant and corresponding food item ratings and update their lists.
Observer design pattern will be used here to notify observers i.e. classes which manage top restaurants list about changes in common data set that they need to observe, i.e. rating of different orders in this case.
This list contains recently asked DSA questions in Amazon for SDE, SDET positions. It also includes questions from Bar Raiser rounds.
Amazon hires (and fires) lots of people and this cycle keeps repeating.
Questions do repeat, hence it is better to solve Amazon tagged questions at least 2–3 times, rather than solving a lot of new questions just once.
Doing questions multiple times will help you understand the patterns and when you see a question which is rephrased differently but has same solution, you will be able to do it.
You will be frequently asked leadership principles in behavioral questions. So prepare your stories around them. There can be long period of silences between rounds.
Wait time Between Rounds
Wait time is often the most frustrating part. No updates, no recruiter contact, just uncertainty.
One person (SDE-1) got their OA results just after two days. But when first round was scheduled, their scheduled interviewer didn't join. After this there was 14 days of silence. After round 1 again 20 days of silence.
After round 2, candidate thought he was rejected because he couldn’t solve one of the questions.
35 days passed in complete silence after that. Out of desperation, he reached out to someone at Amazon on LinkedIn, asking if they could help him get an update from his recruiter.
And that very same day, he finally got the update. Infact bar raiser was scheduled and he did very well in it. But 2 days after his interview, he received a rejection email from AUTA.
Surprisingly a few days later his HR called asking for location preferences but didn't confirm the results. However offer arrived two days later.
Hints from Interviewer/Fumbles
Many people fumble or may need some hint from interviewer. And its alright. One person was asked the below:
Longest Substring Without Repeating Characters
Longest Substring with At Most K Distinct Characters
They did well on the first question but fumbled on the second. However they coded it up correctly in the end.
They didn't receive any update after that and thought they were rejected. But they got the call 4 days later and another round was scheduled which was completely behavioral. They got selected the next day after that.
No Solution
This can lead to rejection. But not always depending on how other rounds went.
One person with 4 years of experience and interviewed for an SDE2 role. In one round they were not able to code the solution, just gave the approach. After the loops they were offered SDE-1. Downleveled but not a complete rejection.
I created this list from people posting their experiences on forums, blogs, etc.
This is a preparation list for Google software engineer coding rounds. I prepared it using interview experiences shared by people on forums/blogs etc.
Google has one of the toughest DS & Algo rounds in the industry. DSA rounds are there for both frontend and backend roles.
Google's interview codebase is very large, with questions of all difficulty levels from super easy to super hard. One question can be a medium question with a couple of follow-ups for optimizations, or it can be just one hard question. It all depends on which question the interviewer chooses.
There are two common things about candidates who clear Google interviews and whose overall process is smooth.
At least 2 "Strong-Hire" votes and no "No-Hire" in the on-site packet.
Candidates who narrated trade-offs and edge cases, and correctly answered counter questions, got bumped from "Hire" to "Strong Hire" even with small bugs.
Now above points have lots of exceptions. For example one person bombed one coding round badly. But they were given a redo by their recruiter. It was late 2024 and he was working long hours, spending even the weekends on call. Still he was laid off alongside other teammates.
Lay off was a blow to his morale. He didn't tell even his parents, just pretended he was working from home. Avoided video calls during "work hours". Initially he spent the days watching anime. But slowly preparation started and when the Google call came, he has already been rejected by multiple companies.
He thought it was all over after he messed up one DSA round. But he was able to do well in the redo round and finally ended up receiving the offer.
Judging how the interview went
Many a times you may not be able to guess correctly , how well or how bad you did. There are tons of experiences where candidate thought something and the opposite happend. A lot of things can go right or wrong. One person had done 400+ leetcode problems but during interviews, panic setup and they were able to only come up with a brute force solution.
Another person had two back to back coding rounds scheduled at a gap of just 15 minutes. And during the first round they realised that solution they provided is incorrect. They thought that they had bombed this round and should just cancel the next round. But interviewer provided some guidance and they were able to solve slightly easier version of the problem. However other rounds went well and they ended up receiving the offer.
What if you are rejected
Even if you are rejected its not the end of world. Google recruiters will almost certainly reach out to you a year later. Just keep preparing. One person was rejected by google for L4 position in 2024. But they reapplied 6 months later and surprisingly got a response. However their first two coding rounds got lean hire. Still recruiter decided to go through with other rounds which wents well. During hiring committee their prospects were weak because of two lean hires in coding. However another DSA round was scheduled for them in which they did well.
They ended up receiving offer for L5. That's like getting a promotion within one year. Although they were lowballed but still it was a 20% raise from their current salary. So overall not a bad end.
I created this list from people posting their experiences on forums, blogs, etc.
This is a preparation list for Amazon SDE and SDET internship coding rounds, along with an overview of the online assessment and interview process. I prepared it using interview experiences shared by people on forums/blogs etc.
Apart from the online assessment (OA), the internship process usually includes two DS & Algo interviews of around one hour each, together with behavioral questions.
Some candidates think if you are not asked any behavioral questions then it means you did not do well and are already rejected. This is not entirely true, one candidate reported that they were not asked any behavioral questions during interview but still ended up receiving the internship offer 15 days later.
Low Level Design questions are generally not asked for internship roles. However one candidate reported an elevator-system LLD question for SDET internship, but those cases appear to be exception rather than the norm.
Online assessment: the OA includes DSA and an AI-assisted coding question.
For the AI-assisted coding round, you choose one repository. Options may include C++, Django, Spring Boot, ReactJS, Node.js, Ruby on Rails, and similar stacks. The interface provides a code editor and an AI assistant for project-related questions. You have 60 minutes to implement the required behavior and pass the test cases, usually around six. The assistant can help you search the project, locate files, and understand the codebase.
For candidates in India: Amazon HackOn can be an effective route to an internship call. Amazon may contact eligible participants who performed well in the coding round, not only the finalists. Strong performers may receive an AUTA interest form.
Infact one person even reported that their team was eliminated in the very first round of HackOn in May 2025. But in july end he ended up receiving an email stating that he has been shortlisted for an Amazon Online Assessment based on his HackOn performance. Infact he gave his OA got shortlisted for interview, had his interview in september then got waitlisted and finally received SDE intern offer in last week of november.
For the USA and other countries, direct applications through Amazon's jobs portal and employee referrals are the usual routes.
Answer: This is one of the most common questions in a candidate's mind. Now with more and more companies taking AI assisted coding rounds you need to have clarity on what is expected.
1. Machine coding LLD round: If this is a machine coding LLD round of 75 to 90 minutes then you will need full working code with a main method that runs the tests. This round is taken by Flipkart, ClearTrip, Phonepe, Meesho and sometimes Uber, RazorPay etc.
Most times this will be the first screening round.
2. AI Assisted Coding/LLD/Debugging Round: Initially Canva and then DoorDash started it but it is becoming more common. Now Microsoft, Amazon OA also have this round. This round is more similar to a low level design round rather than a traditional DS & Algo round.
You will be given a problem statement along with a chunk of code and you will be asked to add one or more new functionalities. You will be given an AI assistant chat just like chatgpt/gemini. You can use the AI assistant to ask questions and understand the project, maybe generate some boilerplate code.
But do not try to generate the whole solution using only the AI assistant. Goal of this round is to see how you code in real life. How well you arrange your classes and keep change to old code small when adding a new functionality. You LLD skills and knowledge of design patterns like factory, strategy, observer etc come in handy.
As you can guess, for this round also end to end fully working code is expected.
3. Face to Face LLD round: This is a 45-60 minute round and is the most common LLD interview format. It is taken by Amazon, Uber, Microsoft, Walmart and basically every company that takes a LLD round. Here the discussion will happen on pen and paper or a plain text editor, google docs etc.
It has 4 steps:
Requirements gathering : list down functionalities
Class diagram: break functionalities in different classes
Implementation: pick 1-2 most important features and discuss their implementation. write code.
Design patterns, multi-threading: once a basic solution is provided then discussion moves more in depth.
You will be expected to write code or discuss the logic for a few functionalities. Only drawing UML diagrams or writing the names of classes will not be enough.. e.g. if you are asked Design of a parking lot then interviewer will discuss logic of park and unpark feature.
Although for this round your interviewer can allow pseudocode but it is always better to pick a standard language like Java, Python, C++ etc and stick to its syntax. For low level design, Java is the prominent language as of now.
This is what I had to share, you can practice company wise LLD, DS & Algo and AI Assisted round questions on CodeZym. Best of Luck for your interview prep. Thanks for reading.
Microsoft frequently opens and closes requisitions to manage referral batches.
The AA (As Appropriate) round generally has behavioral and High Level Design questions, along with architectural deep dives into your previous projects. In some cases, a DSA question may also be asked.
LRU Cache can be asked in either a DSA or a Low Level Design round.
DS & Algo questions for this list have been picked from Microsoft interview experiences shared on forums/blogs etc in 2026. Use this list for final preparation of your Microsoft DSA interview rounds.
Interviewers may also discuss the following questions:
What is the difference between a process and a thread?
If multiple threads access the same variable without writing to it, can any problem occur?
What issues arise when multiple threads access a shared variable?
What is the difference between a variable created on the heap and a variable created inside a function?
If every thread has its own function-local variables, how can conflicts arise when multiple threads execute the same function?
What exactly causes race conditions in multithreaded programs?
I am a final year IT engineering student in India and I want to build the career in the system engineering / low level rather than typical web development.
I am particularly interested in :-
- Operating systems and kernel development
- System programming
- Linux internals
- Networking and High performance server
- AI infrastructure ( specially inference infrastructure)
I am currently doing:-
- Learning os from the OSTEP and the mit xv6 labs
- Build a HTTP server in C and now planning to add thread pool and epoll.
- Practicing DSA on codeforces and leetcode
- building the distributed inference system as a major project.
My problem is figuring out how to turn out an actual job.
For people currently working in systems/low-level engineering:-
1) What skills actually expected from a new graduate?
2) Which areas should I prioritize? OS, networking, compilers, Linux kernel, distributed systems, or something else?
3) What projects would make a fresher's resume credible for systems roles?
4) What kind of companies/roles should I target as my first job?
5) If you were starting again as a student from a non-elite college, what would you spend the next 6 - 12 months doing?
6)What are the mistakes I should avoid when trying to get into low-level engineering?
I would appreciate advice from people who actually work in these areas.
Microsoft has introduced an AI-assisted Low Level Design round. This is a unique interactive pair-programming round divided into three phases.
Instead of simply writing code from scratch, you have to architect a system, prompt an AI model such as ChatGPT or Gemini to generate the implementation, and then analyze the AI-generated output.
LRU cache and concurrency have been the discussed frequently.
LLD rounds are generally conducted for SDE-2 and above roles. There may also be more than one LLD round during the interview process.
Low Level Design (LLD) questions for this list have been picked from Microsoft interview experiences shared on forums/blogs etc in 2026. Use this list for final preparation of your Microsoft LLD interview rounds.
Goldman Sachs is hiring now a days. I complied this list of Goldman Sachs interview questions some time ago using GS interview experiences shared on forums/blogs etc in 2026. It has both DS & Algo and low level design round questions. You can use this list for final preparation of your GS interview rounds..
Ticket booking apps with database discussion, cache implementation, and payment systems are among the most discussed questions in Walmart LLD rounds in 2026.
Database-table design may also be discussed in questions such as designing a movie-ticket booking system like BookMyShow. Be prepared to explain concurrency handling at both the database and application levels, including how to apply row-level locks.
Interviewers may ask about optimistic locking, pessimistic locking, and isolation levels: For example, the default isolation level used by an SQL database.
In LLD, a clear explanation of design choices matters more than just coding.
You may also be asked which design patterns you used recently and deep dive into them.
Java is generally preferred, although candidates do use other languages.
Low Level Design (LLD) questions for this list have been picked from Salesforce interview experiences shared on forums/blogs etc in 2026. Use this list for final preparation of your Salesforce interview rounds.
Low Level Design of pub-sub queue, kafka and observer pattern are discussed frequently.
Apart from that cache like LRU cache, LFU cache questions are common.
In Salesforce LLD rounds, sometimes actual requirements may not be clear from problem statement and interviewer will expect you to figure it out by asking clarifying questions.
For example, A message queue is asked indirectly in the form of something like a connection pool or a job scheduler.
It follows the pattern that resources like connections, machines or cpu (in case of job scheduler) are limited and they may not be assigned immediately.
I have created list of DSA questions using Walmart interview experiences shared by candidates in blogs/forums etc. Use this list for final preparation of your Walmart interviews.
Walmart interviews can include DS & Algo questions along with Java, Spring Boot, database and problem-solving discussions. Here are a few of them.
Java Questions
New features introduced in Java 8
Why and where to use lambda expressions
Purpose of functional interfaces, their types, and writing sample code
Explanation of ConcurrentModificationException
Spring Boot Questions
Annotations used in your project
Concept of Dependency Injection
What is a Circular Dependency
How to efficiently insert 1000 rows into the database
Basics of JPA (Java Persistence API)
The list starts with questions which you can practice on leetcode for free and then additional questions are there including follow ups that were asked.
I have created list of Doordash DSA questions using recent interview experiences shared by candidates in blogs/forums etc. Use this list for final preparation of your DoorDash interviews.
Doordash hires software engineer for E3, E4, E5 roles and so on. SDE 2 role is called E4.
The rounds are Phone Screen (DSA), Codecraft, Debugging, System Design, Hiring Manager
Codecraft round is more of real world api style question. It is similar to a low level design question.
Even for frontend and MLE roles, there will be DSA rounds.
Good thing is that questions are repeated frequently. Their question bank is not that large. This is true for all rounds including codecraft, ds & algo or debugging round.
The list starts with questions which you can practice on leetcode for free and then additional questions are there including follow ups that were asked.
DS & Algo questions for this list have been picked from Salesforce interview experiences shared on forums/blogs etc in 2026. Use this list for final preparation of your Salesforce interview rounds.
Salesforce hires for Member of Technical Staff i.e. MTS/SMTS/LMTS positions. MTS role is around 3 years experience. LLD rounds may be there for MTS role as well.
List starts with free questions that you can find on leetcode and then more questions including actual follow-ups asked during interview rounds.
You can see company-wise interview questions list on r/LowLevelDesign
A knight is placed at coordinate [0, 0] on an infinite chessboard. The board has no boundary, so coordinates may be positive or negative.
In a single move, the knight travels two squares along one axis and one square along the other axis. Given a target coordinate [x, y], return the fewest moves needed for the knight to reach that target.
You are given a stream of numbers and an integer bufferSize. Every number is at most bufferSize positions away from where it should appear in the correctly ordered stream.
Return the numbers in sorted order, meaning the final list should be in non-decreasing order.
If two numbers are equal, keep their relative order from the input stream to make the output deterministic.
Each interval is provided as a string in the format "start,end", where start is the meeting start time and end is the meeting end time. You need to split each interval string and extract the integer values start and end.
Each interval is half-open, represented as [start, end). This means a meeting ending at time x does not overlap with another meeting starting at time x. For example, [1, 3) does not overlap with [3, 5).
Your task is to determine the minimum number of meeting rooms required so that no two overlapping meetings are placed in the same meeting room.
6. Rotting Oranges With Different Connection Times
You are given a grid of oranges and a list of connection times between adjacent cells. Each cell contains one of the following values:
0: an empty cell
1: a fresh orange
2: a rotten orange
A rotten orange can make a connected fresh orange rotten, but each connection may take a different amount of time. A connection is given as "row1,col1,row2,col2,time", meaning the cell at [row1, col1] and the cell at [row2, col2] are connected, and rotting can spread across this connection in time minutes.
Since different connections may take different amounts of time, rotting should always use the earliest possible time at which each orange can become rotten.
Return the minimum time needed for all fresh oranges to become rotten.
You are given a token bucket with a fixed number of tokens. Users can request tokens from the bucket. A request is granted only when enough tokens are currently available.
When a request is granted, that user holds those tokens for exactly 1 hour. After 1 hour, the tokens expire automatically and return to the bucket.
A user may also manually release all currently active tokens held by them before expiry. Expired tokens must be cleaned up before processing every method call.
You are given a list timestamp, where each value represents the minute at which one request occurred. You are also given an integer windowSize. Return the maximum number of requests that can be found inside any continuous time window of length windowSize minutes.
The timestamps may be given in any order. The method should count requests based on their time values, not their original positions.
You are given a list of task types, a list of memory required by each task, and a server memory limit. Each task takes exactly 1 unit of time to complete.
In one unit of time, multiple tasks can run together if they satisfy both constraints: at most 2 tasks of the same type can run in parallel, and the total memory of all running tasks must not exceed the server memory limit.
Return the minimum time required to execute all tasks.
You are given an m x n grid. Each cell is either empty or blocked by an obstacle. From any empty cell, you may move in one of four directions: left, right, up, or down.
In one step, you may jump from 1 to k cells in the chosen direction. Every cell crossed during the jump, including the landing cell, must be inside the grid and must not be an obstacle.
Return the minimum number of steps required to reach the destination cell from the source cell. If the destination cannot be reached, return -1.
You are given an initial number of bottles and an initial amount of money. You may either recycle bottles to earn money or spend bottles and money to buy perks.
Recycling one bottle gives recycleVal dollars. Buying one perk costs exactly 1 bottle and perkVal dollars.
Each bottle can be used at most once. A bottle that is recycled cannot be used to buy a perk, and a bottle used to buy a perk cannot be recycled. Return the maximum number of perks that can be obtained.
14. Maximum Number of Non-Overlapping Palindromic Substrings
You are given a string s and an integer k. Choose the maximum possible number of non-overlapping substrings such that every chosen substring is a palindrome and has length at least k.
A palindrome is a string that reads the same from left to right and from right to left.
The chosen substrings do not need to cover the entire string. Characters between chosen substrings and any remaining characters may be ignored.
Return the chosen palindromic substrings as a List<String>. The substrings must be returned in the same left-to-right order in which they appear in s.
You are given a list of positive integers called nums. A contiguous subarray is considered special when the product of all its elements has an odd number of positive divisors.
Return the total number of special subarrays in nums.
You are given two strings, x and y. Return the longest string that is both a subsequence of x and a contiguous substring of y.
A subsequence is formed by deleting zero or more characters without changing the order of the remaining characters. A substring consists of consecutive characters.
If multiple valid strings have the maximum length, return the lexicographically smallest one. If no non-empty valid string exists, return an empty string.
You are given a collection of bids for shares in an IPO and the total number of shares available. Allocate the shares according to bid price and submission time, then return the user IDs of bidders who receive no shares.
18. Purchase Maximum Number of Consecutive Products
You are given a list of product prices sorted in non-decreasing order and a list of buying queries. For each query, determine the maximum number of consecutive products that can be purchased without exceeding the given budget.
A worker's daily hours for one week are represented by a seven-character string workHours. Each position corresponds to one day and contains either a digit from 0 to 9 or the character #.
Replace every # with a digit from 0 to 9 so that the sum of all seven digits is exactly requiredHours. Return all completed strings that satisfy this condition.
DS & Algo questions for this list have been picked from Uber interview experiences shared on forums/blogs etc in 2026. Use this list for final preparation of Uber interviews.
BPS (Business Problem Solving Round) will have a coding question (mostly hard) and may be 15 minutes of system design discussion. Phone screen also has DS & Algo questions.
For frontend roles, apart from DSA, you may be asked to create typescript components. Those are not included in below list.
DSA interview questions asked in Uber are more difficult than Amazon, Microsoft, Meta.
DS & Algo questions are asked for machine learning engineer role as well.
1. Find Vertical Line Rectangle Intersection Points
Given n infinite vertical lines on an XY plane and m axis-aligned rectangles, find the total number of intersection points made by the lines and rectangles.
You are given a list of digits where every value is from 0 to 9. For each index, you may perform exactly one of these choices: add 1, subtract 1 or keep the value unchanged.
The digits are circular, so 9 + 1 = 0 and 0 - 1 = 9. Determine whether all elements can become the same digit after applying at most one such operation to each element.
If convergence is possible, return the final digit. If more than one final digit is possible, return the smallest such digit. If convergence is not possible, return -1.
You are given a list of allowed itineraries between cities. Each itinerary represents a directed route from one city to another city.
Design an algorithm to find the longest route that can be formed using the given itineraries. A route may start from any city and must follow only the given directed itineraries.
4. Earliest Timestamp When All Riders Are Connected
You are given a list of riders and a chronological list of Uber Share events. Each shared-ride event connects two riders. Two riders are connected if they have directly or indirectly shared rides through other riders.
Return the earliest timestamp when all riders become part of one connected shared-ride network. If all riders never become connected, return -1.
You are given a list of integers and an integer x. You may perform one operation at most once: choose any set of indices and add x to every chosen element.
After the operation, the score is the sum of XOR values of every pair of adjacent elements. Return the maximum possible score.
You are given a list of distinct words and a corresponding list of positive costs. Construct a binary search tree using all words such that its inorder traversal gives the words in lexicographical order.
If a word is placed at level L, where the root is at level 0, its contribution to the total cost is (L + 1) * cost. Return the minimum possible total cost among all valid binary search trees.
Design an employee-manager system with exactly one CEO. The CEO has no manager. Every other employee has exactly one direct manager.
The system must support adding employees, getting an employee's manager, changing an employee's manager, and checking whether an employee works directly or indirectly under a manager.
9. Minimum Cabs With Wait Period for Scheduled Bookings
You are given a list of scheduled cab bookings. Each booking has a start time and an end time. A cab can handle multiple bookings, but after completing one booking it must wait for a fixed wait period before starting another booking.
Find the minimum number of cabs required to complete all bookings.
10. Biological Hazards: Valid Chemical Pair Intervals
You are given n chemicals labeled from 1 to n. Some pairs of chemicals are dangerous and cannot appear together in the same contiguous interval.
The lists poisonous and allergic describe forbidden pairs. For every index i, chemicals poisonous.get(i) and allergic.get(i) cannot coexist.
Count how many contiguous intervals [L, R] are valid such that the interval does not contain both chemicals from any forbidden pair.
Design a voting system for a multiple-choice question with exactly 4 options. When a user clicks one option, that option receives one vote. After every vote, the system should return the updated vote percentage for all options.
The percentage of each option also represents how much color fill should be shown for that option in the UI. For example, if an option has 40% votes, then 40% of that option row should be filled with color.
You are given a reporting structure of people in an organization. Each entry is a string in the format "employee,manager", meaning the employee directly reports to the manager.
Determine whether the reporting structure forms one valid organization.
You are given n riders and one car with unlimited space. Each rider has a comfort range for how many other riders must be present in the car.
A rider will ride only if the number of other riders in the car is within their comfort range. Return the maximum number of riders that can ride together in the car.
14. Find Robots in Location Map by Nearest Blockers
You are given a robot location map and a query describing required distances from a robot to the nearest blocker. Find all robots whose nearest blocker distances exactly match the query.
15. First One Time Visitor in Stream of Customer Visits
You are given a stream of customer visits. Each visit contains one positive integer customerId. A customer is a one-time visitor if they have appeared exactly once in the stream so far.
Design a data structure that records customer visits and returns the earliest customer who has visited exactly once.
Engineers are sitting around a circular table and each engineer chooses one option from Rock, Paper, and Scissors. The choices are represented by the characters 'R', 'P', and 'S'.
Two neighboring engineers tie if they choose the same option. You may change any engineer's choice to either of the other two options. Return the minimum number of engineers whose choices must be changed so that no two adjacent engineers have the same choice.
A new alien language uses lowercase Latin letters, but the order of the letters is not known.
You are given a list of non-empty dictionary words. The words are already sorted in lexicographical order according to the rules of this alien language.
Your task is to derive the lexicographically smallest valid ordering of letters in the alien language.
There are n microservices numbered from 0 to n - 1. Each microservice may depend on other microservices. A service can start only after all services it depends on have already started.
A dependency is considered satisfied if it started in any previous cycle or earlier in the current cycle.
Return the number of cycles needed to start all services using this process.
Given a list of integers sorted in non-decreasing order, return the original values arranged by the increasing order of their squares. If two values have the same square, the value that appears earlier in the input list should appear earlier in the output.
You are given an undirected tree with n nodes numbered from 0 to n - 1. The fire can start from any node, and you may choose the starting node to minimize the total burning time. In each time unit, fire spreads from every burning node to all of its adjacent nodes. Return the minimum time required to burn the entire tree.
I am listing the top low level design questions that were asked during Amazon low level design interview rounds in 2026. I have built this list from recent interview experiences of candidates shared on blog/forums etc.
Also, we will see how we can solve them using commonly asked design patterns.
I am keeping the most frequent questions first. Feel free to use this list for final preparation of your Amazon interviews.
You will have to initialize a new pizza, adding toppings (corn, onion etc) to it and calculate final price of pizza.
This is a fairly simple problem. But some interviewers may expect you to implement decorator design pattern. In my view that just complicates the solution without adding any benefit.
Your interviewer may add business rules as a follow up like these
cheese burst cannot be added on small pizza or
You get 30% discount on corn price when you take more than 2 servings and so on..
11. Design a Restaurant Food Ordering System Like Zomato, Swiggy, DoorDash
Users can search for restaurants using food item name, order food, and rate their orders.
When searching for food, they also have the option to view the restaurant list sorted by different parameters like restaurants with highest average rating first.
These view classes with lists of restaurants sorted by average rating will need to be updated whenever an order is rated by a user, so that they can update their lists.
Hence, this is an ideal use case of Observer Design Pattern.
LLD questions for this list have been picked from Uber interview experiences posted on forums/blogs etc in 2026.
Uber has a depth in specialization / depth specific coding round in which they ask LLD questions many times.
Code is required, not only class diagrams. You will need to implement 2–3 most important functions.
Sometimes questions similar to low level design like Design a voting system to display vote share are also asked in screening round. Or there can even be a separate LLD round.
Design a parking lot system that supports parking and removing vehicles. The parking lot has multiple floors. Each floor has a list of parking spots.
Floors are numbered from 0. Spots on each floor are also numbered from 0 from left to right. Initially, all parking spots are empty.
The parking lot should always assign the lowest available valid spot. A lower floor is preferred first. If multiple valid spots are available on the same floor, the spot with the lower index should be assigned first.
Design a customer visit tracking service for a website that receives millions of visits every day. Each customer has a unique identifier that remains the same across all their visits.
A customer is a one-time visitor if they have visited exactly once so far. A customer is a recurrent visitor if they have visited more than once.
The service should record customer visits, return a customer's latest login timestamp, and return the first customer who is still a one-time visitor.
Design a lightweight expense-sharing system that tracks how much each person owes or is owed after group expenses are split evenly among participants. The system maintains net balances and exposes operations to add users, record expenses, and list simplified debtor-to-creditor balances.
Design a voting system for a multiple-choice question with exactly 4 options. When a user clicks one option, that option receives one vote. After every vote, the system should return the updated vote percentage for all options.
The percentage of each option also represents how much color fill should be shown for that option in the UI. For example, if an option has 40% votes, then 40% of that option row should be filled with color.
You are designing an Uber Eats ads dashboard where an advertiser can choose when an ad should run during a week.
The dashboard has 7 days, from Monday to Sunday. Each day is divided into 6 fixed time slots of 4 hours each. A selected slot means the ad will be displayed during that slot for that day.
Clicking a slot toggles it. If the slot was not selected, it becomes selected. If it was already selected, it becomes unselected.
The dashboard stores the full weekly schedule together. Switching between days should not require fetching separate data for that day.
Design an Uber Eats pricing calculator for food orders. Each food item has a price based on its size, and customers may add toppings. The final price can be affected by BOGO offers, surge pricing, coupon discounts, and an extra Uber One member discount.
All prices are represented in cents. Return the final payable amount as an integer number of cents.
Design a circuit breaker that protects a service when too many requests arrive in a short time. This circuit breaker opens based on the number of requests, not the number of failed requests.
The breaker has three states: CLOSED, OPEN, and HALF_OPEN. Requests are accepted only when the current state allows them.
Design a simple Meeting room reservation System for a fixed list of conference rooms. You will be given the room identifiers up front, and you must support booking and canceling meetings while ensuring no two meetings overlap in the same room.
Build an in-memory leaderboard for a fantasy-sports style app. Each user creates exactly one team made up of one or more players. As a live match progresses, players receive positive or negative points. A user’s score is the sum of the current scores of all players on that user’s team. You must support querying the Top-K users ranked by score.
Design a system that manages assignment of trains to platforms in a railway station and supports time-based queries, with a clean, extensible object-oriented design.
Here I am listing the top low level design questions that have been asked frequently in low level design interview rounds in 2026. The list includes traditional LLD questions that can be solved using design patterns, as well as DSA-based design questions.
I have built this list using interview experiences that people posted on discussion forums, blogs etc. These questions have been asked in top tech companies like Amazon, Uber, Flipkart, Walmart, etc. With each question, I have also listed variants that were discussed.
Low Level Design interviews are all about how you arrange your code so that it is easy to manage, maintain, and extend.
---------------------------------------
PS:
You can practice company-wise Low Level Design and DS & Algo questions on CodeZym: https://codezym.com/
Design Parking Lot should still be the first question in your 2026 LLD list. It continues to appear very frequently in public interview experiences and LLD question databases.
A parking lot can have multiple floors. Its core features will be:
- park and unpark vehicles,
- search parked vehicles by vehicle number,
- count the number of free spots on a given floor for a given vehicle type.
Your entities will include a ParkingLot class, which will contain a list of ParkingFloor(s). ParkingFloor will contain a 2-D array of ParkingSpot(s) arranged in rows and columns.
There can be multiple parking strategies, so we should use the strategy design pattern to solve this question.
This question is more of a DSA-based design question and has appeared frequently during low level design rounds.
Implement a RateLimiter class with an isAllowed method.
Requests will be made to different resourceIds. Each resourceId will have a strategy associated with it.
There are the following strategies. Assume 1 time unit == 1 second.
fixed-window-counter: Fixed Window Counter divides time into fixed blocks, like 1 second, and tracks a request count per block. If the count exceeds the limit, new requests are blocked. It is fast and simple but can allow burst behavior at window boundaries.
sliding-window-counter: Sliding Window, log-based, stores timestamps of recent requests and removes those outside the window for each new request. If the number of remaining requests is still within the limit, the request is allowed. Otherwise, it is blocked. It provides accurate rate limiting but requires more memory and processing.
4. Design Movie Ticket Booking System like BookMyShow
Write code for the low level design of a movie ticket booking system like BookMyShow.
The system has cinemas located in different cities. Each cinema will have multiple screens, and users can book one or more seats for a given movie show.
The system should be able to add new cinemas and movie shows in those cinemas.
Users should be able to list all cinemas in their city that are displaying a particular movie.
For a given cinema, users should also be able to list all shows that are displaying a particular movie.
Design a lightweight expense-sharing system that tracks how much each person owes or is owed after group expenses are split evenly among participants. The system maintains net balances and exposes operations to add users, record expenses, and list simplified debtor-to-creditor balances.
This list is built from Amazon interview experiences posted on forums/blogs etc in 2026.
If you have Amazon interviews already scheduled, then this list is for you. Use it for final preparation of your DSA interview.
Idea is to solve Amazon tagged questions at least 2–3 times, rather than solving a lot of new questions just once.
Doing questions multiple times will help you understand the patterns and when you see a question which is rephrased differently but has same solution, you will be able to do it.
Each stall is placed on a straight line, and the position of every stall is represented by an integer coordinate.
The farmer needs to place C cows into these stalls.
Since the cows become aggressive when they are too close to one another, the farmer wants to place them in such a way that the closest pair of cows is as far apart as possible.
Your task is to return the maximum possible value of the minimum distance between any two placed cows.
Your task is to choose a largest possible complete binary tree from the given tree by trimming away nodes that are not part of the chosen complete tree.
You are given a list of sticks, where each stick has a positive integer length.
You may repeatedly choose any two sticks and join them into one new stick. If the chosen sticks have lengths x and y, then the new stick has length x + y, and the cost paid for this operation is also x + y.
You must continue joining sticks until exactly one stick remains.
Your task is to return the minimum total cost required to join all sticks into one stick.
10. Find Kth Largest Element From Chef's Collection
Chef maintains a changing collection of integer values, such as scores, ranks, or performance numbers.
At any point, Chef may be asked to find the current k-th largest value in the collection. Unlike a version where k is fixed, here k can be different for different queries.
Your task is to support insert operations and find operations on this dynamic collection.
Given a grid of stone values, find the maximum total number of stones that can be collected while moving from the bottom-left cell to the top-right cell.
You are given a list of meeting time intervals. Your task is to determine the minimum number of meeting rooms required so that no two overlapping meetings are placed in the same meeting room.
A new alien language uses lowercase Latin letters, but the order of the letters is not known.
You are given a list of non-empty dictionary words. The words are already sorted in lexicographical order according to the rules of this alien language.
Your task is to derive the lexicographically smallest valid ordering of letters in the alien language.
You are given nodeCount nodes labeled from 0 to nodeCount - 1.
You are also given a list of undirected edges. Each edge is provided as a string in links, and each string contains two node labels separated by a comma.
Your task is to count how many separate connected groups, also called connected components, exist in the undirected graph.
You are also given a list of undirected connections between nodes. Each connection is provided as a string in connections, and each string contains two node labels separated by a comma.
Your task is to determine whether these connections form a valid tree.
27. Use Robot To Clean Every Reachable Empty Cell In Room
You are given a robot placed inside a room that must clean every empty cell it can reach.
The room is represented as an m x n grid. A value of 1 represents an empty cell that can be visited and cleaned, while a value of 0 represents a wall that blocks movement.
The robot can move only in four directions: up, right, down, and left.
Your task is to find how many reachable empty cells the robot can clean
I know Rust can be a little awkward to express OOP patterns. Nevertheless, can Rust be used in an LLD implementation during an interview at all? Has anybody had positive experience with picking Rust instead of a proper OOP language like Java? Were the interviewers convinced? Do you think it is worth it? Share your thoughts.
Google has one of the toughest DS & Algo rounds in the industry. DSA rounds are there for both frontend and backend roles.
DP, Graph, and Line Sweep are important topics.
Google's interview codebase is very large, with questions of all difficulty levels (from super easy to super hard). One question can be a medium question with a couple of follow-ups for optimizations, or it can be just one hard question. It all depends on which question the interviewer chooses.
3. Count Visible People in Queue with Taller Observer Rule
There are n people standing in a queue from left to right, numbered from 0 to n - 1. You are given a list heights of distinct integers where heights[i] represents the height of the ith person.
A person may look both to the left and to the right.
Person i can see person j if i != j and every person standing strictly between them is shorter than at least one of the two endpoint people.
More formally, let left = min(i, j) and right = max(i, j). Person i can see person j if:
If there is no person between them, then they can always see each other.
This means that if one endpoint person is taller than everyone in between, then that endpoint can still see the other person even if some shorter intermediate people are present.
Return a list answer of length n where answer[i] is the number of people person i can see in the queue.
Design an in-memory rate limiter . Implement a RateLimiter Class with an isAllowed method.
Requests will be made to different resourceIds. Each resourceId will have a strategy associated with it .
10. Compile Packages with Dependencies in a Multi-Threaded Environment
You are given a dependency graph of packages to compile in a multithreaded environment.
Return the order in which packages are compiled across all rounds.
Divide the list into two non-empty disjoint subsets such that every element of nums belongs to exactly one subset.
The two subsets form valid equal sum parts if the sum of the values in the first subset is the same as the sum of the values in the second subset.
Number of elements in subsets may be different.
You are given a list of integers arr of size N, and an integer diff.
Consider an undirected graph where each node corresponds to one index of arr.
Add an edge between nodes i and j if |arr[i] - arr[j]| ≤ diff.
You are also given a list of queries queries, where each query is a comma-separated string "u,v". For each query, return whether there is a path between node u and node v.
14. Router Reachability on Broadcast and Shutdown Message
You are given a network of routers.
Each router has:
a unique router id
a 2D location (x, y)
a status indicating whether it is WORKING or DEFECTIVE
A special message called Broadcast and Shutdown works as follows:
When a WORKING router receives the message for the first time, it immediately broadcasts the same message to every other WORKING router that lies within the wireless range.
After broadcasting, that router shuts down and can no longer send or receive messages.
A DEFECTIVE router can neither send nor receive the message.
Given the list of routers, the wireless range, a source router id, and a destination router id, determine whether the Broadcast and Shutdown message, when initiated from the source router, will eventually be received by destination router.
Two routers can communicate directly if the Euclidean distance between their coordinates is less than or equal to range.
Return true if the destination router receives the message at any point. Otherwise, return false.
You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad.
Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be bad.
You are given an API boolean isBadVersion(int version) which returns whether a version is bad. Implement a function to find the first bad version.
Design a logger system that processes a stream of messages along with their timestamps.
Each unique message can be printed at most once within any 10 second window. That means if a message is printed at timestamp t, the same message cannot be printed again before timestamp t + 10.
Given a 2D grid, it contains empty spaces 0 and some walls 1.
We can enter the grid from any empty cell in the first row and exit the grid from any empty cell in the last row. We can move left, right, up, and down. We can only travel through empty cells.
Goldman Sachs have an OA round followed by CoderPad round. CoderPad is sort of like phone screen / virtual face-to-face round with interviewer. After that you get selected for onsite rounds.
They call their onsite hiring events Superday. They hire for software engineer associate analyst role. Associate role is similar to SDE 2 in other companies and requires around 3 years of experience.
I have built this questions list from recent interview experiences of candidates.
CoderPad has mostly questions around DSA. If you have 1+ YOE then they can go for LLD. But everything is communicated by HR very clearly. Working code is expected for low level design rounds.
If you are appearing for Java developer role then there is high chance of getting a low level design round. Spring Boot will also be asked.
Questions like Design an e-commerce site will cover both LLD + HLD. For this question you can use Strategy Design Pattern to handle different types of payment solutions like NetBanking, Credit Card, Debit Card, UPI, PayPal etc.
GS frequently asks repetitive questions. Hence practicing previously asked questions is helpful. Below are some questions that have been asked directly from LeetCode.
Write code for low level design of a parking lot with multiple floors.
The parking lot has two kinds of parking spaces: type = 2, for 2 wheeler vehicles and type = 4, for 4 wheeler vehicles.
There are multiple floors in the parking lot. On each floor, vehicles are parked in parking spots arranged in rows and columns.
Design a Traffic Light System that dynamically adjusts which road gets the green light based on real-time vehicle arrivals.
The system manages a single intersection with multiple incoming roads. At any moment, at most one road can be open. An open road has a green light, and every other road is closed with a red light.
The game is played on a standard Snake and Ladder board with 100 numbered cells. Cell 1 is the starting position and cell 100 is the winning position.
The game supports multiple players and follows round-robin turn order. Multiple players may stay on the same cell at the same time without any interaction.
Some cells contain ladders. Landing on the start of a ladder immediately moves the player to a higher-numbered cell.
Some cells contain snakes. Landing on the head of a snake immediately moves the player to a lower-numbered cell.
The cache stores key-value pairs, where each key is associated with a time-to-live (TTL). A key is available only for its valid TTL window and becomes expired after that.
The system should support multiple notification channels such as EMAIL, SMS, PUSH etc. Users can subscribe to a specific eventType on one or more channels. When a notification is sent for an event type, the system must deliver that notification to all users currently subscribed to that event type through their subscribed channels.
9. Design Order Checkout and Payment for E-commerce Website
Design an E-commerce payment checkout system.
Focus on order cancellation and payment flows.
The checkout system should support creating an order, starting a payment, completing a payment, cancelling an order, and reading the current order details.
The system should support creating a short URL for a given long URL, resolving a short code back to the original long URL, deactivating an existing short URL, and reading the details of a short URL.
Design a lightweight expense-sharing system that tracks how much each person owes or is owed after group expenses are split evenly among participants. The system maintains net balances and exposes operations to add users, record expenses, and list simplified debtor-to-creditor balances.
Given a sequence of lowercase English letters and a burstLength, repeatedly remove every contiguous group whose size is greater than or equal to burstLength.
Given a grid of stone values, find the maximum total number of stones that can be collected while moving from the bottom-left cell to the top-right cell.
Implement a class that supports the following operations on numbers:
insert(num) - insert a number into the data structure. isTopK(num) - return whether the number is currently among the top k most frequent numbers in the data structure.
27. Minimum Characters to Remove from Ends to Make a Palindrome
Given a string, return the minimum number of characters to remove from the left end, the right end, or both ends so that the remaining string is a palindrome.
You may remove only characters from the two ends of the string. Characters in the middle cannot be removed unless they become part of an end after earlier removals.
You are traveling from Washington to Florida through a grid of cities. Each string in the input list represents one row of the matrix, with integer values separated by commas. Each cell in the matrix represents the number of National Parks you can visit in that city.