Razorpay is India's leading fintech company building payment solutions, banking, and lending products. Their frontend team builds the merchant dashboard, checkout experiences, and maintains the open-source Blade design system using React, TypeScript, and Redux.
42
Questions
21
Day Plan
5
Stages
17
Topics
Frontend Engineer
Builds React components and user interfaces for Razorpay's payment products including the merchant dashboard, checkout flows, and internal tools.
Senior Frontend Engineer
Leads frontend initiatives across product teams, contributes to the Blade design system, drives technical decisions, and mentors junior engineers.
Staff Frontend Engineer
Defines frontend architecture across the organization, drives cross-team technical strategy, establishes best practices, and mentors senior engineers.
Based on publicly available information. Actual processes may vary by team and role.
Output-based JavaScript questions covering core concepts. You are shown code snippets and asked to predict the console output, explain behavior, and identify edge cases.
Build a working React application or component from scratch in CodeSandbox. You are given a problem statement and must implement a functional solution with clean code, proper state management, and component structure.
Design a frontend system or discuss web fundamentals in depth. Topics range from designing an analytics dashboard to explaining browser security mechanisms and caching strategies.
Discussion with the hiring manager about your past projects, technical decisions, team collaboration, and cultural fit. Expect questions about how you handled challenges and your approach to learning.
Final round covering compensation expectations, notice period, team fit, and logistics. This round is typically for senior roles and above.
Total process duration: 2-4 weeks
Razorpay has no DSA round for frontend roles. The process emphasizes practical JavaScript knowledge, machine coding in React, and frontend system design. Interviews are collaborative and pair-programming style.
21-day study plan across 3 phases
Questions to practice:
Questions to practice:
Questions to practice:
Topics to study:
Questions relevant to preparing for frontend interviews at Razorpay, based on their known tech stack and common frontend interview patterns.
What is the difference between var, let, and const in JavaScript?
How does JavaScript hoisting work?
How does type coercion work in JavaScript?
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?
What are call, apply, and bind and how do they differ?
What is the difference between block scope and function scope?
How do you implement data polling in JavaScript?
Explain JavaScript's prototype chain and how inheritance works.
What is CORS, when do CORS errors occur, and how can they be resolved?
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?
Explain the useState and useEffect hooks and their common patterns.
What are custom hooks and how do you create them?
What is useRef and when should you use it?
How do useSelector and useDispatch work in React-Redux?
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?
When should you use Context API vs Redux for state management?
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.
Explain React.memo, useMemo, and useCallback. When should each be used?
Explain common React patterns: Compound Components, Render Props, and Custom Hooks.
What are Higher-Order Components (HOCs) in React, and why are they less commonly used today?
What is Redux and Redux Thunk, and how do they manage application state and async operations?
What security vulnerabilities should you address in React applications and how do you prevent them?
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?
Implement a basic version of useState from scratch.
Implement a basic version of useEffect from scratch.
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.
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.
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.
Type Coercion
JavaScript automatically converts types during operations (implicit coercion) — the + operator favors strings, other arithmetic operators favor numbers, and there are exactly 8 falsy values.
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.
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.
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.
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.
CORS
CORS (Cross-Origin Resource Sharing) is a browser-enforced security mechanism that uses HTTP headers to control whether JavaScript on one origin can access resources from a different origin.
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.
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.
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.
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.
Security
JSX auto-escapes values to prevent XSS by default, but dangerouslySetInnerHTML, href='javascript:', and localStorage token storage are common vulnerability vectors that require explicit mitigation.
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.