VMware | MTS Java Spring boot | Bengaluru

vmware logo
vmware
MTS Java Spring bootBengaluruRejected
May 27, 20212 reads

Summary

I recently interviewed at VMware for an MTS Java Spring Boot role in Bengaluru. The interview process consisted of a HackerRank test, a Java technical interview, and a System Design discussion. Despite receiving positive feedback in individual rounds, I was ultimately rejected.

Full Experience

My interview journey at VMware for the MTS Java Spring Boot position started with a HackerRank test, which was 90 minutes long. I was given two coding questions: a medium-level string problem that was a variant of 'String Compression', and another problem where I had to add two strings as numbers, for example, a='120' and b='45'.

The second round was a Java Technical Interview. This round delved deep into core Java features, followed by a detailed discussion on the Java Collections Framework. The interviewer asked me to explain the differences between ArrayList and primitive arrays, and also explored the internal working mechanisms of HashMap. We also covered various Multithreading concepts. I received positive feedback after completing this round.

The final round was a Technical Interview focused on High-Level Design, lasting approximately 60 minutes. This round involved more discussion-oriented questions. I was questioned on Operating System concepts like Virtual Memory, Thrashing, and Semaphores. Database Management System questions included explaining ACID properties and how to find Nth Salaries. Additionally, I was asked to design a 'FailProne' method. While I received positive feedback for this round, I admit I struggled with some of the questions and couldn't answer them properly. Despite the positive feedback from the individual rounds, the final verdict was a rejection.

Interview Questions (10)

Q1
String Compression
Data Structures & AlgorithmsMedium

Given an array of characters, compress it in-place. The length after compression must always be less than or equal to the original array. Every element of the array should be a character (not int) of length 1. After you are done modifying the input array in-place, return the new length of the array.

Q2
Add Two Strings as Numbers
Data Structures & Algorithms

Given two strings representing numbers, for example, a = "120" and b = "45", write a function to add them as if they were actual numbers and return their sum as a string. You are not allowed to convert the strings to integers directly.

Q3
Explain Java Features
Other

Discuss the key features and characteristics of the Java programming language.

Q4
Discussion on Java Collections Framework
Other

Provide a detailed discussion on the Java Collections Framework, including its interfaces, core classes, and common use cases.

Q5
Difference between ArrayList and Primitive Array
Other

Explain the fundamental differences between Java's ArrayList and a primitive array, covering aspects such as type safety, resizing, and performance.

Q6
Internal Working of HashMap
Data Structures & Algorithms

Describe the internal working mechanisms of Java's HashMap, including concepts like hashing, collision resolution (e.g., chaining/open addressing), and resizing.

Q7
Multithreading Concepts
Other

Discuss fundamental concepts related to Multithreading in Java, such as threads, processes, synchronization mechanisms (locks, semaphores, monitors), and potential concurrency issues.

Q8
OS Concepts: Virtual Memory, Thrashing, Semaphores
Other

Explain the concepts of Virtual Memory, Thrashing, and Semaphores within the context of Operating Systems.

Q9
DBMS Concepts: ACID Properties and Nth Salaries
System Design

Discuss the ACID properties in database transactions and explain different approaches to find the Nth highest salary in a database.

Q10
Design a FailProne Method
System Design

Design a method that inherently has failure points and discuss strategies to make it more robust and resilient in a production environment.

Preparation Tips

My main tip for preparation is to thoroughly review basic concepts across various domains. I focused on strengthening my understanding of core Java features, data structures, algorithms, and fundamental system design principles, as these were heavily tested throughout the interview process.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!