Intro About Me-
I am from an IIT (Electrical Dept.)
3YOE at fintech MNC
My Work till Now-
I worked in platform Team. We design libraries, distributed systems for all other teams to use. Like Notification Serivice, Logging FrameWork, Distributed RateLimiter, in-house version of kafka mirror maker, bulk job scheduler,etc. We do the design - HLD and LLD, and have to write most efficient code here as single add of latency would escalate and multiply in all other teams.
So for 3 years I basically did System design at work. I was lucky to be there. The traffic was also too high - thousands of TPS. So questions which are asked by interviewers like what is bottleneck here and how will you fix it - I have worked it all in real life. I wish I could tell you this company and this team as it was golden work which I wont get ever later in life.
But my point here is that, for later part in interviews I never had to read or study system design. My work was enough. There were exceptions that I had to read though like Uber location gridding and celebrity effect in twitter. But for rest I could always come up with a much better solution than interviewer himself just because I have seen, designed and worked it on upto production level.
My breif interview experience till now ( will cover in depth in interview experience section) -
Work matters a lot for me and I am targeting startups (really good ones). I have even applied at google and Amazon too though, to be honest, but not sriously.
Companies lke Mindtickle and Observe.ai will really ask some in depth question on system design checking the limit of your knowldge in Database side including how indexing internally works, how it is maintained inside DB, how composite index are taken care by DB like mongo, how an efficient search on index would look like inside DB.
For DS, ALgo they generally asked Medium to Hard.
Google literally asked Hard in screening. I dont remember the exact question but it was a twisted version of -
https://leetcode.com/problems/count-of-smaller-numbers-after-self/ in screening. I was able to do and code it.
Rippling also asked hard questions including DP inside N-ary Tree and a modified variant of Alien Dictionary.
Question like burining tree, max profit job scheduling were also asked. The only easy question I was asked was -
Mininum no of platforms required for given timetable of trains.
Till now I have not been rejected in any company I gave. Have offers from multiple already like - InkPaper, Glowroad, Swiggy, Urban Company, Sense, Observe ai, mindtickle, rippling. Few offers are almost there like Udaan, Gojek, etc. Few are there in onsite stages like amazon, google, zeta, graviton.
My Prepartion and tips for DS and Algo
I did not solve many questions - in 40 days I solved about 180-200 questions. But 50+ were hard , 110+ medium, and rarely any easy. But I gave like 5-6 hours daily from evening to late night. Roughly 5 questions a day. But I go in depth, see all possible solutinons, why I went wrong. I early days, if my runtime was less than top70% I used to rethink and recode. Later I did not get time to re-code but I surely went through top solutions like of lee215.
A tip for those who dont know - When seeing the graph of runTime by all other users and seeing where you lie on bargraph, click on the bar with least time and it will show a sample top code. See the difference. You will find many creative solutions there. Here are some more suggestions by me
First I would like to say Leetcode is enough if you understand the questions and not memorize them. Google will always twist the questions. If you think know a question asked by them then think again. There will be slight modification and interviewer will notice how you approach the problem.
Second, I highly recommend find yourself a partner. You cannot solve all the question in 1-2 months. But at night, after both of you solve some questions, discuss the hard ones and all possible approaches you found. Similarly he will do the same for you. In half time you will get double benefit. This was how I actully learnt a lot with this technique.
So I was able to solve almost all problems I faced. PS- I still need little work on my graph. But even google will mostly ask modiefied BFS DFS in graphs but they will be hard for you to realize, it hides in plain sight.
As requested by some here are some interview and compensation links (will add more soon within next 15 days) -
https://leetcode.com/discuss/compensation/1380068/inkpaperlumenci-sde-3-gurgaon/1035429