You are on page 1of 4

rePurpose Global Evaluation Report

Pattan Asif Khan

22
6 / 20
Job Applied - SDE-2 [BE](Full-Stack Development) 05/ 0

Work experience - 3 yrs 3 mos

Current Profile - Software Engineer, Eleven Inc

Alma mater - Jawaharlal Nehru Technological University

Feedback Summary Requires Further Review

Global Standing - Better than 75% candidates with similar profile *

523 523

Normalised BarRaiser Global Score 200 450 800

Note:  Screening cut-off = 450

Category Rating

459 528 674 485

Coding & Problem Solving High Level Design Low Level Design Unit Testing
(Weightage: 30%) (Weightage: 25%) (Weightage: 15%) (Weightage: 10%)

442 537 647

Problem Solving Software Engineering Soft Skills


(Weightage: 10%) (Weightage: 5%) (Weightage: 5%)

Strengths

He knows well about software practices and SDLC.


He knows notations of time and space complexity well.
He knows well about TDD concepts and pure functions.

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

◦ Employers : Dream 11 ◦ Employers : Uber

◦ Alma Mater : VJTI


Detailed Feedback

Coding & Problem Solving : 459 (Weightage: 30%)

Given an MxN matrix, print the elements in a spiral manner.


Input: matrix = [[1,2,3],
[4,5,6],
[7,8,9]]

Output: [1,2,3,6,9,8,7,4,5]
Note: The matrix can be a non-square matrix.

3/10 MODERATE
DIFFICULTY

He wrote and implemented the solution but it had a lot of bugs.


The solution he wrote was not working for functional cases and he tried a lot to debug it.
Then he suggested that we move on to the next problem since he utilized much time solving this.

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

What will be the time and space complexity?

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.

Can you think of any optimize solution?

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.

High Level Design : 528 (Weightage: 25%)

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.

How do you make sure that notification is sent exactly once?

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.

How do you track the lifecycle of a notification?

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.

How do you schedule a notification using your system?

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.

How will the client handle notifying weekly and daily?

7/10 MODERATE
DIFFICULTY

He was able to handle the recurring notification gracefully as well in their design.

Do you think making this process io heavy is a good choice?

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.

Low Level Design : 674 (Weightage: 15%)

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.

What are the design patterns you have worked upon?


-> Explain the factory pattern with an example.

7/10 MODERATE
DIFFICULTY

He was able to explain the factory pattern in detail. He was able to explain with examples.

Unit Testing : 485 (Weightage: 10%)

Are you familiar with testing frameworks in JAVA?

7/10 EASY
DIFFICULTY

He mentioned different testing frameworks that he had used in his projects.


He knew different testing frameworks really well.

Do you know, what is TDD?


Can you show me and write an example of TDD?

7/10 MODERATE
DIFFICULTY

He explained properly the meaning of TDD.


He then went on and implemented an example of TDD which was working perfectly.
He knew the concepts of TDD really well and had worked on it.

Are you aware of pure function?

7/10 EASY
DIFFICULTY

He explained the concept of pure function well.


He even gave an example of pure function vs non-pure function.

What are different types of testing? Explain smoke testing?

4/10 MODERATE
DIFFICULTY

He mentioned a couple of types of testing methods.


Upon telling him to explain what they meant he said he didn't know much in detail about them.
He said he had not worked on different tests.

Problem Solving : 442 (Weightage: 10%)

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.

Software Engineering : 537 (Weightage: 5%)

Which software development life cycle that you follow? What are different steps you follow for deployment?

7/10 MODERATE
DIFFICULTY

He answered in great detail various phases of the software life cycle.


He pointed from the initiation phase to the deployment of various steps involved and the stakeholders involved.
He knew his project very well.
He mentioned requirement gathering steps as well.

You might also like