This website uses cookies to ensure you get the best experience on our website. Learn more

System Design Interview Question: DESIGN A PARKING LOT - asked at Google, Facebook


System Design Interview Question: DESIGN A PARKING LOT - asked at Google, Facebook

In-depth system discussion of a popular coding interview question, chapters:
0:32 Problem statement
0:55 Finding a solution
2:43 Questions to ask
6:35 Object oriented design/class hierarchy
13:57 Coding question approach
23:34 Testing
This system design interview question/how to system design is for software engineers, software developers, web developers, front end engineers, QA engineers, product managers, network engineers equally important. This interview problem can be asked as a coding interview question, system design question or object oriented design question.

SiT website:



Other names for this problem are: Amazon Locker interview question, The Parking Lot interview question, Parking Lot using OO techniques, Object oriented parking lot.


5 Tips for System Design Interviews

Here are 5 Tips for System Design interviews. They are helpful when preparing for a System Design interview.

1) Don't get into details prematurely

2) Avoid fitting requirements to a set architecture in mind

3) Keep it simple, stupid! Remember to look at the big picture and avoid too many hacks when solving.

4) Have justifications for the points you make. Don't use buzz words or half hearted thoughts in your design.

5) Be aware of the current solutions and tech practices. A lot of solutions can be purchased off the shelf which simplify implementation. You should be able to argue for a custom implementation with it's pros and cons.

Have these on the back of your mind during you interview, and all the best!
Here are three major points evaluated during the interview:
(1) Clarity of Thought

a) Express your thoughts in a clear manner.

b) Justify your decisions. Critical reasoning and argument are key to a successful software design.

c) When faced with a problem, use standard approaches to mitigate it. For example, say you are faced with an availability problem. State that replication and partitioning help increase availability in general, and move on to offer a solution.

d) Don’t make points without thinking them through. Half-hearted attempts at solving problems are frowned upon heavily.

(2) Knowledge

a) Stay up to date with the current solutions in the market. This includes products and design practices. If NoSQL is being adopted left right and center, you need to be aware of it.

b) Know when to pick a solution vs. building something custom. If you name a product, you should be (generally) aware of the features it provides.

c) Design practices enable you to meet custom requirements. Examples are decoupling systems, load balancing, sticky sessions, etc…

(3) Flexibility

a) Switch your targets as the requirements shift. If the interviewer wants to know about one particular part of the system, do it first.

b) Never have a set architecture in mind. We all try to fit requirements to a system, but only after it has been shaped by the initial ones. A rigid attitude creates a brittle architecture. It will break before you do.

c) Take a step back at times to make adjustments to the general architecture. Being focused on one part can narrow our vision and bloat those areas. There will be components which can be extracted out and extended to the rest of the system.


Quora answer:

Relevant Links:

Check out the Grokking the system design interview course:

Object Oriented Design Interview Question Design a Car Parking Lot

Object Oriented Design Interview Question: Design a Car Parking Lot.

Most interviews at top tech companies, especially Amazon, involve the design of an object oriented system, like an object oriented parking lot or an elevator system. A simple intuition about the similarity between object oriented systems and their real-world counterparts can help you blow away these questions with ease.
Object oriented systems communicate a lot like we humans do in our everyday lives.
When you go to a restaurant, you interact with the server, hostess and so on. They are human beings too like you, but just with some specialized/over-ridden behaviors such as their job type (**inheritance). **You can view them as sub-classes of humans — after all outside of their work, they don’t take orders and they too go to movies, visit a doctor, and are just normal human beings. (**polymorphism).**
How do you communicate with the server? It typically falls into one of these three categories, getting you seated, taking your order, and serving you food. Of course, servers do other things too, like telling the chef about your order, but you don’t get to see these things. Your interaction with the server is just restricted to these three behaviors (**data abstraction).**
Now, here are some steps to follow to answer an object oriented design question like design an object oriented parking lot.
1. Identify the major entities like vehicles, parking spaces, parking structure and so on using interfaces.
2. Identify specialized subtypes of these entities using abstract classes or just regular classes. For example, your parking spaces may be of different types, two wheeler parking spots, car parking spots, handicapped parking spots and so on.
3. Determine the functionality(behavior) of each of these entities, such as a a car should have a license plate, and have the ability to move; a parking structure should be able to tell you the next available spot to park; a parking space should be able to keep track of your cost of parking and so on.
4. Determine the functionality of specialized entities. All parking spaces have same properties like indicating whether they are occupied or not, and calculating the cost of parking your vehicle but two wheeler spots are cheaper than four wheeler spots.
5. Setup relationships between entities that communicate with each other. Parking space and parking structure can be connected association, that is a parking structure has many parking spaces, and of different types.
6. Lastly, to make yourself standout, use design patterns where appropriate. The most obvious scenario is, obviously not everyone should be able to create their own parking structure on the fly. Make it a singleton class so there is only parking structure, and vehicle owners will use it using your public methods.
In the video, I follow the above steps to design an object oriented parking lot. You will also see when to use interfaces vs abstract class, the different use cases of interfaces, a practical programming example of interface (instead of the car inherits vehicle that you read in books) and a few more design patterns that will make you stand out.


System Design Introduction For Interview.

This video describes how to prepare for system design interview. Below is all the content described in the video.
A - Ask good questions
B - Don't use buzzwords
C - Clear and organized thinking
D - Drive discussions with 80-20 rule

Things to consider
Class Diagram
Security and Privacy

Concepts to know
Vertical vs horizontal scaling
CAP theorem
Consistent Hashing
Optimistic vs pessimistic locking
Strong vs eventual consistency
RelationalDB vs NoSQL
Types of NoSQL
Key value
Wide column
Data center/racks/hosts
CPU/memory/Hard drives/Network bandwidth
Random vs sequential read/writes to disk
HTTP vs vs WebSocket
TCP/IP model
ipv4 vs ipv6
DNS lookup
Http & TLS
Public key infrastructure and certificate authority(CA)
Symmetric vs asymmetric encryption
Load Balancer
CDNs & Edges
Bloom filters and Count-Min sketch
Leader election
Design patterns and Object-oriented design
Virtual machines and containers
Pub-sub architecture
Multithreading, locks, synchronization, CAS(compare and set)

Solr, Elastic search
Amazon S3
Docker, Kubernetes, Mesos
Hadoop/Spark and HDFS


System design: URL Shortener like tiny URL | Popular interview question

URL shortening is a method used to short the url. This short url can be used to read easily, print in the card etc.

This is a common and most popular system design interview question asked in top companies like microsoft, facebook, freshdesk, swiggy, oracle

There are multiple ways to design the URL shortener and I have discussed the best of my knowledge and it is open to discussion in comments.

Please provide the questions in the comment and I am happy to answer.

Do you know how twitter is designed?

More about my skills and experience at

Amazon interview question: System design / Architecture for auto suggestions | type ahead

System design for autocomplete search keywords or autocomplete in any website.
Includes algorithm which uses Trie data structure and Prefix hash table to implement.\

Java Code by Varun vats:

Whatsapp System design or software architecture

Most important and common question asked for developers and architect to check their design skills.
Design whatsApp or Provide architecture for whatsApp
Learn how to build Realtime messaging system or Chatting application.

Disclaimer: System design can vary based on the feature. this video explains the possible solution to build one. it doesn't guarantee the scale or full working. Instead this resource should be consumed to understand how it can be designed.


System Design: How to design Twitter? Interview question at Facebook, Google, Microsoft

Designing the architecture of Twitter and similar social networks is a popular engineering interview question asked at companies like LinkedIn, Microsoft, Google, Snapchat, NVidia and others. This interview question is extremely broad but gives you the opportunity to talk about technologies like in-memory databases, replication, sharding etc. It's important to give a clear high level overview of the problem, ask clarifying questions and talking confidently about strengths and weaknesses of the proposed solution. Every architecture has trade-offs and interviewers want to hear you talk about them.

Follow SuccessInTech on Facebook:

Follow SuccessInTech on Twitter:

Details taken from a presentation of the VP of Engineering at Twitter:


System Design: Messenger service like Whatsapp or WeChat - Interview Question

This is a system design interview question asked at companies like Amazon, Facebook, Google, Microsoft and many startups: How to design a messenger service like Whatsapp, WeChat or Facebook Messenger?
I will guide you through this interview question, give you talking points and point out the right questions to ask. A quick and easy explanation even if this is your first system design interview question.

=== The resources I mentioned in the video ===
High Scalability Blog:
Hired in Tech:


System Design: Uber Lyft ride sharing services - Interview question

How to design a ride sharing service like Uber or Lyft? In this video we talk about many aspects when designing complex distributed systems with mapping and routing components. Under the hood they use sophisticated graph algorithms to display precise ETA's and shortest routes. Additionally we talk about storage (Redis, NoSQL, Cassandra ), provisioning (Mesos, Teraform), networking, docker containers and logging.

Success in Tech now also offers coaching, mentoring and mock interview sessions on


Follow SuccessInTech on Facebook:

Follow SuccessInTech on Twitter:

UBER System design | OLA system design | uber architecture | amazon interview question

Systems design: What is the system design of the Uber App?
Systems design: What is the architecture for the OLA?
Systems design: What is the software design of the LYFT App?

Arch diagram:

Answer to all of the above questions is here, though I have explained much about Uber's system design, but for interviews you can adopt the same answer to all of the cab aggregation services question.


Good reads:


System Design: How to design CDN? Interview question at Facebook, Google, Amazon

Content delivery network : Instead of getting the content from origin server, we get the content from closest available servers which is edge server.
This is a common interview question related to system design and I tried to explain in simple terms.

In this video, I have talked about below
1) Why do we need CDN or Content delivery network?
2) How CDN fits in your system design?
3) How to explain content delivery network to a layman?
4) Production issues across CDN
5) CDN system design.

Who am I ?
You can find my experience and skills at linkedin

Disclaimer :
All the views, thoughts, and opinions expressed in the Reachgoals channel are my personal opinion and not necessarily to the author’s current or previous employer, organization, committee or other group or individual.

3 Ways to Ace Your System Design Interview

System design interviews are such an important part of the interview process, particularly for experienced software engineers. But do you even know what to expect in a system design interview? What is your interviewer looking for? How do you design a system in 45 minutes?

In this video, I discuss some of the myths surrounding system design interviews and how you can answer these questions effectively.

50 Practice Questions:

You can also find me on

Design Tic Tac Toe: Low Level Design Coding Interview Question

Low Level System Design involves designing a system's components before implementing them in code. It is used to define how the objects and interfaces in a system will interact with each other. It also defines what state and behaviours will be present in each object.

A Interview question on LLD(Low level design) usually has a data structure like a Rate Limiter or a Cache as a question. We are expected to design it's #interface and keep the object open for extension but closed for modification (Open-closed principle). Design Patterns could be very useful during an interview and can simplify interactions if applied correctly.

The low level #SystemDesign allows us to define #DataStructure for Caches and the implementation of their algorithms. It also acts as an Object level API contract, which engineers can implement in a straightforward manner.

#gkcs #GauravSen


Code link: To be added

Become a channel member!

You can follow me on:

System Design: How to design Twitter? Interview question at Amazon, Google, Microsoft, Apple

Twitter system design is a often asked interview questions. I tried to cover in 15 minutes to have a quick watch. I have not talked much about optimization and it will be covered in future video.

I talked about services like create account, create twitter, view home time line, view user time line etc.
This video included a clear architectural diagram to understand easily

I have explained about real operational issues which is a valuable information for your interview.
If you interested to learn about twitter search system design, twitter system design or twitter feed design, please watch this till the end.


You can watch the URL Shortener like tiny URL at

More about my skills and experience at

Design Interview Question : Design a two Player Online Chess Game

For Complete Course Please Subscribe

Design Chess Game using Object Oriented Programming

Prepare for Your Google Interview: Systems Design

Googlers share targeted advice for the systems design aspects of Google's interview process for technical and engineering candidates. This video will cover tips for communication, designing to scale, trade-offs and compromises, overall best practices, and more!

Skip ahead to:
0:38 - Communication
1:31 - Designing to Scale
2:49 - Concrete and Quantitative Solutions
3:38 - Trade-offs and Compromises
4:18 - Best Practices

Explore engineering and technology jobs at Google around the world →

Learn about how Google interviews and hires →

Subscribe to Life at Google for more videos →

Follow us!

Grokking the System Design Interview

Visit us at or
System design interview questions have become a standard part of the software engineering hiring process. Performance in these interviews reflects upon your ability to work with complex systems and translates into the position and salary the interviewing company offers you. Most engineers struggle with system design interview (SDI), partly because of their lack of experience in developing large scale systems, and partly because of the unstructured nature of SDIs. Even engineers, who’ve some experience building such systems, aren't comfortable with these interviews, mainly due to the open-ended nature of design problems that don't have a standard answer.
This course is a complete guide to master the SDIs. It is created by hiring managers who’ve been working at Google, Facebook, Microsoft, and Amazon. We've carefully chosen a set of questions, that haven’t only been repeatedly asked at top companies but also provide a thorough experience to handle any system design problem.
Let’s get started!

System Design : Design messaging/chat service like Facebook Messenger or Whatsapp

System design : Design messaging or chat service like facebook messenger.



Check Also