Full-stack developer is one of the most in-demand job titles at Indian startups: but the role means very different things at different companies. This guide covers what Indian product companies actually test across the full frontend-to-backend-to-database stack.
Frontend: React and JavaScript Depth
Most Indian full-stack roles use React on the frontend, and interviews test hooks, state management, and performance.
Core hooks: useEffect dependency array (what causes stale closures), useCallback and useMemo (when they help vs when they add overhead), useRef for DOM access and storing mutable values without triggering renders. JavaScript fundamentals: event loop and microtask queue (Promises resolve before setTimeout), prototypal inheritance vs class-based inheritance, closure over a loop variable (the classic let vs var bug), and this binding in arrow functions vs regular functions. Common question: 'Implement a debounce function from scratch.': tests closure understanding and timer management. TypeScript: generic types, union types, discriminated unions: increasingly expected at Indian product companies.
Backend: Node.js and REST API Design
Node.js is the dominant backend choice for full-stack roles at Indian startups.
Node.js event loop: single-threaded but non-blocking via libuv: async I/O is the fundamental model. Common question: 'What happens when you call fs.readFile() in Node.js?': the file read is delegated to the OS, the event loop continues, the callback fires when the OS completes the read. Express.js middleware chain: how req, res, next flow through middleware, error handling middleware (4-argument version), route-level vs app-level middleware. REST API design: HTTP methods (GET/POST/PUT/PATCH/DELETE) and their semantics, status code conventions (200/201/400/401/403/404/422/500), idempotency (PUT and DELETE should be idempotent), versioning (/api/v1/).
Database: SQL and NoSQL
Full-stack interviews always include a database round: know both relational and document stores.
SQL: JOINs, indexes, transactions (ACID), N+1 query problem and how to fix it with eager loading or JOIN FETCH. Know how to design a schema from a description: 'Design a schema for a URL shortener': explain your entity choices and index strategy. PostgreSQL: JSON/JSONB column types (stored with structure metadata, efficient querying), full-text search, pg_trgm for fuzzy string matching. MongoDB: document model, aggregation pipeline ($match, $group, $project, $lookup for joins), compound indexes, and when MongoDB is the wrong choice. Redis: in-memory key-value, pub/sub for real-time, sorted sets for leaderboards, TTL for session storage. Common question: 'When would you choose PostgreSQL over MongoDB for a new project?'
Practise full-stack developer interview questions including system design with HireStepX's AI mock interviewer.
Practice freeSystem Design for Full-Stack Roles
Full-stack system design questions at Indian startups focus on practical architecture decisions.
Common prompt: 'Design the backend for a food delivery tracking system.': expected to cover: database schema for orders/restaurants/deliveries, REST API design for mobile clients, WebSocket for real-time driver location updates, Redis for caching restaurant data, background job queue (Bull.js or similar) for notification sending. Authentication: JWT vs session-based: know the trade-offs. JWT is stateless (good for horizontal scaling) but cannot be invalidated server-side without extra infrastructure; sessions are stateful but revocable. File uploads: pre-signed S3 URLs vs streaming through your server: always pre-signed for production (avoids your server being the bottleneck).
Full-Stack Take-Home Assignments
Most Indian startup full-stack interviews include a 2–4 hour take-home coding assignment.
Common formats: Build a CRUD application for a given domain (blog, task manager, e-commerce cart), add authentication and authorization, deploy it and share a live URL. What interviewers look for: code organisation (separation of concerns), error handling (what happens when the database is down?), input validation (what if someone sends an empty string as an email?), and production readiness (environment variables for secrets, not hardcoded). Common mistakes: not handling errors at all (just letting Express crash), storing passwords in plaintext (always bcrypt), no input validation on the backend (trusting the frontend), and no README explaining how to run the project.
Frequently asked questions
Practice these questions on HireStepX