VMware | MST-4 | Senior Lead Engineer | All Rounds(Team 1) | Jan end 2021

vmware logo
vmware
Senior Lead Software EngineerBangloreNo Offer
February 4, 20215 reads

Summary

I was contacted by a recruiter for a Senior Lead Software Engineer role at VMware, Bangalore. After multiple rounds of interviews, which included Data Structures & Algorithms, Low-Level Design, System Design, and architectural discussions, I was ultimately not offered the position despite positive feedback on my skills due to tough competition.

Full Experience

I received a recruitment message on LinkedIn for a Senior Lead Software Engineer position in Bangalore. I requested preparation time due to planned holidays, which took about 3-4 weeks. Two days after returning from trekking, I had my first interview round. I received positive feedback from the recruiter within 3 hours, indicating I would proceed to further rounds, which were all scheduled for the following week. Out of the three candidates who made it to the final round, I ultimately received a rejection. The feedback stated that while they were impressed by my skills, accomplishments, and achievements, due to tough competition, I wouldn't be offered the role, and there were no similar positions available at the time.

Round 1: Data Structures & Algorithms

  • Question 1: Valid Parentheses Problem

  • Question 2: Subarray Pair for Given Sum K

Round 2: Data Structures & Algorithms

  • Question 1: Boundary of Binary Tree

  • Question 2: Cycle Detection in Array Mapping

Round 3: Low-Level Design & Project Specifics

  • Discussion on Java versions, Lambda expressions, and Streaming API.

  • Coding task using Lambda/Streaming.

  • Difference between float and double.

  • In-depth discussion on mutual funds and fund investment from my current project.

  • Backend logic for a fund switch system and transaction handling.

  • System Design for a Vending Machine.

Round 4: Architect Round

  • JPA Many-to-Many annotations and E2E code implementation.

  • Authentication and authorization mechanisms.

  • Spring framework dependency injection scenario using @Autowired and @Inject.

  • A programming problem involving combining elements from two sorted arrays with specific constraints.

Interview Questions (15)

Q1
Count Required Braces to Complete Valid Parentheses
Data Structures & AlgorithmsMedium

Given a string of parentheses, return the number of braces required to be inserted to make the parentheses valid. Example: ()))(( -> 4 (because ()()()()()), ((())) -> 0. Note: () is valid but )( is invalid. Similar to LeetCode's Score of Parentheses.

Q2
Subarray Pair with Given Sum K
Data Structures & AlgorithmsEasy

Given an array of integers and a target sum k, find a pair of elements in the array that sum up to k. If using a map approach, handle duplicate elements. Example: I/p: 1, 2,5, 4, 3 K=7 -> O/p: 2,5. I/p 2 : 3, 4, 1 k=6 -> Output: empty. I/p 3: 3, 2, 4, 3, 1, 3 k=6 -> O/p: 3,3. Similar to LeetCode's Two Sum.

Q3
Print Peripheral Nodes of Binary Tree Clockwise
Data Structures & AlgorithmsMedium

Given a binary tree, print all peripheral nodes (boundary nodes) of the tree in clockwise order.

			4
         /   \
        6     9
      /  \     \
     3    1     0
    / \    \   /  \
   4   2    4 8   3
       /         /
      5         7
                 \
                  1
                   \
                    2

Expected Output: 4,3,6,4,9,0,3,7,8,4,5. Similar to LeetCode's Boundary of Binary Tree.

Q4
Cycle Detection and Length in Array Mapping
Data Structures & AlgorithmsMedium

Given a default index array (0,1,2,3,4,5,6,7,...) and an int[] array where int[i] gives the next index. Find a cycle and print the node count within that cycle. Examples: int[]-> 2,4,4,5,0,8,9,6 -> 3, int[]-> 2,4,4,5,5,6,2,6 -> 4.

Q5
Java Lambda Expressions
OtherEasy

Explain what lambda expressions are and how to write them in Java.

Q6
Java Streaming API
OtherMedium

Discuss Java Streaming API, including what streaming is and its different types.

Q7
Count Even/Odd in Array using Lambda/Streaming
Data Structures & AlgorithmsEasy

Given an integer array, write a method to return the count of even and odd integers using Java Lambda expressions or the Streaming API.

Q8
Float vs. Double in Java
OtherEasy

Explain the difference between float and double data types in Java.

Q9
Fund Switch System Backend Logic
System DesignHard

Discuss the backend logic for implementing a fund switch system. Specifically, would you handle it in one transaction or two?

Q10
Parallel vs. Sequential Transaction Processing
System DesignMedium

For handling multiple transactions, would you process them in parallel or one by one?

Q11
System Design: Vending Machine
System DesignHard

Design a Vending Machine with the following user roles:

  • Operator: Refill Vending Machine, Take Money
  • Administrator: Control Vending Machine Administrative Tasks (e.g., Product Management, Machine Configuration like Products Supported, Money), User Roles/Password
  • End User (Customer): View Product, Select Product, Buy. Methods to Accept Money From End User, Perform Validation and Return Back Amount (if applicable).

Primary Requirements:

  • Should support RBAC Validation.
  • Support Administrator Functions like Product Management, Money Control, RBAC.
  • Support End User functions (Allow User to View Product, Select Product and Buy - Method To Accept Money From End User, Perform Validation and Return Back Amount if applicable).

Secondary Requirements:

  • How to extend this to support Multiple User Roles, Product, and Currency.
  • NFRs like Scale.
  • How to Manage Vending Machine Configuration from a Central Location (Configuration Like - Products Supported, Current Availability, State).

Discuss the Usage of SOLID Principles and Design Patterns.

Q12
JPA Many-to-Many Relationship Implementation
OtherMedium

How to write Many-to-Many annotations in JPA. Provide end-to-end code for JPA with a Many-to-Many relation, specifically for multiple students selecting multiple subjects. The candidate mentions keeping it simple with a relation table rather than using Many-to-Many relation annotation usage directly.

Q13
Authentication and Authorization Mechanisms
System DesignMedium

Discussion on authentication and authorization. What do you pass to validate a request (e.g., username/password/token)? How do you assure that an incoming request is a valid request?

Q14
Spring @Autowired and @Inject with Interfaces
OtherMedium

Given a Spring Boot code snippet:

@Component
Interface I1

class A implements I1

Class B implements I2

main() {

@Autowired I1 i;

//Will this compile, if not then what can make this work //Requirement is to inject only class A

The expected solution is to achieve this through @Inject on the class level.

Q15
Combine Elements from Two Sorted Arrays
Data Structures & AlgorithmsMedium

Given two sorted arrays, a and b.

a = 10, 11, 22

b = 6, 8, 12, 24

The task is to form combinations adhering to these rules:

  • Both arrays are sorted.
  • First element should be from A.
  • Last element should be from B.
  • Combination should be in ascending order.
  • Elements have to be subsequent from each array.

Expected Output:

10, 12
10, 12, 22, 24
10, 24

11, 12 11, 12, 22, 24 11, 24

22, 24

Preparation Tips

I was contacted by a recruiter and asked for 3-4 weeks of preparation time due to planned holidays. My preparation schedule was set around these dates.

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!