JS Guide
HomeQuestionsTopicsCompaniesResources
BookmarksSearch

Built for developers preparing for JavaScript, React & TypeScript interviews.

ResourcesQuestionsSupport
HomeQuestionsSearchProgress
HomeCompaniesSwiggy

Swiggy

Swiggy is India's leading food delivery and quick commerce platform, powering Instamart, Genie, and Dineout across 500+ cities. Their frontend team builds the consumer-facing progressive web app, restaurant partner dashboards, and real-time delivery tracking interfaces using React, Redux, TypeScript, and React Native — with 700+ React components powering the web experience.

Food Tech
JavaScript
TypeScript
React
Redux
React Native
Careers pageCompensation data

59

Questions

28

Day Plan

4

Stages

23

Topics

Frontend Roles

Frontend Engineer

SDE-1 (L6-L7)

Builds React components and user interfaces for Swiggy's consumer web app, restaurant partner dashboard, and delivery tracking features. Works with React, Redux, and TypeScript across the 700+ component web platform.

Senior Frontend Engineer

SDE-2 (L7-L8)

Leads frontend feature development, contributes to architecture decisions, builds shared component libraries, and mentors junior engineers. Drives performance optimization for consumer-facing experiences and real-time delivery tracking.

Staff Frontend Engineer

SDE-3+ (L8-L9)

Defines frontend architecture across teams, drives cross-team technical strategy, establishes engineering best practices, and leads initiatives for real-time features, design systems, and platform scalability.

Interview Process

Based on publicly available information. Actual processes may vary by team and role.

1

Online Assessment

75-120 minutes

HackerRank-based assessment. For SDE-1/Intern: 1 JavaScript coding question (polyfills like Promise.race), 1 React question (API calls, pagination, search/sorting, fixing performance bugs), and 10-12 CSS MCQs. For SDE-2: a single React coding problem to be solved using TypeScript. Practice HackerRank's React domain problems to prepare.

JavaScript polyfills
React coding in TypeScript
API integration
CSS fundamentals
Performance debugging
2

Machine Coding Round

60-120 minutes

Build a working UI feature from scratch under time pressure. Can be React or Vanilla JavaScript — both have been asked. Past problems include: OTP input system, autosuggestion/autocomplete with API, shopping cart with search/filters/stock management/pagination, e-commerce product listing page, form validation for credit card payment page, and infinite scroll component. Focus on clean component design, state management, and API integration.

React component building
Vanilla JavaScript
State management
API integration
Form validation
Search and filtering
3

DSA / Problem Solving

60 minutes

Two LeetCode Easy-Medium problems to be coded in JavaScript (not language-agnostic). Topics include arrays, maps, string manipulation, polyfill implementations (JSON.stringify, Function.prototype.bind, Promise.race), regular expressions, currying, and debounce/throttle. Past confirmed questions: Longest Palindromic Substring, Reverse Integer. An alternate interview track replaces the machine coding round with a second DSA round.

Arrays and maps
JavaScript polyfills
String manipulation
Currying
Debounce and throttle
Regular expressions
4

Hiring Manager Round

60 minutes

Deep-dive into past projects, technical decisions, and ownership stories using the STAR method. Swiggy values candidates who demonstrate ownership, bias for action, and curiosity. For SDE-2+, includes frontend system design discussion — designing Swiggy's restaurant page with real-time order updates, component architecture, state management, data fetching strategies, caching, and performance optimization. Also covers CI/CD pipelines, event loop internals, and React debugging approaches.

Behavioral questions (STAR method)
Ownership and initiative
Frontend system design
Component architecture
Performance optimization
CI/CD and deployment

Total process duration: 2-4 weeks

Swiggy has two interview tracks for frontend roles: Track 1 (OA → Machine Coding → DSA → Hiring Manager) and Track 2 (OA → DSA → DSA → Hiring Manager). Unlike Zomato, Swiggy includes a dedicated DSA round for frontend roles — practice LeetCode Easy-Medium problems in JavaScript specifically. The machine coding round can require either React or vanilla JavaScript, so be prepared for both. For SDE-3 (L8) roles, expect 6 rounds including separate LLD and HLD rounds with company-specific scenarios (e.g., Swiggy serviceability design, notification system architecture).

Study Plan

28-day study plan across 4 phases

1
JavaScript Fundamentals
Days 1-7
Closures
Hoisting
this keyword
Scope
Variables
Event loop
Type coercion

Questions to practice:

  • What is a closure in JavaScript and why are they useful?
  • How does JavaScript hoisting work?
  • How does the 'this' keyword work in JavaScript?
  • What is the difference between block scope and function scope?
  • What is the difference between var, let, and const in JavaScript?
  • Explain the JavaScript Event Loop and how it handles asynchronous operations.
  • How does type coercion work in JavaScript?

Topics to study:

Closures
Hoisting
The this Keyword
Scope & Scope Chain
Variables
Event Loop & Runtime
2
Async JavaScript & Polyfills
Days 8-14
Promises
Async/await
Polyfills
Debounce/throttle
Currying
Call/apply/bind

Questions to practice:

  • What are Promises in JavaScript and how do they work?
  • How do async/await work and how do they relate to Promises?
  • What are Promise.all, Promise.race, Promise.allSettled, and Promise.any, and when do you use each?
  • How would you implement a simplified Promise from scratch?
  • How would you implement a debounce function from scratch with advanced features?
  • How do debounce and throttle work, and when would you use each?
  • What is currying and partial application in JavaScript?
  • What are call, apply, and bind and how do they differ?
  • What are polyfills and how do you implement Array.prototype.map from scratch?
  • How would you implement Function.prototype.bind from scratch?
  • How would you implement JSON.stringify from scratch?
  • How would you implement Promise.all and Promise.race from scratch?

Topics to study:

Promises & Async/Await
Debounce & Throttle
Currying & Partial Application
Arrays
3
React Core & Hooks
Days 15-21
React hooks
Custom hooks
Virtual DOM
State management
Context vs Redux
Reconciliation

Questions to practice:

  • Explain the useState and useEffect hooks and their common patterns.
  • What are custom hooks and how do you create them?
  • What is the Virtual DOM and how does it work?
  • When should you use Context API vs Redux for state management?
  • How does React's reconciliation algorithm work?
  • Explain React.memo, useMemo, and useCallback. When should each be used?
  • Implement a basic version of useState from scratch.
  • Implement a basic version of useEffect from scratch.
  • Explain React's diffing algorithm in detail. How does it achieve O(n) complexity?

Topics to study:

Hooks
React Internals
State Management
Context API
Performance Optimization
4
Machine Coding & System Design
Days 22-28
Component building
Event handling
CSS responsive
Performance
System design
Real-time features

Questions to practice:

  • What is the difference between controlled and uncontrolled components in React forms?
  • Explain common React patterns: Compound Components, Render Props, and Custom Hooks.
  • How would you design and implement a reusable Pagination component in React?
  • How does list virtualization (windowing) work in React and when should you use it?
  • Explain event bubbling, capturing, and how stopPropagation works.
  • How does CSS Flexbox work and when should you use it?
  • How do you make a website responsive using CSS?
  • Design a food delivery tracking page with real-time updates
  • Design an autocomplete/typeahead search component
  • Design a social media news feed with infinite scroll
  • Build an OTP (One-Time Password) input component in React that auto-advances focus between fields, supports paste, and handles backspace navigation.
  • Build an autocomplete/typeahead search component in React that fetches suggestions from an API with debouncing, keyboard navigation, and highlighted matching text.
  • Build an infinite scroll component in React using Intersection Observer that loads more items as the user scrolls, with loading states and race condition handling.

Topics to study:

Advanced Patterns
Components
Responsive Design Fundamentals
Core Web Vitals & Performance Metrics
Real-Time System Architecture
Component Architecture at Scale
Data Layer Architecture

Questions to Practice (59)

Questions relevant to preparing for frontend interviews at Swiggy, based on their known tech stack and common frontend interview patterns.

What is the difference between var, let, and const in JavaScript?

javascript
junior

What is the difference between map(), filter(), and reduce() array methods?

javascript
junior

How does JavaScript hoisting work?

javascript
junior

What is event delegation in JavaScript and why is it useful?

javascript
junior

What are polyfills and how do you implement Array.prototype.map from scratch?

javascript
junior

What is a closure in JavaScript and why are they useful?

javascript
mid

What are Promises in JavaScript and how do they work?

javascript
mid

How do async/await work and how do they relate to Promises?

javascript
mid

Explain the JavaScript Event Loop and how it handles asynchronous operations.

javascript
mid

How does the 'this' keyword work in JavaScript?

javascript
mid

What is the difference between microtasks and macrotasks in JavaScript?

javascript
mid

What are Promise.all, Promise.race, Promise.allSettled, and Promise.any, and when do you use each?

javascript
mid

How do debounce and throttle work, and when would you use each?

javascript
mid

What is currying and partial application in JavaScript?

javascript
mid

What are call, apply, and bind and how do they differ?

javascript
mid

What is the difference between block scope and function scope?

javascript
mid

Explain event bubbling, capturing, and how stopPropagation works.

javascript
mid

How do you implement data polling in JavaScript?

javascript
mid

How would you implement a debounce function from scratch with advanced features?

javascript
senior

How would you implement a simplified Promise from scratch?

javascript
senior

What is requestIdleCallback and how does it compare to other scheduling APIs?

javascript
senior

How do WebSockets work and when would you use them over HTTP?

javascript
senior

How would you implement Function.prototype.bind from scratch?

javascript
senior

How would you implement Promise.all and Promise.race from scratch?

javascript
senior

What is the difference between functional and class components in React?

react
junior

What is the Virtual DOM and how does it work?

react
junior

Explain the useState and useEffect hooks and their common patterns.

react
mid

What is React Context and when should you use it?

react
mid

What are custom hooks and how do you create them?

react
mid

What is useRef and when should you use it?

react
mid

How do useSelector and useDispatch work in React-Redux?

react
mid

How would you implement a useLocalStorage custom hook?

react
mid

How would you implement a useFetch custom hook?

react
mid

How do React component lifecycle methods map to hooks in functional components?

react
mid

When should you use Context API vs Redux for state management?

react
mid

Build an autocomplete/typeahead search component in React that fetches suggestions from an API with debouncing, keyboard navigation, and highlighted matching text.

react
mid

Build an infinite scroll component in React using Intersection Observer that loads more items as the user scrolls, with loading states and race condition handling.

react
mid

Explain React.memo, useMemo, and useCallback. When should each be used?

react
senior

How does React's reconciliation algorithm work?

react
senior

Explain common React patterns: Compound Components, Render Props, and Custom Hooks.

react
senior

What are Higher-Order Components (HOCs) in React, and why are they less commonly used today?

react
senior

What is Redux and Redux Thunk, and how do they manage application state and async operations?

react
senior

How would you design and implement a reusable Pagination component in React?

react
senior

How does list virtualization (windowing) work in React and when should you use it?

react
senior

Explain React's hydration process and common hydration mismatch issues.

react
senior

Explain React's diffing algorithm in detail. How does it achieve O(n) complexity?

react
senior

Implement a basic version of useState from scratch.

react
senior

Implement a basic version of useEffect from scratch.

react
senior

What are Core Web Vitals and why do they matter?

performance
junior

How do you make a website responsive using CSS?

css
junior

What makes a good component API for a design system?

system-design
junior

What is the difference between client state and server state?

system-design
junior

Design an autocomplete/typeahead search component

system-design
mid

Design a real-time notification system for a web application

system-design
mid

How do you design a component library / design system for multiple teams?

system-design
mid

Design a social media news feed with infinite scroll

system-design
mid

Design a food delivery tracking page with real-time updates

system-design
senior

Design an offline-first web application with sync capabilities

system-design
senior

Design a real-time chat application like Slack or Messenger

system-design
senior

Recommended Topics (23)

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.

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.

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.

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.

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.

Variables

var is function-scoped and hoisted with undefined, let is block-scoped and reassignable, const is block-scoped and cannot be reassigned — modern JavaScript favors const by default and let when reassignment is needed.

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.

Arrays

Understanding arrays in javascript

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.

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.

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.

State Management

Redux provides predictable state with a single store, actions, and reducers (RTK simplifies this with createSlice). Zustand offers a lighter alternative. Choose based on app complexity — most apps can start with useState + Context.

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.

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.

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.

Advanced Patterns

React patterns evolved from mixins to HOCs to render props to hooks — compound components share implicit state for flexible APIs, while custom hooks have replaced most logic-sharing patterns.

Responsive Design Fundamentals

Responsive design combines the viewport meta tag, media queries, fluid units (%, vw, rem, clamp()), and mobile-first methodology to create layouts that adapt gracefully from mobile screens to large desktops.

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.

Real-Time System Architecture

Real-time frontend architecture enables instant data updates without page refreshes — choosing between WebSockets, Server-Sent Events, and long polling depends on whether your communication is bidirectional, and building features like presence indicators, notifications, and collaborative editing requires understanding event-driven patterns and conflict resolution.

Component Architecture at Scale

Scaling a component library beyond a handful of components requires deliberate architectural decisions — design systems, atomic design hierarchies, compound and headless component patterns, prop API design, versioning strategies, and documentation-driven development.

Data Layer Architecture

The data layer determines how a frontend application fetches, caches, normalizes, and synchronizes data — separating client state from server state and choosing the right fetching and caching strategies is critical for maintainable, performant applications.

Interview Tips

  • Practice on HackerRank's React domain — Swiggy's OA is hosted there, and SDE-2 assessments require React + TypeScript coding under time pressure
  • The machine coding round can be React OR vanilla JavaScript — practice building OTP inputs, autocomplete with API integration, shopping carts with filters, and form validations in both
  • Unlike Zomato, Swiggy has a dedicated DSA round for frontend roles — practice 2 LeetCode Easy-Medium problems daily, always coding solutions in JavaScript (not Python or Java)
  • Master JavaScript polyfill implementations — JSON.stringify, Function.prototype.bind, Promise.race, and array methods (map, filter, reduce) are frequently asked
  • For the hiring manager round, prepare STAR stories around ownership, taking initiative, and handling disagreements — Swiggy values 'Act like an Owner' and 'Bias for Action'
  • For SDE-2+, expect frontend system design — practice designing a food delivery tracking page with real-time updates, component architecture, and state management strategies
  • Study Swiggy's engineering blog (bytes.swiggy.com) to understand their technical challenges — their PWA has 700+ React components with Redux state management
  • Two interview tracks exist — if you don't get a machine coding round, expect a second DSA round instead. Prepare for both scenarios

Job Search Tips

  • Apply at careers.swiggy.com — filter for Frontend Engineering roles under the Engineering department
  • Swiggy's primary engineering hub is Bangalore with a hybrid work model — be prepared to work from the Bangalore office as per team requirements
  • Employee referrals carry significant weight — connect with Swiggy engineers on LinkedIn and mention specific interest in their frontend platform
  • Read the Swiggy Bytes tech blog (bytes.swiggy.com) before your interview — it shows genuine interest and helps you discuss their architecture intelligently
  • Swiggy hires across experience levels: SDE-1 (1-3 yrs), SDE-2 (2-4 yrs), and Senior/Staff (4-9+ yrs) — tailor your application to the right level
  • Check Instahyre, Naukri, and LinkedIn in addition to the careers page — Swiggy posts roles across multiple job platforms

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.