Flipkart is India's leading e-commerce company, building large-scale consumer shopping experiences serving hundreds of millions of users. Their frontend team builds the web and mobile applications for product discovery, search, checkout, and seller dashboards using React, JavaScript, and Node.js.
54
Questions
28
Day Plan
4
Stages
26
Topics
UI Engineer 1
Builds React components and user interfaces for Flipkart's consumer-facing products including product pages, search experiences, and checkout flows.
UI Engineer 2
Leads frontend feature development, drives performance optimization for high-traffic pages, mentors junior engineers, and contributes to Flipkart's shared component libraries and design system.
Senior UI Engineer
Defines frontend architecture for product verticals, drives cross-team technical initiatives, establishes best practices for large-scale React applications, and mentors the engineering team.
Based on publicly available information. Actual processes may vary by team and role.
Build a complete working application using only vanilla JavaScript, HTML, and CSS. No frameworks or libraries allowed. You are given a problem statement (e.g., e-commerce UI, chat application, search bar with API integration) and must implement a functional, well-structured solution with proper DOM manipulation, event handling, and clean code. Conducted on Google Meet with screen sharing.
In-depth discussion of JavaScript fundamentals and React concepts. Expect output-based questions where you predict console output for closures, hoisting, promises, and event loop scenarios. React questions cover hooks, context, reconciliation, and rendering patterns. May include DSA problems solved in JavaScript.
Broad discussion of HTML, CSS, JavaScript, and Web APIs. Topics include CSS layout techniques (Flexbox/Grid), event propagation, browser rendering pipeline, TypeScript vs JavaScript, HTTP request/response cycle, CSS specificity, and debounce/throttle implementations.
Discussion with the hiring manager about past projects, technical decisions, team collaboration, and cultural fit. Expect detailed questions about your specific contributions to projects, challenges faced, and how you approach learning. HR round covers compensation, notice period, and logistics.
Total process duration: 2-4 weeks
Flipkart's machine coding round is the most distinctive part of the process — it strictly requires vanilla JavaScript with no frameworks or libraries. The emphasis is on clean, well-organized code with proper DOM manipulation, event delegation, and modular architecture. A code review discussion typically follows the machine coding round on the same day.
28-day study plan across 4 phases
Questions to practice:
Questions to practice:
Questions to practice:
Questions to practice:
Questions relevant to preparing for frontend interviews at Flipkart, based on their known tech stack and common frontend interview patterns.
How does JavaScript hoisting work?
What is event delegation in JavaScript and why is it useful?
How do you select and manipulate DOM elements in JavaScript?
What is an IIFE (Immediately Invoked Function Expression) and why is it used?
What is a closure in JavaScript and why are they useful?
What are Promises in JavaScript and how do they work?
How do async/await work and how do they relate to Promises?
Explain the JavaScript Event Loop and how it handles asynchronous operations.
How does the 'this' keyword work in JavaScript?
What is the difference between microtasks and macrotasks in JavaScript?
What are Promise.all, Promise.race, Promise.allSettled, and Promise.any, and when do you use each?
How do debounce and throttle work, and when would you use each?
What is currying and partial application in JavaScript?
When should you use Map and Set instead of plain objects and arrays?
What are call, apply, and bind and how do they differ?
What is the difference between block scope and function scope?
What are WeakMap and WeakSet, and how do they differ from Map and Set?
Explain event bubbling, capturing, and how stopPropagation works.
How do you implement data polling in JavaScript?
Explain JavaScript's prototype chain and how inheritance works.
How does JavaScript garbage collection work and how can you prevent memory leaks?
How would you implement a debounce function from scratch with advanced features?
How would you implement a simplified Promise from scratch?
What is requestIdleCallback and how does it compare to other scheduling APIs?
How do WebSockets work and when would you use them over HTTP?
How would you implement Function.prototype.bind from scratch?
How would you implement Promise.all and Promise.race from scratch?
What is the difference between functional and class components in React?
What is state in React and how is it different from props?
What is the Virtual DOM and how does it work?
Explain the useState and useEffect hooks and their common patterns.
What is React Context and when should you use it?
What are custom hooks and how do you create them?
What is useRef and when should you use it?
How would you implement a useLocalStorage custom hook?
How would you implement a useFetch custom hook?
How do React component lifecycle methods map to hooks in functional components?
Build an autocomplete/typeahead search component in React that fetches suggestions from an API with debouncing, keyboard navigation, and highlighted matching text.
Explain React.memo, useMemo, and useCallback. When should each be used?
How does React's reconciliation algorithm work?
What are React's concurrent features and how do Suspense and transitions work?
How does list virtualization (windowing) work in React and when should you use it?
Explain React's hydration process and common hydration mismatch issues.
Explain React's diffing algorithm in detail. How does it achieve O(n) complexity?
Implement a basic version of useState from scratch.
Implement a basic version of useEffect from scratch.
What are Core Web Vitals and why do they matter?
What is the difference between SSR, SSG, and CSR?
How do you identify and fix JavaScript runtime performance issues?
What is the Critical Rendering Path and how do you optimize it?
How do you identify and optimize long tasks on the main thread?
How does CSS Flexbox work and when should you use it?
How does CSS Grid work and how does it differ from Flexbox?
Explain the CSS Flexbox axis model and how to solve common layout challenges with it.
Closures
A closure is a function that retains access to variables from its outer (enclosing) scope even after the outer function has returned, enabled by JavaScript's lexical scoping.
Hoisting
Hoisting is JavaScript's behavior of moving declarations to the top of their scope during compilation — var is initialized as undefined, let/const enter a Temporal Dead Zone, and function declarations are fully available before their code position.
Promises & Async/Await
Promises represent eventual completion or failure of async operations with three states (pending, fulfilled, rejected), and async/await provides syntactic sugar for writing promise-based code that reads like synchronous code.
Event Loop & Runtime
JavaScript is single-threaded with one call stack — the event loop enables async behavior by processing microtasks (promises) before macrotasks (setTimeout) between each cycle of the call stack.
The this Keyword
The this keyword is dynamically bound based on how a function is called — four binding rules (new, explicit, implicit, default) determine its value, with arrow functions being the exception that inherits this lexically.
Prototypes & Inheritance
Every JavaScript object has an internal [[Prototype]] link forming a chain — property lookups walk this chain until found or null. ES6 classes are syntactic sugar over this prototypal inheritance model.
Scope & Scope Chain
JavaScript uses lexical scoping where variable access is determined by code structure at write time — the engine walks up the scope chain from inner to outer scopes until it finds the variable or reaches the global scope.
IIFE (Immediately Invoked Function Expression)
An IIFE is a function expression that is defined and executed immediately. Before ES6 modules, IIFEs were the primary mechanism for creating private scope and avoiding global namespace pollution.
Events
DOM events flow through three phases — capture, target, and bubble — and event delegation leverages bubbling to handle events on dynamic child elements with a single parent listener.
Memory Management & Garbage Collection
JavaScript automatically manages memory through garbage collection using a mark-and-sweep algorithm — objects are freed when they become unreachable from root references, but common patterns like forgotten timers and detached DOM nodes cause memory leaks.
Data Structures
ES6 introduced Map and Set as specialized alternatives to plain objects and arrays — Map allows any key type with guaranteed order, while Set stores unique values with O(1) lookups.
DOM
The Document Object Model (DOM) is a tree-structured programming interface that lets JavaScript read, modify, and respond to a web page's content, structure, and styles in real time.
Currying & Partial Application
Currying transforms a function with multiple arguments into a sequence of single-argument functions, while partial application fixes some arguments upfront and returns a function expecting the rest.
Debounce & Throttle
Debounce delays execution until a pause in events, while throttle limits execution to a fixed interval — both are essential for controlling high-frequency event handlers.
Hooks
Hooks let functional components manage state (useState), run side effects (useEffect), access refs (useRef), and extract reusable logic into custom hooks — all following strict rules about call order.
Context API
Context provides data to any descendant component without passing props through every level — it solves prop drilling but is not state management, and context value changes re-render all consumers.
React Internals
React's reconciliation algorithm diffs virtual DOM trees in O(n) using two heuristics — different element types tear down the subtree, same types compare attributes — while the Fiber architecture makes this work interruptible so the browser stays responsive during large updates.
Performance Optimization
React.memo skips re-renders when props haven't changed, useMemo caches computed values, and useCallback caches function references — but these are targeted optimizations, not defaults for every component.
Concurrent React
Concurrent rendering lets React interrupt and prioritize work — Suspense provides declarative loading states, useTransition marks updates as non-urgent, and useDeferredValue defers expensive re-renders.
Components
React components are reusable, self-contained UI building blocks — functional components (plain functions returning JSX) have replaced class components for most use cases since hooks were introduced in React 16.8.
State
State is internal, mutable data owned by a component — updates must be immutable (creating new objects, not mutating existing ones) and are batched asynchronously in React 18+ for performance.
Flexbox Layout
Flexbox is a one-dimensional layout model for distributing space and aligning items along a main axis and cross axis, with container properties controlling flow direction and item properties controlling grow, shrink, and basis behavior.
CSS Grid Layout
CSS Grid provides two-dimensional layout control over rows and columns simultaneously, using grid-template definitions, the fr unit for fractional space, auto-fit/auto-fill for responsive grids, and named grid areas for semantic layout declarations.
Core Web Vitals & Performance Metrics
Core Web Vitals are Google's three key metrics (LCP, INP, CLS) that measure real-world user experience for loading speed, interactivity, and visual stability, directly impacting search rankings.
Rendering Strategies & Critical Rendering Path
Choosing between CSR, SSR, SSG, and ISR determines when and where HTML is generated, while understanding the Critical Rendering Path (DOM, CSSOM, render tree, layout, paint) reveals how browsers turn that HTML into visible pixels.
Runtime Performance & Profiling
Runtime performance focuses on what happens after the page loads: identifying long tasks that block the main thread, avoiding layout thrashing, using requestAnimationFrame for smooth animations, and offloading heavy computation to Web Workers.
Interview information is curated from publicly available sources and may not reflect current processes.
All company names and trademarks are the property of their respective owners. JS Guide is not affiliated with, endorsed by, or sponsored by any of the companies listed. Use of company names is for informational and educational purposes only.