College - Tier 3 , 2023 passed out , CSE branch
Current Designation - Software Engineer at SAAS product based company
Exp - 2.2 Yrs FTE
Round 1 ) DSA
Taken by lead software engineer . Focussed mainly on DSA
- Given the intervals which represents the meeting [start,end] time , find if the person able to attend all the meetings or not .
Asked to refactor the code and decrease the number of lines . Since I have written my custom comparator in a seperate class , asked to move it in lambda expressions . - Find maximum sub array sum .
Asked about the current work and to write the example for the meta information of a report (since we deal with reporting)
Round 2) System Design (after 1 week )
Taken by a Lead software Engineer .
some questions based on my current team and how you will spend a day in your company .
- How Authentication and Authorization works .
- PATCH Vs PUT http methods
- What is sharding , how it is useful , and what is celebrity problem , what happends if no. of servers changes how do you handle that .
- What is partitioning and how it is diff to sharding
- what is indexing how it helps in query optimization / how it works internally .
- Do you review PR's and how you will provide the review comments to your collegues .
- If you are facing the 504 gateway timeout , what are the cases and how you will figure out and how u will solve the issues .
- Design a HLD for whatsapp like chat system -- I wasn't went throught the system design , but told him about the web sockets and message queues for notifications . He asked me to look back how the websocket works .
Round 3) Managerial Round (after 1 week )
Taken by Staff Engineer
Asked me some questions about the query optimizations , why redshift over postgres is choosen in my current team architecture . Discussed about the shard migration tool which I have done at my current org .
- Design a web scrapper where you will be given one start url , and n which represents the level till which you need to scrap the urls and return the list of urls .
I went throught the simple HLD where I will process the incoming req syncronously by hitting the url the downloadig the data and processing the data for urls and do it in a recursive way.
But he is not satisfied saying that it is good for smaller depth but what if the level is in billions .
Then I told him like we can use Message Queue where producer will be the clients requests and subscribers will be our worker threads which wil process the result async way . Then he asked me how would be the response ? I told him that we can use a storage where we will be able to push and also client can be able to access may be something like Amazon S3 (we can give pre-signed url for client's email to access the response ) .
He asked me like what if the user want to know the status and you will not be given the email . I told him like we can have a logs page for these requests in the UI and we can update the status as Queued / IN_PROGESS / SUCCESS / FAILED . He again came up with follow up saying what if the pods/worker thread processing the request of n = 1M and it proceessed till 0.5M and the pods gets crashed , how would you handle ?
I told him that we can run NFR's and come up with a threshold level after which the pods might crash , by using that threshold we can set the breakpoints / check points to store the results in our storage system and maintain the meta info about the request . If in case if it fails we will start processing the req where it gets failed . At the end he said I am done with my questions . He asked me if I have any questions .
My Learing - I wasn't good at system design and I didn't went through any system design resources . The interview is not tough , If I would have gone through the system design .
Round 4 ) Managerial Round - Taken by a manager
- What you did during your internship ?
- Some questions based on my resume .
- Release process in my team
and some typical questions like why you are leaving ?
Verdict - Kept on hold due to just 2.2 yrs of exp . They want to down level to SDE -1
I want to know the compensation range that freshworks offers based on my current CTC . Is it good to join freshworks ? Is it offers any location like chennai / Banglore / Hyd ?
The reason for my change is that , My current location is chennai and I am working remotely and my manager is asking me to come to office since I am a fresher in the team . Also the learning is not that great , more effort going in to maintaining the things . I don't care about the WLB . I am more inclined to move to Banglore .
My priority is Learning > Compensation > WLB


