VMWare | MTS2 | Bengaluru | Jan 2023 | Offer
Summary
I recently interviewed for an MTS-2 role at VMWare through a referral, undergoing three intensive virtual rounds focused on coding, system design, and behavioral aspects. I am pleased to share that I successfully received an offer within a month of my interviews.
Full Experience
Round 1 - Technical Round [60 mins]: Coding (Data Structures & Algorithms)
The first round began with a brief introduction from both sides, after which I was asked to describe the projects I worked on at Goldman Sachs, followed by some in-depth follow-up questions. For coding, the interviewer first asked me to merge two sorted arrays and then extended it to merging k sorted arrays, which I had to code. Additionally, there were fundamental questions covering the difference between stack and heap memory, advantages of using a vector, and the efficiency of list versus array traversals.
Round 2 - Technical Round [60 mins]: Coding (Data Structures & Algorithms) + System Design
This round also started with a discussion about my projects at Goldman Sachs. For coding, I was given the 'Longest Substring with At Most K Distinct Characters' problem. The system design part involved a comprehensive discussion on various topics, including vertical and horizontal scaling, cache systems, LRU Cache implementation, microservices architecture, load balancing, and master-slave database architecture. A notable question was about how I would prevent a DDoS attack in a software system.
Round 3 - Hiring Manager Round: Behavioral Questions
I was shortlisted for this round on January 27, 2023, and it was scheduled for January 30, 2023. This round was primarily behavioral, covering a wide range of topics:
- Introduce yourself.
- What projects have you worked on?
- How would you handle a conflict with a team member?
- How was your manager's feedback, and how do you handle positive and negative feedback?
- How do you rate yourself in Java from 1-10, and how would you improve your Java skills?
- What was your proudest moment in your career?
- What is the most recent skill you have learned?
- What challenges did you face early in your career, and how did you overcome them?
- How do you handle pressure and high workload?
- Define success according to you.
- How has your work helped your users (i.e., explain the impact of your projects)?
- Do you have any questions for me?
I was very happy to receive an offer about a month after these rounds.
Interview Questions (22)
Merge Two Sorted Arrays
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. The number of elements initialized in nums1 and nums2 are m and n respectively. You may assume that nums1 has a size equal to m + n such that it has enough space to hold additional elements from nums2.
Merge K Sorted Lists
You are given an array of k linked-lists, each sorted in ascending order. Merge all the linked-lists into one sorted linked-list and return it.
Difference between Stack Memory and Heap Memory
Explain the fundamental differences between stack memory and heap memory, including how memory is allocated and deallocated in each, their typical use cases, and their performance characteristics.
Advantages of C++ std::vector
Discuss the advantages of using std::vector in C++ compared to raw arrays or other dynamic data structures like std::list. Consider aspects such as memory management, performance, and ease of use.
Linked List vs Array Traversal Efficiency
Compare the traversal efficiency of linked lists versus arrays. Explain the underlying memory access patterns and how they affect performance for sequential and random access. Discuss scenarios where one data structure would be preferred over the other for traversal.
Longest Substring with At Most K Distinct Characters
Given a string s and an integer k, return the length of the longest substring of s that contains at most k distinct characters.
Implement LRU Cache
Design and implement a Least Recently Used (LRU) cache. It should support the following operations: get and put. get(key) will retrieve the value of the key if it exists in the cache, otherwise return -1. put(key, value) will insert the key-value pair or update the value if the key already exists. When the cache reaches its capacity, it should invalidate the least recently used item before inserting a new item.
Discuss Vertical vs. Horizontal Scaling
Explain the concepts of vertical scaling (scaling up) and horizontal scaling (scaling out) in system design. Discuss their advantages, disadvantages, appropriate use cases, and limitations.
DDoS Attack Mitigation Strategies
Describe how you would architect or implement measures to prevent or mitigate a Distributed Denial of Service (DDoS) attack from significantly impacting your software or system. Discuss various layers of defense.
Microservices, Load Balancing, Master-Slave Architecture
Discuss key concepts in system design including Microservices architecture, Load Balancing techniques, and Master-Slave architecture for databases. Explain their purposes, benefits, drawbacks, and how they contribute to a robust and scalable system.
Introduce Yourself
Tell me about yourself, highlighting your background, experience, and what brings you to this interview.
Discuss Your Projects
What all projects have you worked on? Be prepared to discuss your contributions, the technologies used, challenges faced, and outcomes achieved for relevant projects.
Handle Team Conflict
Describe a situation where you had a conflict with a team member. How did you handle it, and what was the outcome? What did you learn from the experience?
Handling Manager Feedback
How do you typically receive and respond to feedback from your manager, both positive and constructive? Can you share an example of how you used feedback to improve?
Self-Rate Java Skills and Improvement Plan
How do you rate yourself in Java on a scale from 1 to 10? Based on your self-assessment, what specific steps would you take to further improve your Java skills?
Proudest Career Moment
Describe your proudest moment or accomplishment in your career. What made it significant, and what was your role in achieving it?
Most Recently Learned Skill
What is the most recent skill or technology you have learned? Why did you decide to learn it, and how have you applied it?
Early Career Challenges and Overcoming Them
What challenges did you face at the beginning of your career, and how did you overcome them? What lessons did you learn from those experiences?
Handling Pressure and High Workload
Describe how you handle pressure and manage a high workload effectively. Can you provide an example of a time you successfully navigated a demanding period?
Define Success
How do you define success in a professional context, both for yourself and for a team or project?
Impact of Your Work on Users
Explain how your past projects or contributions have directly benefited or positively impacted users or stakeholders.
Do You Have Any Questions for Me?
This is your opportunity to ask questions to the interviewer about the role, team, company culture, or next steps.