Microsoft | L62 | London | April 2021 [Offer]
Anonymous User
2420

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

Interview Process:

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:

  1. Until you attend an interview you never know whether you are ready or not. I was nervous to apply and pushed myself until march 2021.
  2. Listen to problem statement clearly. I know it is really nervous to think and come up with solution but practice more and more.
  3. do not attack problem or design without agreeing what you are designing/writing. In round 3 I struggled (HLD round) as I did not understand ‘core’ requirement in first place. Had I not understood clearly certainly I would have failed to address it.
  4. Keep practicing with good hope. You never know when your turn is.
  5. most importantly, keep a notes of your system design topics. You will not have sufficient time to do revision in last week so kep handy notes ready.

My Resources:

  1. I had Leetcode Premium (really worthy to buy compared to what we get paid if we get a job).
  2. completed 'Designing Data Intensive Applications' once. I learned good deal of stuff here as at job we don’t design highly scalable systems day in day out. But I made myself very sure that my learnings should not be anyway less than any experienced FAANG engineer.
  3. System design course done few times (I learned it and when I saw a different way of designing same requirement I had to go through them again to see where and what I did miss it)
Comments (5)