This round was of 1 hour and too place on 20th March. I was asked this problem statement.
You are building a versioned datastore. You are given two APIs.
The timestamp for PUT calls can be unordered. For eg.
PUT(1, "abc", 10)
PUT(2, "bcd", 11)
PUT(1, "cde", 8)
PUT(2, "def", 9)
GET(1, 5) -> ""
GET(1, 9) -> "cde"
GET(2, 15) -> "bcd"
I gave a BST based approach for both PUT and GET calls. Since Golang doesn't have a native self-balancing BST data structure, I implemented the solution using a simple BST. We ran the code for a few cases and it mostly worked fine.
The recruiter informed that I'll be moving to the next round.
This was the HM round and was of 1 hour. It took place on 24th March. The round went extremely well as the HM was very interested in a project I had worked on at my current company. He explored the feature live in the interview and was impressed with the technical deep dive I gave on it's internals. This was followed by a discussion on my team strucutre and standard behavioural questions.
Got a call from the recruiter that I will be moving forward for the other two rounds.
This round took place on 26th March and was of 1 hour. The interviewer was based out of the Canada office. It was a real world problem statement round. Since I was interviewing for a data migration team, the problem statement was somewhat related to it. While I don't remember it word to word, it was essentially this.
You are migrating data from a DB to another datastore. The max acceptable lag during this process is k seconds. If the data from the primary store has not appeared in the secondary datastore after k seconds, an alert should be raised by the verifier process. An event will be generated every time a piece of data flows from primary DB, and another event will be generated once it reaches the secondary DB.
This round for some reason didn't go as well as I would have expected with a self feedback of lean hire. But since round 3 and 4 are a loop essentially, my 4th and final round was scheduled.
This was an HLD round of 1 hour and took place on 27th March. The interviewer was based out of the Sydney office and was super chill and friendly. After a brief intro, I was given a problem statement of designing the DB migration platform for a company like TicketMaster transitioning to a nosql based datastore.
This round went very well. I had a lot of clarifying questions wrt the scope for design and the interviewer happily clarified each doubt. He seemed happy with the overall solution and signalled a positive feedback.
4 days later, on 31st March, I got a call from the recruiter that the feedback for all the rounds except R3 was positive. But because of the excellent feedback in HM round, they'll be rolling out the offer. I received the offer letter on 2nd April.
Out of around 30+ interviews that I gave in a span of 2 months, I felt MongoDB's interview process to be the most well-structured and close to real world demands of the job. There is not a very heavy emphasis on grinding LC, but more about how you come up with solutions to real world problems. Kudos to MongoDB for this.
https://leetcode.com/discuss/post/7772007/mongodb-swe3-gurugram-offer-april-2026-b-n4pa/