I attended the interview process at VMware for the Sr. MTS position in April 2020 amidst the lockdown period. I applied through the online portal of VMware and next week got a call from the HR asking about my availability for Interviews.
Round 1 (Zoom video call + HackerOne online editor):
The interview began with my introduction and my previous experiences/projects, what all technologies, programming language I have worked on, and Related Questions.
Then the Interviewer started asking Questions mostly related to OS concepts and Data structure. The interviewer expected the in-depth knowledge of the Operating system in each and every scenario. Like what happens in userspace then what happens is kernel mode.
Example – what happens when you do a malloc(4)
what kind of address is returned by malloc()? virtual address or physical address?
how memory is allocated with malloc?
does malloc fail ever?
Virtual memory layout and internals of VMM, TLB, need of TLB, page address translation. what is a page fault? how page faults are handled.
Interrupts and kernel context processing.
Process creation using fork(), what happens on fork() call. different between threads and processes. synchronization mechanism, their usage scenarios. what is the difference between mutex and semaphore, mutex, and spinlock?
Explain a System call, context switching, and “process context” vs “kernel context”.
write a multi-threaded program to access a set of global data variables. what kind of care needs to be taken?
Data structure questions included –
1. sorting an array of 1’s and 0’s.
2. how will you store and find a maximum element from an infinite incoming stream of integers?
3. Finding the kth largest of the above dataset.
Round 2 (Zoom video call + HackerOne online editor):
The second round was more focused on the design aspect.
Similar to the 1st round I was asked on what all projects I have worked on and what languages am I comfortable. The interviewer asked a couple of OS questions regarding the system call and asked how file open() call works, side question linked to this was how the OS knows what File system call to execute. I was also asked about the mount() system call internals.
later I was asked to write a code in C++ for a multi-threaded reader-writer problem. And explain little bit variations within the same coding exercise.
Mangers Round mostly about my relationship with the previous team and my current Manager. Good and Bad experiences with my current organization. Why do you want to change the job?
Nothing out of the box. I would suggest answering in a positive manner and not go negative about your current job or any other team member. Keep it simple.
Keep it simple. don’t think too much of complexity during technical interviews unless asked to change. Be vocal about your thoughts like assumptions during code writing or at least get the questions clear before jumping on to the coding. Also, keep it honest if you don’t know some topic just call it out; don’t drag unnecessarily.