Finally, ...
After a year long grinding and hard work I got an offer from Microsoft today at London (I Live in London). I fully enjoyed the process end to end and honestly it was not so easy.
(did not mean to brag about but) I am already working at a decent pay at a top bank in UK (as a contractor) but like everyone else I too got FAANG fever. Last year during pandemic- where I decided I wanted to do something more and challenge myself. After I started practicing in April 2020, my intention was to apply job in 6 months but I was never confident, especially when I started attacking hard problems.
Then bit of disappointment and frustration then finally I decided to continue for a year with a view that even if I do not get job at top companies I wanted to make myself as a better software engineer. Initially I started with little hope but as I am doing more and more I am sort of committed more to see the light at the end of tunnel as I have already spent good time.
Since March 2021, I realised I am stressing so decided that I wanted to test my skills or else this is never ending – always doubting myself - so I applied to 2 companies. One is twitter and another one is Microsoft (both via LinkedIn) so that I would be bit more serious and focus more - sort of final push - ultimately it worked out well. (well, twitter never replied me)
Status: 16 Years Exp
Current role: IC role as a Senior engineer
Current Company: Top tier-1 bank in London
Previous companies: Mostly Top Banks, Oracle, IBM etc.
Total Preparation time: 1 year
Educational background: Masters in Computer Science (India)
LC: Easy: 259, Medium: 365, Hard: 48
Step 1:
I applied job via LinkedIn and recruiting team contacted with online assignment consists of 3 questions (codility stuff). Two are medium and one is Easy. It was the first time I was using online editors and I felt bit nervous for no reason. Overall, I could submit successfully all three problems under 50 minutes (total time 90 mins). I did comment out code with time and space complexities.
Step 2:
recruiter was happy and arranged virtual onsite consists of 4 rounds as below (end to end).
Round 1:
It was more of a management round with thorough grill on CV and achievements/failures etc. I felt I did ok here. I would say having management round as first round made me to bit relaxed and allowed me to do well in next 3 rounds.
Round 2:
Low Level Design. Never saw such question but able to given bottom up approach under 25 minutes. Could not draw sequence diagram (as the tool they were using is not really user friendly) but able to articulate my design well under half an hour. Still I explained and showcased how my design will be drawn. This was extended to deeper until which data structure to use and pros/cons of each option I picked. Irrespective of the problem, the approach I picked and design made interviewer happy.
Round 3:
High level design. Again, not a typical online question we see everywhere like design newsfeed, design Facebook or google drive. Very particular high-level design problem and as I am progressing interviewer made it quite complex. At one minute I thought I am screwing completely. Finally, I reiterated the approach and able to convince my design. Wrote some high-level APIs, pseudo code to prove how my design works too. So, this is sort of coding + design (HLD) round. The added requirement was to make the system 99.99% up time took some time to address but (I hope) I answered it correctly at the end.
Round 4:
Fully coding round (codility). I would say high medium/hard sort of problem. Not certainly from Leetcode (or at least I have not seen so far). I saw this is and I told myself, certainly know how to solve this. I took a deep breath and started explaining my approach (I was saying to myself, I can crack this). I am able to explain and code it in well under 30 minutes. Ran and passed in first run. I am happy with that - so does interviewer. He made it bit complex by adding a constraint and able to address that by changing implementation to double linked list + TreeMap.
I am not sure whether the role, level is apt for my experience but I am yet to start negotiating the role and compensation. Moreover, UK market is not comparable to USA and compensation works quite differently here. Most of the people prefer being contractors for same reason. More than role and compensation they offered, the satisfaction I got after investing 1 year of my time is well worth than anything else.
I am not an expert to give suggestions but my learnings were:
My Resources: