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
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 .
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 .
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
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