moengage logo
Moengage路 Data Engineer

Data Engineer || MoEngage || 2 YOE

Result
Rejected
Experience
2 years
Posted
18 Sept 2025
366 reads

Summary

I recently interviewed for a Data Engineer position at MoEngage, which included a DSA round where I was asked to implement the 'Shuffle an Array' problem. Despite discussing several approaches for the solution, my candidacy was ultimately rejected.

How it went

I received a call from MoEngage HR regarding a Data Engineer opening. The interview process was described as having one DSA round, one System Design round, and one HR round. My first round was the DSA round. The interviewer provided a link to the LeetCode problem 'Shuffle an Array' and asked me to explain my approach and write code while discussing it. Initially, I proposed a brute-force idea of generating all permutations, but after discussing its time complexity, we agreed it wouldn't be an optimal solution. I then proceeded to explain multiple other approaches:

  1. Approach 1: Generate two random indices (using a random function) in the range [1, n], swap the elements at those indices, and then return the array.
  2. Approach 2: Iterate through the array. For each current index i, generate a random index j (typically within the range of elements not yet processed, e.g., [i, n-1]) and swap the elements at nums[i] and nums[j].
  3. Approach 3: Insert all elements into a HashSet (as in Java) and then randomly remove elements one by one to form the shuffled array. I did mention that this approach might not guarantee equal likelihood of all permutations.
Despite our discussions on these different methods, I was informed that my application was not successful and I was rejected.

Questions asked (1)

  1. 01

    Shuffle an Array

    Data Structures & Algorithms 路 Medium

    The interviewer shared a link to the LeetCode problem 'Shuffle an Array'. The task was to design an algorithm to randomly shuffle an integer array, ensuring that all permutations of the array are equally likely. I needed to implement the Solution class with the following methods:

    • Solution(int[] nums): Initializes the object with the integer array nums.
    • int[] reset(): Resets the array to its original configuration and returns it.
    • int[] shuffle(): Returns a random shuffling of the array.

    Open the problem

Know someone preparing? Send it to them:WhatsAppLinkedInX

Interviewed at Moengage recently?

Write up your rounds while you still remember the questions. It helps the next person more than you would think.

Share your experience
Discussion 0

Questions for the author, or how your own interview compared.

Join the discussion

Sign in with Google to comment or ask the author a question.

No comments yet

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