Vmware | MTS 3 | Pune | Feb 2021[Offer]
Anonymous User
4805

Status: B.Tech/MTech Computer Science from Tier 2 University/College.
Experience: 6+ Years of Experience in Multiple American MNCs (product based) on C/C++ Linux/Windows
Location: Pune (but have option to work remote permanently)
Date: Feb 2021
(I recently started using leetcode since mid January and till now i have solved almost 200 questions: 100 easy, 98 medium and 4 hard)

Recruiter contacted me on linkedin. I was casually looking for some challenging Jobs so just wanted to try where am i on my skills. So thought of trying it out. ( Till now i have already given almost 8 rounds of 2 more MNCs Qualcomm(4) and Synopsys (4))
Scheduled an interview in the 2nd week of Feb.
Completed 4 rounds within 2 weeks (2 with US Onsite team and 2 from India Team)
Round 1: Coding and Basic OS related questions 1hour
Leetcode medium question somewhat related to Flattening Binary Tree to LinkedList and some string related question.
Interviewer wanted recursive approach, but i was confident on iterative one so first solve those iteratively and later told approach about recursive solutions. I was asked to write complete code end to end with main( and not just the function). I implemented those in C++ and i used some stls. Interviewer was satisfied.

Then interviewer shared a piece of c code with me and asked to explain the memory layout of
the code/variables etc.
Then some basic questions related to threads, processes and Virtual Memory.
I think this round's feedback was very good.

Round 2: Basic Design Concepts and OS/Virtualization related questions 1 hour
This round was kind of discussion and interactive session for me where i also learnt lot of stuff
of OS internals. This was mostly to check how much i am aware of software development, interactions between libaries etc.
Questions:

  1. Hypervisor related
  2. Processor modes
  3. How does you allocate memory other than std c library functions malloc/new etc? (Check alloca method of windows)
  4. Tools related to debugging: gdb,valgrind etc? which tool i have used on windows side?
  5. How do you identify memory leaks? How can you avoid those in first place? Tell other
    momory related issues buffer overflow/underflow etc?
  6. Thread related discussion on mutex,semaphore & conditional variables and when to use?
  7. Some design pattern related questions, don't remember exactly.
  8. What are atomic operations? Give some examples on Linux.
  9. Explain static and dynamic linking in detail? Give some examples of those libraries?
    Some questions related to interaction of static and dynamic libraries. How libstdc++ library is shared across programs while executing? Assume you a pointer provided to you by another library? How will you free memory at the end of program? What are you supposed to do in that case? ( You don't know how the other library have allocated memory, so can't simply call free and delete. So the correct answer is the other library should provide an API which is supposed to free the pointer and its library responsibility to provide you some APIs to do that)
    I think this round's feedback also was very good.

Round 3: Coding round + scenario based questions
This round was supposed to be coding round, but interviewer said my feedback regarding coding is good till now so he will mostly focus on problem solving and other skills.

  1. Some question related to arrays it was simple enough some find frequency in O(n). Interviewer was just checking my coding skill and then some bitwise related programs.
  2. After i solved the previous question easily he moved to other stuff and questions were as follows:
  • what happens in background when you start typing ls -lrt (or dir or ps) on cmd? He wanted to understand end to end process? Like how event/interrupt handler of keyboards know which keys are being pressed? What if keyboard is chinese or in some other language? How does GUI cmd pointer prints whatever output is being given to you by shell/ls-lrt? (fork/execv/file descriptors etc)
  • How does monitor prints or shows something? How does it work? He wanted to understand how much i know about API and thier interactions using buffers (frame buffers/ output buffers etc)
  • Is keyboard listener event always active or busy waiting or in suspend state in case you haven't typed anything for lets assume 5 mins?
    To be honest i didn't knew most of the questions (i have good understanding of file descriptors, fork , execv etc), but i still tried to answer and explain using what knowledge i had about event listeners/interrupt handlers etc.

He moved to next question which is kind of debugging a very generic problem.
He said customer/users are reporting that mouse is unusably slow on host VM when logging in using a client machine. He wanted me to come up what strategies how will i debug this? He told me i have access of complete source of vmware stack.
Explained him the complete approach starting from client machine where vmware software is installed till the point where mouse event reaches to host vm via network identifying where could be the possible problem. Interviewer was very helpful.
I think this round's feedback also Ok.

Round 4: Managerial Round
I was again preparing it to be technical but this interview was mostly interaction.
Hiring manager was really nice.
She told me she has received a very positive feedback regarding my skills and so they are kind of done with Technical rounds. And in this interview she wants to understand my expectation. She asked my questions about my previous work experience and projects.
Next day i got a call from HR that i am selected and they will soon release a initial offer.

Thanks to all leetcode community!!! Keep learning and keep coding.
Compensation details:
https://leetcode.com/discuss/compensation/1099277/Vmware-or-MTS3-or-Pune
Please upvote if find useful!

Comments (4)