Current Employer: Product based MNC
YOE: 5.5+
Application Process: Reached out by a recruiter from BuzzHire
Interview Process:
Round 1: Machine Coding on HackerRank
Question: Create a Inventory management System for Products, where inventory can be reserved for centain time let's say 5 mint and if the order is not confirmed within 5 mints then system should be able to release the reserved inventory.
Basically we need to implement an interface with following methods:-
void blockInventory(String productId, Integer count, String orderId);
void confirmOrder(String orderId);
int getInventory(String productId);Expectation:
Working code (Moduler, Extensible)
Concurrency support(Multithreading handling)
Solution:- Used PriorityBlockingQueue of keep track to reserved inventory. A separate thred will keep on checking the expiry time of peek of the queue and delete once time expired. Overall, round went well, was able to answer follow-up questions by interviewer. Code was also running. For optimization, I suggested, we can use DeleyQueue as well.
Suggestion:- Focus should be on working code. Try to solve core problem first before using a lot of design-patterns
Time : 90 mins
Round 2: High Level Design
Question:- Design a cloud based file sync system(similar to DropBox)
Deatil problem statement:- User can login from multiple devices. when user create a new file on local device, it should be synced to cloud and should be synced back to all other devices.
Solution:- Discussed Functional/Non-functional requirements, Core entities, APIs. Started with a basic design with file upload/download capability. Later enhanced for the design to support large file, also if a new device is getting added in the user account, all files will be synced.
For Syncing back file to device, I was using push based approach.
Interviewer asked multiple questions, I was able to answer some of them, he seemed satiesfied.
Time : 60 mins
Verdict:- Almost after 1 month I got the rejection email, after one of my friend working there asked HR for the feedback. I think HLD round was the reason, I could have done better. One suggestion I would like to give that do Capacity Estimation and Storage/DB choice discussion in the initial phase only. Also since Messho Interviewer remains mostly silent during the interview, so communicate as much as you can.