Moody's Software Engineer (Backend) Interview Experience (July 2026) – Rejected
Summary
I interviewed for a Backend Software Engineer role at Moody's, completed two technical rounds (system design and DSA), but was rejected after the second round.
Full Experience
Background
- ~1.5 years experience as Backend Engineer (SE-1) at an MNC.
- Interview process consisted of 3 technical rounds, but I was rejected after Round 2.
- HR only mentioned to be prepared on all fronts; no round-wise agenda was shared.
Round 1 – System Design / HLD
Interviewer: Staff Software Engineer
Problem Statement
Design a Product Inventory & Pricing Service for an e-commerce platform supporting:
- Retrieving product details
- Updating product prices
- Updating inventory when orders are placed
Additional requirements:
- Read-heavy system
- Discuss consistency vs availability
- Authorization for inventory updates
Discussion
I first clarified the requirements and explained why I would prioritize Consistency over Availability, since overselling inventory should be avoided.
Some of the design choices I discussed:
- SQL over NoSQL for ACID guarantees.
- REST APIs for client communication.
- gRPC for service-to-service communication.
- Redis as the cache layer.
- Bloom Filter to reduce unnecessary database lookups.
- Master-Replica database architecture.
- Basic Product table containing UUID, name, description, price and available quantity.
Follow-up Questions
1. What if Redis goes down?
I initially answered that Redis should run as a Redis Cluster.
The interviewer then asked:
What if the entire Redis cluster becomes unavailable?
He was looking for an application‑level L1 in‑memory cache as an additional fallback.
2. Multiple users requesting the same product
He asked what would happen if hundreds of users requested the same product simultaneously.
I suggested batching duplicate requests so that only distinct product IDs would hit the database.
3. Multiple users purchasing the same product
He asked how multiple users purchasing the same item simultaneously should be handled.
I first suggested locking writes. After discussion we converged on using Redis atomic decrement operations for inventory management.
Overall, the round was highly discussion‑oriented, with most questions building on previous answers.
Round 2 – DSA
Interviewers: Senior Director & Principal Engineer
Q1: Print BST nodes in ascending order
Given a BST, print all nodes in ascending order.
I implemented the standard recursive inorder traversal.
The Senior Director then asked whether the solution would still work if the tree contained a very large number of nodes. He was concerned about stack overflow on highly skewed trees.
When asked for alternatives, I mentioned increasing the process stack size (something I'd done during competitive programming) but noted it is environment‑specific and not a production solution. I also considered an iterative traversal but dismissed it because it would still use O(h) auxiliary space. In hindsight, an iterative traversal or Morris Traversal would have been appropriate.
Q2: Longest Subarray with At Most 2 Distinct Elements
I proposed a binary search on the answer combined with fixed‑size window validation instead of the standard sliding window approach.
The interviewer asked me to implement it. After reviewing my code, he pointed out that the problem could be solved directly using a sliding window.
I explained the sliding window solution. He said it wasn’t necessary to code it, and the interview concluded after about 35 minutes.
Result
Rejected after Round 2.
Hopefully this helps anyone preparing for Moody's backend interviews.
Interview Questions (3)
Product Inventory & Pricing Service Design
Design a Product Inventory & Pricing Service for an e-commerce platform that supports retrieving product details, updating product prices, and updating inventory when orders are placed. The system should be read‑heavy, handle consistency vs availability trade‑offs, and enforce authorization for inventory updates.
Key design considerations mentioned:
- Use SQL for ACID guarantees.
- Expose REST APIs for external clients and gRPC for internal service‑to‑service calls.
- Cache product data in Redis with a fallback L1 in‑memory cache.
- Employ a Bloom filter to reduce unnecessary DB lookups.
- Deploy a master‑replica database architecture.
- Store product information (UUID, name, description, price, quantity) in a Product table.
- Discuss handling Redis cluster failure and high concurrent request scenarios.
Print BST Nodes in Ascending Order
Given a Binary Search Tree (BST), print all nodes in ascending order.
Follow‑up: Ensure the solution works for a very large or highly skewed tree without causing stack overflow.
Longest Subarray with At Most 2 Distinct Elements
Find the length of the longest contiguous subarray that contains at most two distinct elements.
The candidate initially proposed a binary‑search‑on‑answer approach combined with a fixed‑size window validator, but the interviewer guided toward the standard sliding‑window solution.