Design Reddit Interview Question: Our Answer
There’s no denying this is a broad system design question. We will follow a similar approach as we did for the previous question.
First, we will define the problem space. This, again, means clarifying the requirements. In this sample system design interview question, the interviewer gave you a concrete list of necessary features.
Still, you should first dig deeper into the requirements for additional clarification and detail. For instance, you can ask questions like:
- Does our system need to support mobile and web users, or just one or the other?
- Will the images be uploaded to the system itself, or will they be linked to another hosting service?
- Are there any necessary performance-related features that would influence our system design and require load balancing?
Suppose your interviewer stated you only need to be concerned with web users.
We also want the images to be uploaded directly to our system and need all the system’s content to load as quickly as possible for all users, no matter where they may be located.
Next, we will outline the high-level design. Now, we need to choose a few primary components of our Reddit system.
Based on what we know about the feature requirements, we know these components will need to allow users to view, post, rank, and comment on other posts.
In this particular case, a relational database is the most appropriate choice. Again, this is because of the relational nature of our data .
Flag This As Inappropriate
Would you like us to review something? Please describe the problem with this and we will look into it.
Your feedback has been sent to the team and we’ll look into it.
Glassdoor has millions of jobs plus salary information, company reviews, and interview questions from people on the inside making it easy to find a job thats right for you.
The Approach To Ood Interview Questions:
In Object Oriented Design questions, interviewers are looking for your understanding of the nuances of complex problems and your ability to transform the requirements into comprehensible Classes.
In fact, OOD questions generally will all follow a very similar pattern. You will be provided with a vague problem and a set of constraints for a system to design, and very little else. It is then up to you, the candidate, to figure out the level of solution that the interviewer is looking for, what kind of functionality will be needed, and come up with a workable solution.
Interviewers are looking for one main thing: finding the right balance between a solution that works immediately and is also adaptable to change in the future.
To simplify things, you can take the following approach for any OOD question you encounter:
Read Also: Google Senior Engineering Manager Interview
Design Facebook A Social Network
Your answer should ideally cover:
- Discoverability: How are users able to search other users profiles?
- Following: How are users able to follow/unfollow other users without becoming a direct connection?
- Groups / Pages: How are members able to create both groups and pages in addition to their own user profiles?
- Privacy: How will the system handle privacy lists with certain content to be displayed only to specified connections?
- Alerts: How will users be notified for pre-selected events?
If youre looking for detailed answers to the above questions, including actual UML diagrams and code snippets, I highly recommend having a look at Grokking the Object-Oriented Design Interview.
If you found this post helpful, please click the sign and follow me for more posts. If you have any feedback, reach out to me on .
Design A Hotel Management System
Youll want to make sure you cover:
- Room Complexity: How will the system support different room types within the same hotel?
- Alerts: How will the system remind users that their check-in date is approaching? What other alerts might be useful to factor in?
- Customization: How would users make special requests on their room? What kind of special requests would be supported?
- Cancellation / Modification: How would the system treat booking cancellation ? What about other changes? What types of modifications would be covered?
Also Check: What To Ask In A Screening Interview
What Can I Expect
This section will require some whiteboarding, but no coding. For example, they may ask you to design a Hotel Booking System, Google Docs, or something else.
This is very much a “choose-your-own-adventure” type of question that is meant to showcase your depth and breadth of knowledge and experience.
You might want to consider some common architecture bottlenecks and some possible ways to mitigate against potential problems.
Feel free to take a view of the “stack” that best highlights your experience. For example, it could likely be the infrastructure that powers rather than a database schema.
Just like pair programming, ask clarifying questions and talk through your thought process. Consider the variables you should take into consideration and any trade-offs encountered. Be receptive to feedback.
A List Of System Design Interview Questions And System Design Problems With Solutions For Software Engineers And Developers Preparing For Tech Interviews
Hello guys, if you are preparing for FAANG or any Software developer Job Interview on Startup or a Tech company like Spotify, Flipkart, or Zoom but worried about System design questions then you are not alone. System design is an intimidating topic and requires a lot of study and experience to design a real world system.
While its not a rocket science the knowledge of different system design components and concepts are hard to acquire. In the past, I have shared best System Design Coursesand best Software architecture courses as both are related to each other, as well essential System design topics and tips for interviews and in this article, I am going to share 20 System Design Interview Questions with answers for programmers with zero to 3 years of experience.
System Design interview just like other interviews, require you to be up to the task. This means that you have to adequately prepare so that you can have an easy time when going for that interview.
If you dont want to stare at the roof during the interview then you have to find the questions that are usually asked in System Design interviews and practice them hard so that you can be familiar with them.
You can also take help from these best System Design Interview resources which have helped thousands of developers:
Also Check: Preparing For Software Engineering Interview
How Can I Best Prepare
Well be sharing a blank Google Doc for the session.
Tips for using paper or whiteboard:
Make sure your drawings are visible. A high quality thick marker is highly recommended.
Test the lighting and the camera quality
Its best to use a microphone headset so you can move your head freely without impacting the audio
If you happen to have a tool that you like, use that but just let us know in advance so we can make sure we can connect to it.
Read more about Cash App
How Do You Design A Trade Position Aggregator Or Portfolio Manager
You need to design a system which can accept Trade and then shows the position for each symbol, much like a Portfolio Manager. Your system needs to support
multiple symbols and it should be fast enough to calculate position in real time.
In order to test your system, you can input a set of trades, both buy and sell side and then query the system to see the live position. You can first try solving this problem yourself but if you stuck you can see my solution of implementing Trade position aggregator in Java for guidance.
29. What is RAID? Answer: RAID stands for a redundant array of independent disks. RAID is the technology that specializes in data storage that combines various physical disk drive components within one or numerous logical units as data redundancy and performance improvement.
Read Also: How To Prepare For Java Developer Interview
Test Cases For Hotel Booking System
You should consider validating the test cases for hotel management system functional requirements below during the System Testing or System Integration Testing Phase. When planned correctly, your test data should be able to uncover any exceptions. This is to Check if the UAT users can conduct their end-to-end business as usual tests.
Example Question : Design Youtube
“How would you design a large-scale, distributed system and video-sharing platform such as YouTube?”
Note that an interviewer asking such a question is not expecting a truly complete answer. YouTube today is obviously an incredibly complex system. Keep it simple. These system design questions are ultimately looking to see if you can:
Design A Web Crawler Interview Question: Our Answer
Like any other system design question, candidates will first need to clarify and outline all the requirements of the question.
Your interviewer will probably give you some general requirements, but be sure to clarify to ensure you have the full scope before you continue. Ask questions like:
- Are we prioritizing certain web pages over others while we crawl?
- What are the constraints on the data our crawler can store, if any?
- What assumptions are we making about the web pages? Should we assume they all contain HTML, for example? Should our crawler account for other media types beyond this?
Remember, your system design interview should be a place you feel comfortable asking questions of your interviewer as well. Get their pulse on the direction of your answers.
The Article Consists Of 3 Parts A Preparation Guide A System Design Template And Design Questions With Links
For my system design interview with Amazon, I watched video lectures, read blog posts, and discussed with my friends’ various approaches to designing a system. After my extensive preparation, I came up with a template that I followed during my interview and wanted to share and hope it would help anyone preparing for a system design interview.
Also Check: Vue Js Technical Interview Questions
Test Cases For Hotel Reservation System
Hotel Booking System or Hotel Reservation System is an online booking engine that allows guests to make secure online reservations through hotel websites and helps hotels to accept bookings and collect payments online.
Hotel Booking System is an online reservation system that processes all hotel reservations made through the hotel website and manages hotel room availability and bookings online. It also provides instant confirmation for hotel bookings and increases customer experience. Nowadays most travelers book hotels online, so Hotels are looking for an online system to maximize their hotel revenues.
Similar Test Cases
- Test Case For Login Attempts
- Test Case For Login Page
Internal Functions Of Booking A Hotel
Here, what Redis does is, it has something called callbacks so, one of the later versions of Redis has introduced this concept called callbacks so, whenever a key is getting expired, you’ll get a notification, okay. And you can do whatever you need to do then, right. So, if you get a Success notification from payment, well and good. Success notification means the payment has gone through then you will mark the booking as BOOKED.
But before that, if you get a call back from Redis saying that the key has expired, and you’ve not got the success from the payment you will say that the booking is CANCELLED. Alternatively, you could also get a failure from payment saying for whatever reason, the payment didn’t go through and you got a failure response from the Payment Service, in that again you can say CANCELLED.
Also Check: How To Watch Meghan And Harry Oprah Interview
System Design Interview Tips
In the end, there are no set answers in system design interviews. In fact, even the authors of our favorite system design books have various thoughts on distributed systems.
The hiring manager is not waiting for one specific correct answer to their questions.
They are concerned with your thought and design process. Be sure to flesh out why you are making your design decisions and their respective tradeoffs.
You will need diverse knowledge and comfort with many different technologies, database systems, distributed systems, and more to answer these questions most effectively.
Engineers, for example, will need to elaborate deeply on the systems within their areas of expertise.
However, management roles, such as TPM, need a much broader knowledge of the systems and technologies they use.
How Do You Design An Amazon Clone
Amazon needs no introduction, it is the most popular e-commerce website which does a lot of thing from managing user data, product data, it also maintains inventory, allows seller to sell, buyers to buy, payment, return and so on. While you dont need to design a full-fledged Amazon app but the key components. The most important thing you need to show is how do you design for scalability and high -avaibility which Amazon has
If you get stuck then you can watch this video to learn how to design a e-commerce application like Amazon
Also Check: Design Questions For Product Manager Interview
Design Twitter Interview Question: Our Answer
Want more help?REST API questions
After establishing the requirements, you can begin to outline your design of the Twitter API. That would look something like this:
We’ll start by outlining important endpoints for the API design. These include:
Then, we can begin sketching out the architecture to support these features. We can start with the user who makes a request to the server.
To accommodate the scalability requirement, we can put several API servers behind a load balancer to help route larger traffic volumes.
Now, we need to include a database to store our tweets. Finally, we must remember that the API we design needs to be scalable.
Therefore, we need to choose a database that is easy to shard and a data model that can handle a large number of reads and writes on the part of the API servers.
When it comes to making this application scaleable, we can have one of our API servers read from a separate cache for our newsfeed. In doing so, we should also use a feed service to refresh our feed cache regularly.
How Do I Know What Type Of Drain I Have
Drains sometimes look alike, whether they are private, municipal or mutual agreement drains. If a property has changed ownership, you may not know if a watercourse is a drain. One important difference between drains is the legal status impacting who is responsible for the drain, and what can be done with it.
In Ontario, there are four types of drains municipal, mutual agreement, award and private drainage systems and roadside ditches.
Read Also: Stats Questions For Data Science Interviews
System Design Interview Questions With Answers
The following are the top 20 System Design interview questions you can prepare before your next Interview. These are pretty basic question and as a developer you should already be familiar with them but if not then make sure you practice before going for any system design interview.
Answer: System Design is a process of defining the elements of a system such as the modules, components, various interfaces and architecture. Interviewer ask System design questions to check technical knowledge of candidate. Its a great way to know whether candidate really understand how things work and computer and tech fundamentals, not just the buzz words like Scaling, High availability, Durability, Resiliency etc.
2. How do you design a web crawler? (solution]Answer: A web crawler service collects information/crawl from the entire internet and fetches millions of web documents. Things to keep in mind while designing a web crawler are:
- The approach is taken to find new web pages
- The approach to prioritize web pages that can change in a dynamic way
- To ensure that the web crawler service is bounded on the same domain
You can try solving the question but if you stuck, I recommend you to checkout Grokking the System Design Interview course on Educative, it provides a step by step solution to not just this question but also other System design question.
Here is a nice system design diagram for web crawler:
Design A Movie Ticket Booking System
Interviewers would be keen on seeing the following points in your answer:
- Duplication: How are you handling instances, such as the same cinema having multiple cinema halls showing different movies simultaneously? Or the same movie being shown at different times in the same cinema/hall?
- Payment Handling: What would be the process for a user to purchase a ticket?
- Selection: How would user a pick a seat, ensuring its not already booked by someone else?
- Price Variances: How would discounted pricing be considered? For example, for students or children.
Don’t Miss: How To Get Through An Interview