Frontend Interview Experience – Flipkart
Recently, I had the opportunity to interview for a Frontend Developer role at Flipkart, and I’d like to share my experience.
🟢 Round 1: Machine Coding (MC Round)
The task was related to CRUD operations.
The platform used was HackerEarth.
The experience on HackerEarth was smooth — no lag while compiling or running the code.
The problem focused on practical frontend implementation and clean structuring.
Verdict: Selected ✅
🟡 Round 2: PSDS Round (Problem Solving & Data Structures)
Before the interview, I was expecting LeetCode-style DSA questions. However, the interviewer asked frontend-specific problem-solving questions, which I found very interesting.
✅ Problem 1: Convert Flat Data to Tree Structure
I was asked to build a function convertToTree to transform a flat array of folders/files into a nested tree structure for a recursive Sidebar component (similar to a File Explorer UI).
Example input:
const flatData = [
{ id: 4, parentId: 2, name: 'Resume.pdf' },
{ id: 1, parentId: null, name: 'Root' },
{ id: 2, parentId: 1, name: 'Documents' },
{ id: 3, parentId: null, name: 'Config' }
];
This tested:
Tree data structure understanding
Efficient mapping using objects/maps
Recursive UI thinking
I was able to solve this, and the interviewer was satisfied with my approach.
⚡ Problem 2: Concurrency Control (Worker Pool Concept)
"You are given an array of async tasks (functions returning Promises). Execute them with a concurrency limit — at most limit promises should run at the same time. Once a task finishes, start the next immediately. Return results in the same order as input."
Example:
Tasks = [Promise1, Promise2, Promise3]
This problem tested:
Understanding of Promises
Async queue handling
Worker pool / concurrency pattern
I couldn’t complete the full implementation, but I was able to explain my intuition and approach clearly.
async function runWithConcurrencyLimit(tasks, limit) {
const results = new Array(tasks.length);
let nextIndex = 0;
async function worker() {
while (nextIndex < tasks.length) {
const currentIndex = nextIndex;
nextIndex++;
try {
results[currentIndex] = await tasks[currentIndex]();
} catch (err) {
throw err; // propagate error
}
}
}
// Start min(limit, tasks.length) workers
const workers = Array(Math.min(limit, tasks.length))
.fill(null)
.map(() => worker());
await Promise.all(workers);
return results;
}📌 Key Takeaways / Suggestions for Frontend Interviews
Don’t prepare only LeetCode-style DSA.
Practice real-world frontend data transformation problems.
Prepare async JavaScript deeply (Promises, concurrency control, worker pool patterns).
Focus on clarity of thought and structured explanation.
Frontend interviews are evolving — they test real engineering thinking, not just algorithm memorization.
Waiting for second round result. I will update the post once i will get the result .


