{"id":667,"date":"2026-04-01T10:31:25","date_gmt":"2026-04-01T10:31:25","guid":{"rendered":"https:\/\/techpaathshala.com\/blog\/?p=667"},"modified":"2026-04-21T08:18:00","modified_gmt":"2026-04-21T08:18:00","slug":"top-full-stack-interview-questions-asked-in-mumbai-companies-2026-edition","status":"publish","type":"post","link":"https:\/\/techpaathshala.com\/blog\/top-full-stack-interview-questions-asked-in-mumbai-companies-2026-edition\/","title":{"rendered":"Top Full Stack Interview Questions Asked in Mumbai Companies (2026 Edition)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Mumbai&#8217;s tech hiring scene in 2025 is arguably the most competitive it has ever been \u2014 and also the most rewarding for developers who are genuinely prepared. Whether you&#8217;re targeting a Fintech startup in BKC, a SaaS product company in Powai, or an enterprise IT role in Navi Mumbai, you&#8217;ll face a specific style of technical interview that has quietly become the Mumbai standard: the&nbsp;<strong>full stack interview questions Mumbai<\/strong>&nbsp;recruiters love are rarely trivia-based. They&#8217;re scenario-driven, architecture-focused, and designed to find out whether you&nbsp;<em>understand<\/em>&nbsp;technology or merely&nbsp;<em>use<\/em>&nbsp;it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The buzzword you&#8217;ll hear from hiring managers across the city is&nbsp;<strong>&#8220;T-shaped developer.&#8221;<\/strong>&nbsp;Companies in Mumbai \u2014 especially post-2023, as hiring has become more selective \u2014 want people with deep expertise in at least one area (your chosen stack: React, Node.js, Java\/Spring Boot) and a credible working knowledge across the rest: databases, deployment, system design, and soft skills. A developer who can only answer React questions but goes blank when asked about database indexing will not get far in a Mumbai technical round.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide covers the questions that actually come up, organised by category, with model answers and Mumbai-specific context. Work through this systematically \u2014 not as a cramming session, but as a structured self-assessment of where you&#8217;re strong and where you need another week of focused practice.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/techpaathshala.com\/blog\/wp-content\/uploads\/2026\/03\/image3-2.png\" alt=\"\" class=\"wp-image-668\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-1-full-stack-interview-questions-mumbai--frontend-react--nextjs\">Section 1: Full Stack Interview Questions Mumbai \u2014 Frontend (React &amp; Next.js)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mumbai&#8217;s frontend interviews in 2025 are dominated by React and Next.js. Companies have moved well past &#8220;what is a component?&#8221; territory \u2014 expect deep questions on hooks, rendering behaviour, and performance optimisation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"react-fundamentals--hooks\">React Fundamentals &amp; Hooks<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What is the Virtual DOM and how does React&#8217;s reconciliation algorithm work?<\/strong><br>The Virtual DOM is a lightweight in-memory representation of the real DOM. When state or props change, React creates a new Virtual DOM tree and compares it with the previous one using a diffing algorithm (reconciliation). React identifies the minimum number of changes needed and applies only those to the real DOM \u2014 this is what makes React updates fast. The diffing algorithm operates on two key heuristics: elements of different types produce different trees, and developers can hint at stability using the&nbsp;<code>key<\/code>&nbsp;prop in lists.<em>Mumbai interview angle:<\/em>&nbsp;&#8220;Explain reconciliation and why&nbsp;<code>key<\/code>&nbsp;props matter in lists&#8221; is a very common first-round question at Mumbai product companies. A shallow answer loses marks; demonstrate that you understand the O(n) diffing strategy and why arbitrary keys defeat the purpose.<\/li>\n\n\n\n<li><strong>Explain&nbsp;<code>useEffect<\/code>&nbsp;and its dependency array. What happens when the array is empty? What happens when it&#8217;s omitted?<\/strong><br><code>useEffect<\/code>&nbsp;runs after every render by default. With an empty dependency array&nbsp;<code>[]<\/code>, it runs only once after the initial mount \u2014 equivalent to&nbsp;<code>componentDidMount<\/code>. With specific dependencies, it re-runs whenever any of those values change. Omitting the array entirely causes it to run after every single render, which is almost never intentional and often causes performance or infinite loop issues.<em>Mumbai interview angle:<\/em>&nbsp;Expect a follow-up: &#8220;How would you prevent a memory leak in a useEffect that sets up a subscription or a timer?&#8221; \u2014 the answer involves returning a cleanup function.<\/li>\n\n\n\n<li><strong>What is the difference between&nbsp;<code>useMemo<\/code>&nbsp;and&nbsp;<code>useCallback<\/code>? When should you actually use them?<\/strong><br><code>useMemo<\/code>&nbsp;memoizes the&nbsp;<em>result<\/em>&nbsp;of a computation \u2014 it re-runs the function only when its dependencies change.&nbsp;<code>useCallback<\/code>&nbsp;memoizes the&nbsp;<em>function reference itself<\/em>&nbsp;\u2014 useful when passing callbacks to child components that are wrapped in&nbsp;<code>React.memo<\/code>. The key word is&nbsp;<em>actually<\/em>: premature optimisation with these hooks adds complexity without benefit. Use them only when you have a measurable performance problem \u2014 an expensive computation, or a child component that re-renders unnecessarily on every parent render.<em>Mumbai interview angle:<\/em>&nbsp;Senior interviewers at Mumbai SaaS companies frequently follow this up with: &#8220;Have you ever used these and then removed them? Why?&#8221; They want to know you understand the trade-off, not just the API.<\/li>\n\n\n\n<li><strong>What is the Context API and what problem does it solve? Where does it fall short, and what would you use instead?<\/strong><br>The Context API solves prop drilling \u2014 passing props through multiple layers of components that don&#8217;t need them, just to get data to a deeply nested child. It&#8217;s ideal for global state that changes infrequently: the current user, theme, language preference. It falls short for high-frequency state updates (every Context update re-renders all consumers) and for complex asynchronous state logic. For those scenarios, Zustand (lightweight, minimal boilerplate) or Redux Toolkit (more structured, better devtools) are the standard choices in Mumbai&#8217;s production codebases.<\/li>\n\n\n\n<li><strong>What are React Server Components and how do they change the mental model of data fetching in Next.js?<\/strong><br>React Server Components (RSCs) run exclusively on the server and never ship their JavaScript to the client. In Next.js 13+ with the App Router, components are Server Components by default. This means you can fetch data directly inside a component without&nbsp;<code>useEffect<\/code>&nbsp;or an API layer \u2014 the component renders on the server with the data already available, and only the HTML is sent to the client. Client Components (marked with&nbsp;<code>\"use client\"<\/code>) are used for interactivity, state, and browser APIs. The mental model shift: stop thinking about &#8220;fetching data then rendering&#8221; and start thinking about &#8220;data and rendering happening in the same place on the server.&#8221;<em>Mumbai interview angle:<\/em>&nbsp;This question separates candidates who&#8217;ve kept up with 2024\u20132025 React from those who learned React in 2021 and haven&#8217;t revisited it. It comes up frequently at Powai product companies and Next.js-heavy Fintech startups.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"custom-ad-banner\" style=\"margin:20px 0; text-align:center;\"><a href=\"https:\/\/techpaathshala.com\/full-stack-engineer-program\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/techpaathshala.com\/blog\/wp-content\/uploads\/2026\/04\/WhatsApp-Image-2026-04-20-at-11.47.33-AM.jpeg\" alt=\"Advertisement\" \/><\/a><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"state-management\">State Management<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Compare Redux Toolkit, Zustand, and Context API. How do you decide which to use for a given project?<\/strong><br>Context API is best for low-frequency global state (auth, theme). Zustand is the go-to for mid-complexity apps \u2014 minimal boilerplate, excellent devtools, and no provider wrapping required. Redux Toolkit is the choice for large teams and complex asynchronous flows where the predictability of a single store, clear action history, and mature devtools outweigh the setup cost. In Mumbai&#8217;s startup ecosystem, Zustand has become the most common choice for new projects; Redux remains dominant in enterprise-grade applications at larger companies.<\/li>\n\n\n\n<li><strong>What is &#8220;state colocation&#8221; and why is it a good practice in React applications?<\/strong><br>State colocation means keeping state as close to where it&#8217;s used as possible. If only one component needs a piece of state, it should live in that component \u2014 not in a global store. Lifting state too high causes unnecessary re-renders and makes components harder to reason about in isolation. This principle is relevant in interviews because it shows you think about maintainability and performance holistically, not just about making things work.<\/li>\n\n\n\n<li><strong>Explain the concept of &#8220;derived state.&#8221; When should you calculate values from existing state rather than storing them separately?<\/strong>Derived state is any value that can be computed from existing state or props. If you can calculate it, you should not store it \u2014 storing derived state introduces the risk of it becoming out of sync with the source state. For example, if you have a list of items and a filter string in state, the filtered list should be derived on render (or memoised with&nbsp;<code>useMemo<\/code>), not stored as a third state variable.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"nextjs-specifics\">Next.js Specifics<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Explain the difference between SSR, SSG, ISR, and CSR in Next.js. Give a real-world use case for each.<\/strong><br>Server-Side Rendering (SSR) generates HTML on each request \u2014 best for personalised dashboards or pages where data changes per user. Static Site Generation (SSG) generates HTML at build time \u2014 best for blog posts, documentation, and marketing pages where content is stable. Incremental Static Regeneration (ISR) regenerates static pages in the background at a configurable interval \u2014 best for pages like product listings or news feeds that change regularly but don&#8217;t need real-time updates. Client-Side Rendering (CSR) fetches data in the browser \u2014 best for private, interactive dashboards that don&#8217;t need SEO.<em>Mumbai interview angle:<\/em>&nbsp;Fintech startups with public-facing landing pages that convert to private dashboards often use all four strategies in the same application. Being able to explain when you&#8217;d use which \u2014 and why \u2014 is a strong signal of architectural maturity.<\/li>\n\n\n\n<li><strong>How does Next.js handle SEO, and what optimisations would you implement for a Mumbai-based e-commerce site?<\/strong><br>Next.js handles SEO via SSR and SSG (which ensure search engines receive fully rendered HTML), the&nbsp;<code>&lt;Head&gt;<\/code>&nbsp;component or Metadata API for meta tags, the Image component for automatically optimised, lazy-loaded images, and built-in performance features like font optimisation. For a Mumbai e-commerce site specifically: implement dynamic&nbsp;<code>og:title<\/code>&nbsp;and&nbsp;<code>meta description<\/code>&nbsp;for every product page, use ISR for product pages so they&#8217;re fast but fresh, ensure Core Web Vitals are clean (LCP, CLS, FID), and implement structured data (JSON-LD) for product rich results on Google.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-2-backend--nodejs-and-java-spring-boot\">Section 2: Backend \u2014 Node.js and Java Spring Boot<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mumbai&#8217;s backend interviews divide cleanly along two tracks: Node.js for startups and product companies, and Java\/Spring Boot for enterprise, banking, and large IT. Prepare deeply on your primary stack and have working knowledge of the other.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"nodejs--express\">Node.js &amp; Express<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What is middleware in Express.js? Write a custom middleware function for request logging.<\/strong><br>Middleware is a function that has access to the request object, the response object, and the&nbsp;<code>next<\/code>&nbsp;function in Express&#8217;s request-response cycle. It can execute any code, modify the request or response, end the cycle, or call the next middleware. Custom logging middleware example:<br><code><code>const requestLogger = (req, res, next) =&gt; { <\/code><\/code><br><code><code>const start = Date.now(); <\/code><\/code><br><code><code>res.on('finish', () =&gt; { <\/code><\/code><br><code><code>const duration = Date.now() - start; <\/code><\/code><br><code><code>console.log(`[${new Date().toISOString()}] ${req.method} ${req.originalUrl} ${res.statusCode} \u2014 ${duration}ms`);<\/code><\/code><br><code><code>}); <\/code><\/code><br><code><code>next();<\/code><\/code><br><code><code>}; <\/code><\/code><br><code><code>app.use(requestLogger);<\/code><\/code><br><\/li>\n\n\n\n<li><strong>Explain JWT authentication end-to-end. What is the difference between an access token and a refresh token? Where should each be stored?<\/strong><br>JWT (JSON Web Token) authentication works as follows: on login, the server validates credentials and issues two tokens \u2014 a short-lived access token (typically 15 minutes) and a long-lived refresh token (7\u201330 days). The access token is sent with every API request in the&nbsp;<code>Authorization: Bearer &lt;token&gt;<\/code>&nbsp;header. When it expires, the client uses the refresh token to request a new access token from a dedicated&nbsp;<code>\/auth\/refresh<\/code>&nbsp;endpoint, without requiring the user to log in again.<br>Storage: the access token should be stored in memory (JavaScript variable \/ React state) \u2014 not&nbsp;<code>localStorage<\/code>&nbsp;(vulnerable to XSS) and not a cookie (not accessible for the Authorization header without extra configuration). The refresh token should be stored in an&nbsp;<code>httpOnly<\/code>,&nbsp;<code>Secure<\/code>,&nbsp;<code>SameSite=Strict<\/code>&nbsp;cookie \u2014 inaccessible to JavaScript, preventing XSS theft, while&nbsp;<code>SameSite=Strict<\/code>&nbsp;prevents CSRF.<br><\/li>\n\n\n\n<li><strong>What is API rate limiting? How would you implement it in a Node.js application, and why is it critical for a payments API?<\/strong><br>Rate limiting restricts the number of requests a client can make to an API within a given time window, preventing abuse, DDoS attacks, and runaway clients from degrading service for others. In Node.js, the&nbsp;<code>express-rate-limit<\/code>&nbsp;package provides a simple implementation:<br><code>const rateLimit = require('express-rate-limit'); <\/code><br><code>const limiter = rateLimit({ <\/code><br><code>windowMs: 15 * 60 * 1000, <em>\/\/ 15 minutes<\/em> <\/code><br><code>max: 100, <\/code><br><code>message: { error: 'Too many requests, please try again later.' }, <\/code><br><code>standardHeaders: true, legacyHeaders: false, }); <\/code><br><code>app.use('\/api\/', limiter); <\/code><br>For a payments API specifically, rate limiting is not optional \u2014 it prevents credential stuffing on login endpoints, limits brute-force attempts on OTP verification, and protects against fraudulent transaction flooding. In high-scale Mumbai Fintech applications, rate limiting is typically implemented at the API gateway level (AWS API Gateway or Kong) rather than at the application level, with different limits per endpoint and per authenticated user.<\/li>\n\n\n\n<li><strong>Explain the Node.js event loop. How does it handle concurrent requests without multiple threads?<\/strong><br>Node.js runs on a single thread but uses an event-driven, non-blocking I\/O model. The event loop continuously checks for completed I\/O operations, timers, and other events, and executes their associated callbacks. When a request arrives and triggers an I\/O operation (database query, file read, HTTP call), Node.js delegates that operation to the OS or a thread pool (via libuv) and moves on to the next request. When the I\/O completes, its callback is queued and executed in the event loop. This model makes Node.js highly efficient for I\/O-heavy workloads but a poor choice for CPU-intensive operations (image processing, heavy computation), which block the single thread.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"java-spring-boot\">Java Spring Boot<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Explain Spring Boot&#8217;s auto-configuration. How does it know what beans to configure?<\/strong><br>Spring Boot&#8217;s auto-configuration uses&nbsp;<code>@EnableAutoConfiguration<\/code>&nbsp;(included via&nbsp;<code>@SpringBootApplication<\/code>) to scan the classpath for specific libraries and automatically configure beans based on what it finds. If&nbsp;<code>spring-boot-starter-data-jpa<\/code>&nbsp;is on the classpath and a&nbsp;<code>DataSource<\/code>&nbsp;bean isn&#8217;t already defined, Spring Boot will attempt to auto-configure one. This is driven by&nbsp;<code>spring.factories<\/code>&nbsp;\/&nbsp;<code>AutoConfiguration.imports<\/code>&nbsp;files in each starter JAR, which list configuration classes annotated with&nbsp;<code>@ConditionalOn...<\/code>&nbsp;annotations \u2014&nbsp;<code>@ConditionalOnClass<\/code>,&nbsp;<code>@ConditionalOnMissingBean<\/code>,&nbsp;<code>@ConditionalOnProperty<\/code>&nbsp;\u2014 that ensure a bean is only created when appropriate conditions are met.<\/li>\n\n\n\n<li><strong>What is Spring Security and how would you secure a REST API with it?<\/strong><br>Spring Security is a comprehensive authentication and access-control framework. For a REST API: configure a&nbsp;<code>SecurityFilterChain<\/code>&nbsp;bean to define which endpoints are public and which require authentication; use&nbsp;<code>JwtAuthenticationFilter<\/code>&nbsp;(a custom&nbsp;<code>OncePerRequestFilter<\/code>) to extract and validate the JWT from the&nbsp;<code>Authorization<\/code>&nbsp;header on every request; store the authentication in the&nbsp;<code>SecurityContext<\/code>&nbsp;for the duration of the request; and use&nbsp;<code>@PreAuthorize<\/code>&nbsp;annotations on controller methods for fine-grained role-based access control.<\/li>\n\n\n\n<li><strong>Explain the difference between&nbsp;<code>@RestController<\/code>&nbsp;and&nbsp;<code>@Controller<\/code>&nbsp;in Spring Boot.<\/strong><br><code>@Controller<\/code>&nbsp;is the traditional annotation for Spring MVC \u2014 it returns view names (for server-side rendered templates like Thymeleaf).&nbsp;<code>@RestController<\/code>&nbsp;is&nbsp;<code>@Controller<\/code>&nbsp;+&nbsp;<code>@ResponseBody<\/code>&nbsp;\u2014 every method return value is automatically serialised to JSON (or XML) and written directly to the HTTP response body. For REST APIs, always use&nbsp;<code>@RestController<\/code>.<\/li>\n\n\n\n<li><strong>What is JPA and how does lazy loading work with Hibernate?<\/strong><br>JPA (Jakarta Persistence API) is a specification for ORM in Java; Hibernate is the most common implementation. Lazy loading means that related entities (defined with&nbsp;<code>@OneToMany<\/code>,&nbsp;<code>@ManyToOne<\/code>, etc.) are not fetched from the database when the parent entity is loaded \u2014 they are fetched only when accessed for the first time. This improves performance when related data isn&#8217;t always needed. The classic pitfall is the N+1 problem: fetching a list of 100 orders and then accessing&nbsp;<code>order.getCustomer()<\/code>&nbsp;on each triggers 100 additional queries. The solution is&nbsp;<code>JOIN FETCH<\/code>&nbsp;in JPQL or&nbsp;<code>@EntityGraph<\/code>&nbsp;to eagerly load only what you need.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-3-database--system-design\">Section 3: Database &amp; System Design<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Databases and system design questions have become a standard part of even mid-level Full Stack interviews in Mumbai, especially at Fintech companies handling high transaction volumes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"sql-vs-nosql\">SQL vs. NoSQL<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>When would you choose PostgreSQL over MongoDB for a new project? Give a scenario where you&#8217;d choose each.<\/strong><br>Choose PostgreSQL when your data is relational (clear entities with defined relationships), you need ACID transactions (payments, banking, order management), your schema is relatively stable, and you need complex querying with joins and aggregations. Choose MongoDB when your data is document-oriented with variable or evolving schemas, you need high write throughput for unstructured data, you&#8217;re building something like a content platform, product catalogue, or activity feed where flexible documents make more sense than rigid rows.<em>Mumbai interview angle:<\/em>&nbsp;&#8220;We&#8217;re building a payment processing system \u2014 which database would you use and why?&#8221; Always choose PostgreSQL for anything involving financial transactions. ACID compliance is non-negotiable when real money is involved.<\/li>\n\n\n\n<li><strong>What is database normalization? Explain 1NF, 2NF, and 3NF with an example.<\/strong><br>Normalization is the process of organising a relational database to reduce redundancy and improve data integrity.1NF (First Normal Form): each column contains atomic (indivisible) values and each row is unique. No repeating groups. A column containing &#8220;React, Node.js, MongoDB&#8221; violates 1NF.2NF (Second Normal Form): meets 1NF and every non-key column is fully dependent on the&nbsp;<em>entire<\/em>&nbsp;primary key (eliminates partial dependencies). Relevant when the primary key is composite.3NF (Third Normal Form): meets 2NF and every non-key column depends&nbsp;<em>only<\/em>&nbsp;on the primary key \u2014 no transitive dependencies. If&nbsp;<code>city<\/code>&nbsp;determines&nbsp;<code>state<\/code>, and&nbsp;<code>state<\/code>&nbsp;is stored alongside&nbsp;<code>city<\/code>&nbsp;in the same table, that&#8217;s a transitive dependency violating 3NF.<\/li>\n\n\n\n<li><strong>What is an index in a database? Explain the trade-off between read and write performance.<\/strong><br>An index is a data structure (typically a B-tree) that allows the database to locate rows matching a query condition without scanning the entire table. Indexes dramatically speed up&nbsp;<code>SELECT<\/code>&nbsp;queries on the indexed column(s). The trade-off: every write operation (<code>INSERT<\/code>,&nbsp;<code>UPDATE<\/code>,&nbsp;<code>DELETE<\/code>) must also update all relevant indexes, adding overhead. For a read-heavy application like a stock price dashboard, indexing is essential. For a write-heavy application like a real-time logging system, over-indexing degrades write throughput. The practical rule: index columns used in&nbsp;<code>WHERE<\/code>,&nbsp;<code>JOIN<\/code>, and&nbsp;<code>ORDER BY<\/code>&nbsp;clauses, and audit your indexes periodically.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"scaling-and-architecture\">Scaling and Architecture<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What is the difference between horizontal and vertical scaling? Which approach does Mumbai&#8217;s Fintech infrastructure typically favour?<\/strong><br>Vertical scaling (scaling up) means adding more CPU, RAM, or storage to a single server. It&#8217;s simple but has a ceiling \u2014 there&#8217;s a limit to how powerful one machine can get, and it introduces a single point of failure. Horizontal scaling (scaling out) means adding more servers and distributing the load across them. It has virtually no ceiling and provides redundancy. Mumbai&#8217;s Fintech infrastructure \u2014 which must handle UPI transaction spikes on payday (1st and last days of the month), GST filing seasons, and IPO subscription days \u2014 relies overwhelmingly on horizontal scaling, cloud auto-scaling groups (AWS ASG, GCP Instance Groups), and stateless application design that makes adding or removing nodes trivial.<\/li>\n\n\n\n<li><strong>Explain database connection pooling. Why is it critical in a high-traffic Node.js or Spring Boot application?<\/strong><br>Opening a new database connection is expensive \u2014 it involves TCP handshaking, authentication, and session setup. Connection pooling maintains a pre-established pool of connections that are reused across requests. In a high-traffic application, without pooling, every API request would open and close its own connection \u2014 at 1,000 requests per second, this would overwhelm the database server. In Node.js,&nbsp;<code>pg<\/code>&nbsp;(node-postgres) has built-in connection pooling; in Spring Boot, HikariCP is the default and fastest connection pool available. Key pool parameters to know:&nbsp;<code>max connections<\/code>,&nbsp;<code>connection timeout<\/code>, and&nbsp;<code>idle timeout<\/code>.<\/li>\n\n\n\n<li><strong>What is the CAP theorem and how does it apply to choosing a database for a real-time trading platform?<\/strong><br>The CAP theorem states that a distributed system can guarantee at most two of three properties: Consistency (every read receives the most recent write), Availability (every request receives a response), and Partition Tolerance (the system continues to operate despite network partitions). Since network partitions are unavoidable in distributed systems, the real choice is between Consistency and Availability.For a real-time stock trading platform \u2014 where stale data can mean a user buys a stock at a wrong price \u2014 Consistency is non-negotiable. You&#8217;d choose a CP database like PostgreSQL (with strict transaction isolation) over an AP database like Cassandra. Availability is still important, but it&#8217;s achieved through replication and failover strategy, not by sacrificing consistency.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-4-behavioural-questions--mumbai-culture-fit\">Section 4: Behavioural Questions \u2014 Mumbai Culture Fit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t underestimate this section. Mumbai&#8217;s tech companies, especially startups and product firms in Powai and Andheri, place enormous weight on whether a candidate can work at pace, communicate under pressure, and thrive in a cross-functional team. These questions are not fillers \u2014 they&#8217;re where many technically competent candidates fall short.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>&#8220;Tell me about a time you had to learn a new technology quickly to meet a deadline. What was your process?&#8221;<\/strong><br><em>What they&#8217;re actually assessing:<\/em>&nbsp;Learning agility and self-management. Mumbai startups expect developers to onboard to new tools fast and without hand-holding.<em>Framework for your answer:<\/em>&nbsp;Describe the context (the project, the technology, the timeline), your specific learning strategy (official docs, a focused mini-project, asking a senior colleague for the key patterns to know), and the outcome (what you shipped, what you&#8217;d do differently). Be concrete \u2014 name the technology, the deadline, and the result.<\/li>\n\n\n\n<li><strong>&#8220;Describe a situation where you disagreed with a technical decision made by your team or tech lead. What did you do?&#8221;<\/strong><br><em>What they&#8217;re actually assessing:<\/em>&nbsp;Professional maturity, communication, and whether you&#8217;ll be a constructive presence or a passive-aggressive one. Mumbai&#8217;s flat-hierarchy product companies particularly value developers who can push back respectfully and then commit fully once a decision is made.<em>Framework for your answer:<\/em>&nbsp;Describe the disagreement clearly (don&#8217;t be vague), explain how you raised your concern (directly and with data, not via passive resistance), describe the outcome (whether the decision changed or not), and what you learned. Avoid making the other party sound incompetent \u2014 the goal is to show you&#8217;re collaborative, not that you were right.<\/li>\n\n\n\n<li><strong>&#8220;How do you manage your workload when you&#8217;re working on multiple features with overlapping deadlines?&#8221;<\/strong><br><em>What they&#8217;re actually assessing:<\/em>&nbsp;Priority management and whether you&#8217;ll be reliable in a fast-moving sprint environment \u2014 the standard operating mode for Andheri and Powai startups.<em>Framework for your answer:<\/em>&nbsp;Describe your actual system \u2014 how you prioritise (impact vs. effort, business criticality), how you communicate blockers early, and how you break large tasks into daily-deliverable chunks. Mention tools you use (Jira, Linear, a personal task board) without over-engineering the answer.<\/li>\n\n\n\n<li><strong>&#8220;Tell me about the most complex bug you&#8217;ve ever fixed. Walk me through how you identified and resolved it.&#8221;<\/strong><br><em>What they&#8217;re actually assessing:<\/em>&nbsp;Debugging methodology, patience, and systematic thinking. This is also an indirect portfolio question \u2014 they want to hear about real code.<em>Framework for your answer:<\/em>&nbsp;Set the scene (what the bug was, what the symptom was), walk through your debugging process step by step (what you ruled out, what tools you used \u2014 Chrome DevTools, logging, database queries), explain the root cause, and describe the fix. The more specific and technical, the better. A vague &#8220;there was a bug and I fixed it&#8221; answer fails this question entirely.<\/li>\n\n\n\n<li><strong>&#8220;If a production API you own starts returning 500 errors at 2 PM on a Monday, what do you do in the first 10 minutes?&#8221;<\/strong><br><em>What they&#8217;re actually assessing:<\/em>&nbsp;Incident response instincts and production maturity \u2014 crucial at Mumbai Fintech companies where downtime has direct financial consequences.<em>Framework for your answer:<\/em>&nbsp;Check error monitoring (Sentry, Datadog, CloudWatch logs) to identify the error type and when it started. Check recent deployment history \u2014 was anything deployed in the last few hours? Check database connectivity and external service health. Assess blast radius \u2014 how many users are affected? Escalate immediately if the answer is &#8220;many.&#8221; Roll back the last deployment if it correlates with the error start time. Document everything you do from the moment you start investigating. Communicate status to stakeholders every 15 minutes, even if you have nothing new to report.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-5-scenario-based-questions-for-mumbais-industries\">Section 5: Scenario-Based Questions for Mumbai&#8217;s Industries<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">These questions reflect the specific technical contexts Mumbai companies operate in. They don&#8217;t have one correct answer \u2014 interviewers are evaluating your reasoning process, your awareness of trade-offs, and whether you&#8217;ve thought about real production constraints.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>&#8220;How would you design a scalable backend for a stock-trading application that serves 500,000 concurrent users during market hours?&#8221;<\/strong><br><em>Strong answer approach:<\/em>Start with the problem constraints: stock trading has extreme read-write concurrency, data freshness requirements measured in milliseconds, and zero tolerance for stale prices or incorrect balances.Architecture outline: a load-balanced cluster of Node.js or Java microservices behind an API Gateway (AWS API Gateway or Kong). A PostgreSQL database (primary + read replicas) for user accounts and transaction history \u2014 with strict ACID compliance for order execution. A Redis cache layer for real-time stock price reads \u2014 prices are updated from a market data feed (via WebSockets or Kafka) and served from Redis rather than the database. A Kafka message queue for order processing \u2014 orders are published to a Kafka topic, consumed by an order execution service, and the result published back. WebSockets for real-time price delivery to the frontend. Horizontal auto-scaling triggered by CPU and request queue depth.<em>Mumbai interview angle:<\/em>&nbsp;Mentioning Kafka, Redis, and horizontal scaling together signals senior-level architectural thinking. You don&#8217;t need to have built this \u2014 you need to reason through it logically and show awareness of each component&#8217;s role.<\/li>\n\n\n\n<li><strong>&#8220;How would you optimise a mobile-first web application for users in areas with low bandwidth \u2014 common outside Mumbai&#8217;s core city zones?&#8221;<\/strong><br><em>Strong answer approach:<\/em>This is a real-world constraint that most portfolio projects ignore \u2014 but it matters enormously for apps targeting users in Thane, Navi Mumbai, Vasai-Virar, or peri-urban Maharashtra.Technical optimisations: implement code splitting and lazy loading in React\/Next.js so only the code needed for the current page is loaded. Use Next.js Image optimisation (WebP format, responsive&nbsp;<code>srcset<\/code>, lazy loading). Implement aggressive caching \u2014 service workers (via Workbox) for offline support and resource caching. Use a CDN (Cloudflare or AWS CloudFront) so assets are served from edge nodes near the user. Optimise API payloads \u2014 return only the fields the frontend actually uses (avoid returning full database records when 3 fields are needed). Implement gzip or Brotli compression on all text responses. Consider skeleton screens and progressive loading so users perceive the app as fast even while data loads.<em>Mumbai interview angle:<\/em>&nbsp;This question rewards developers who&#8217;ve thought beyond their laptop browser and considered real-world usage conditions. Mentioning PWAs and service workers for offline capability is a strong differentiator.<\/li>\n\n\n\n<li><strong>&#8220;A Mumbai-based food delivery app is experiencing database slowdowns during peak lunch hours (12\u20132 PM). Walk me through how you&#8217;d diagnose and fix it.&#8221;<\/strong><br><em>Strong answer approach:<\/em>Start with measurement, not assumptions. Enable slow query logging in PostgreSQL (<code>log_min_duration_statement<\/code>) to identify which queries are taking the longest. Use&nbsp;<code>EXPLAIN ANALYZE<\/code>&nbsp;on the slow queries to see whether they&#8217;re doing full table scans. Check connection pool utilisation \u2014 are all connections maxed out during peak hours? Check for lock contention \u2014 are multiple transactions waiting to update the same rows (e.g., restaurant availability counters)?Likely fixes: add missing indexes on columns used in&nbsp;<code>WHERE<\/code>&nbsp;clauses of the slow queries (typically&nbsp;<code>order_status<\/code>,&nbsp;<code>restaurant_id<\/code>,&nbsp;<code>created_at<\/code>). Cache frequently read, rarely changing data (menu items, restaurant details) in Redis \u2014 these don&#8217;t need to be fetched from PostgreSQL on every request. Implement read replicas and route read queries (order history, menu display) to replicas, reserving the primary for writes. Consider database connection pooling with PgBouncer if the application-level pool isn&#8217;t enough. If the problem is architectural, introduce a queue for order processing so peak traffic is smoothed out rather than hitting the database directly.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"expert-tips-how-to-explain-your-projects-to-a-mumbai-recruiter\">Expert Tips: How to Explain Your Projects to a Mumbai Recruiter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The technical questions are only half the interview. How you present your own work \u2014 in a portfolio walkthrough or a project-based discussion \u2014 is equally important. Mumbai&#8217;s tech interviewers are experienced enough to know when someone genuinely built something versus when they followed a tutorial. Here&#8217;s how to present your projects in a way that commands respect.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"lead-with-the-problem-not-the-stack\">Lead With the Problem, Not the Stack<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The most common mistake: starting with &#8220;I built a React and Node.js app with MongoDB.&#8221; That tells a recruiter what tools you used. Lead instead with the problem: &#8220;I built a platform that helps Mumbai tiffin suppliers manage daily orders and payments digitally, because most of them were tracking everything in WhatsApp and paper notebooks.&#8221; Now you have their attention.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"quantify-the-impact-wherever-possible\">Quantify the Impact Wherever Possible<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Vague: &#8220;It improved performance.&#8221; Strong: &#8220;I reduced the page load time from 4.2 seconds to 1.1 seconds by implementing code splitting and replacing the full product list fetch with a paginated API call. This brought the Lighthouse performance score from 54 to 91.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Numbers make your impact tangible. If your project is a portfolio app, estimate: &#8220;This could handle approximately 500 concurrent users on the current architecture before requiring a database read replica.&#8221;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"narrate-a-real-technical-decision\">Narrate a Real Technical Decision<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Interviewers want to know you made deliberate architectural choices. Pick one decision per project and be ready to explain the trade-off: &#8220;I chose PostgreSQL over MongoDB here because the data is relational \u2014 users have orders, orders have line items, line items reference products. A document store would have required me to either embed all that data (making updates complex) or do application-level joins (slow). PostgreSQL&#8217;s foreign keys and transactions were the right fit for this problem.&#8221;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"prepare-a-what-would-you-do-differently-answer\">Prepare a &#8220;What Would You Do Differently?&#8221; Answer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Every strong interviewer will ask this. Don&#8217;t say &#8220;nothing.&#8221; Say: &#8220;If I were to rebuild this, I&#8217;d implement proper database migrations from day one using a tool like Flyway or Knex migrations, instead of making schema changes directly. Halfway through the project, I had to reconstruct the migration history manually, which cost me two days. That discipline would save significant time in any team environment.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This answer shows self-awareness, growth mindset, and professional maturity \u2014 three things Mumbai&#8217;s best engineering teams explicitly hire for.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"full-stack-interview-questions-mumbai-your-pre-interview-checklist\">Full Stack Interview Questions Mumbai: Your Pre-Interview Checklist<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before you walk into any technical interview at a Mumbai tech company, run through these:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Category<\/th><th class=\"has-text-align-left\" data-align=\"left\">What to Verify<\/th><\/tr><\/thead><tbody><tr><td><strong>React<\/strong><\/td><td>Can you explain the Virtual DOM, reconciliation, and all major hooks from memory?<\/td><\/tr><tr><td><strong>Next.js<\/strong><\/td><td>Can you clearly distinguish SSR, SSG, ISR, and CSR with use cases?<\/td><\/tr><tr><td><strong>Node.js<\/strong><\/td><td>Can you write an Express middleware, a JWT auth flow, and a rate limiter from scratch?<\/td><\/tr><tr><td><strong>Databases<\/strong><\/td><td>Can you explain indexing, normalisation, connection pooling, and SQL vs. NoSQL trade-offs?<\/td><\/tr><tr><td><strong>System Design<\/strong><\/td><td>Can you sketch a scalable architecture with a load balancer, cache, queue, and database?<\/td><\/tr><tr><td><strong>Your Projects<\/strong><\/td><td>Can you explain each project&#8217;s problem, architecture, and technical challenges in under 3 minutes?<\/td><\/tr><tr><td><strong>Behavioural<\/strong><\/td><td>Do you have specific, story-formatted answers for the 5 behavioural questions above?<\/td><\/tr><tr><td><strong>Questions for Them<\/strong><\/td><td>Do you have 2\u20133 thoughtful questions prepared for the interviewer?<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"stop-preparing-alone-start-preparing-smart\">Stop Preparing Alone. Start Preparing Smart.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Reading interview questions is useful. Being questioned by a developer who has conducted \u2014 or sat on the other side of \u2014 Mumbai tech interviews is transformative.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TechPaathshala&#8217;s Mock Interview &amp; Resume Review Service<\/strong>&nbsp;gives you exactly that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A 60-minute mock technical interview conducted by a developer with real Mumbai hiring experience \u2014 covering frontend, backend, database, and system design questions calibrated to your target role and seniority level<\/li>\n\n\n\n<li>Immediate, honest feedback on your answers: what was strong, what was vague, what would have ended the interview<\/li>\n\n\n\n<li>A live review of your resume \u2014 line by line \u2014 with rewrite suggestions calibrated for Mumbai&#8217;s ATS systems and recruiter preferences<\/li>\n\n\n\n<li>A personalised list of the 10 most likely questions for your specific target companies, based on TechPaathshala&#8217;s interview database<\/li>\n\n\n\n<li>A follow-up session 48 hours later to review your revised answers and close remaining gaps<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The gap between &#8220;I&#8217;ve read all the questions&#8221; and &#8220;I can answer any question confidently in a live interview&#8221; is closed by practice, not by more reading.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49&nbsp;<strong><a href=\"https:\/\/techpaathshala.com\/\">Book Your Mock Interview &amp; Resume Review at TechPaathshala<\/a><\/strong>&nbsp;\u2014 and walk into your next Mumbai tech interview knowing you&#8217;ve already done the hard round.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>TechPaathshala is a Mumbai-based tech education and career acceleration platform helping developers at every stage land their first and next role in India&#8217;s most competitive tech markets.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mumbai&#8217;s tech hiring scene in 2025 is arguably the most competitive it has ever been \u2014 and also the most rewarding for developers who are genuinely prepared. Whether you&#8217;re targeting a Fintech startup in BKC, a SaaS product company in Powai, or an enterprise IT role in Navi Mumbai, you&#8217;ll face a specific style of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":722,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[72],"tags":[],"class_list":["post-667","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-full-stack-development","entry","has-media"],"acf":[],"_links":{"self":[{"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/posts\/667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/comments?post=667"}],"version-history":[{"count":2,"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/posts\/667\/revisions"}],"predecessor-version":[{"id":934,"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/posts\/667\/revisions\/934"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/media\/722"}],"wp:attachment":[{"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/media?parent=667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/categories?post=667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techpaathshala.com\/blog\/wp-json\/wp\/v2\/tags?post=667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}