Professional Documents
Culture Documents
22
6 / 20
Job Applied - SDE-2 [BE](Full-Stack Development) 05/ 0
523 523
Category Rating
Coding & Problem Solving High Level Design Low Level Design Unit Testing
(Weightage: 30%) (Weightage: 25%) (Weightage: 15%) (Weightage: 10%)
Strengths
He is able to come up with the design for the question asked and was able to handle most of the cases in their design.
He is able to talk about the APIs and the database design for the question asked. He can talk about the APIs in detail with their HTTP methods, requests, and responses.
He is able to discuss the tradeoff between the different databases to be used and can make an informed decision about which DB to use.
Areas Of Improvement
He should think of the problem approach before starting coding since he can't solve the first problem.
He needs to know more about the concepts of different types of testing patterns and their significance.
He needs practice with problem-solving on arrays and indexes.
He is not able to handle some of the edge cases in their design For example he does not handle the case where the notification is not delivered to the end-user.
Round - PEER (01/06/2022) View Exercise Round - EXPERT (05/06/2022) View Exercise
Interviewer: Interviewer:
◦ Interviewed 150+ candidates ◦ Interviewed 50+ candidates
Output: [1,2,3,6,9,8,7,4,5]
Note: The matrix can be a non-square matrix.
3/10 MODERATE
DIFFICULTY
Given an array of integers and an int value of k, return the list of possible pairs of integers in the array that sum up to the value k.
ex.
[1,4,3,8,9,2,-1]. k=5
ans = [ [1, 4], [2, 3] ]
8/10 EASY
DIFFICULTY
He initially gave an inefficient solution and went on to think of an efficient solution on his own.
He displayed good problem skills to solve the logic of the problem.
He thought of edge cases himself and added them to the code.
His code was working fine for all cases
7/10 EASY
DIFFICULTY
He gave the correct space and time complexity of the solution confidently.
He knew concepts of time and space complexity notations well.
8/10 EASY
DIFFICULTY
He initially gave an inefficient solution and went on to think of an efficient solution on his own.
He displayed good problem skills to solve the logic of the problem.
He optimized his O(N log N) solution to the O(n) solution in terms of time complexity.
You need to design a notification platform where a client should be able to send notifications and schedule notifications as well. How do you go about designing a
system like this? Explain the high-level design for the same.
6/10 MODERATE
DIFFICULTY
He was able to come up with a high-level design for the question. He was able to handle most of the cases gracefully but was unable to talk about handling the failure scenario where the
notification was not delivered to the user.
How will the companies like Zomato and Swiggy publish the notification to the queue?
8/10 MODERATE
DIFFICULTY
He suggested that all the clients would publish the notifications they want to be sent to the queue. Asked him how would the clients know about the queue since their servers were hosted in
the private network and our servers were in a different private network.
He was able to pick up the hint and suggested that we can expose an API that the client would use to post the requests and then we can post the data to the queue.
How will your system work? Talk about the end to end flow of the system?
8/10 MODERATE
DIFFICULTY
He was able to explain the e2e flow for their design. He was able to talk about the tech stack that he would use to implement every component of the system as well.
He was also able to discuss the reasoning for using different components in the design.
How will you know about the topic in your private network?
7/10 MODERATE
DIFFICULTY
He suggested that external clients should be posting to their queue. Asked him how would the clients know about which queue and topic to post in.
He was able to pick up the hint and was able to expose an API for the clients and then push the data received to the queue.
4/10 MODERATE
DIFFICULTY
He was unable to come up with a solution for tracking the failure case where the notification was not delivered to the user.
How can you acknowledge if the notification was send successfully or not?
4/10 MODERATE
DIFFICULTY
He was unable to handle the case where the notification was not delivered to the client.
Gave him the hint that we could maintain an internal lifecycle for the notification to keep the track of the state of the notification. He was unable to pick up the hint and handle the failure
case.
4/10 HARD
DIFFICULTY
Gave him the hint to track the lifecycle of the notification to handle the case where the notification delivery failed.
He was unable to pick up the hint.
7/10 MODERATE
DIFFICULTY
He was able to come up with the design for scheduling the notification. He suggested creating a cron job that would be creating the S3 files for the notifications that were to be sent that
particular day and then another cron job running every min could read that file and send out the notifications according to the time.
Explain the part where you are having a Cron job that is creating new files each day.
7/10 MODERATE
DIFFICULTY
Asked him to talk about the cron job that was creating a new file for the notifications to be sent every day. He was able to explain the job in detail and was able to talk about how he would be
using the output of the job.
7/10 MODERATE
DIFFICULTY
He was able to handle the recurring notification gracefully as well in their design.
6/10 MODERATE
DIFFICULTY
He suggested deleting the entry from the S3 after reading them in the cron job that was run every minute to send the scheduled notifications.
Asked him would delete the entries from the file, not an IO-heavy operation.
He was unable to optimize its approach but he was able to come up with the correct approach for the question.
You need to design a notification platform where a client should be able to send notifications and schedule notifications as well. How do you go about designing a
system like this? Explain the high-level design for the same.
8/10 MODERATE
DIFFICULTY
He was able to talk about the APIs required for the question in detail. He was able to talk about the HTTP methods, requests, and responses for the APIs.
He was able to talk about the Database they would be using. He was able to discuss the tradeoff of using the SQL and NoSQL databases and take an informed decision on using which DB.
Talk about the database schema for the system. What are the APIs that you would like to expose to the system?
10/10 MODERATE
DIFFICULTY
He was able to talk about the APIs required in detail. They were able to talk about the HTTP Method, response, and request for the APIs.
He suggested using the NoSQL database, he was able to discuss the tradeoff between using SQL and NoSQL databases. He suggested that each notification could have a different format
hence he was using NoSQL based database.
What database will you choose for the system? State reason for the same.
-> What are the things that you will store in the database?
9/10 MODERATE
DIFFICULTY
He was able to discuss the tradeoff between the SQL and NoSQL databases. He was able to talk about the things he would be storing in the database.
7/10 MODERATE
DIFFICULTY
He was able to explain the factory pattern in detail. He was able to explain with examples.
7/10 EASY
DIFFICULTY
7/10 MODERATE
DIFFICULTY
7/10 EASY
DIFFICULTY
4/10 MODERATE
DIFFICULTY
You need to design a notification platform where a client should be able to send notifications and schedule notifications as well. How do you go about designing a
system like this? Explain the high-level design for the same.
5/10 MODERATE
DIFFICULTY
He was able to gather all the functional requirements but he was unable to gather non-functional requirements.
Which software development life cycle that you follow? What are different steps you follow for deployment?
7/10 MODERATE
DIFFICULTY