Chapter 103 โ MERN Interview: Self-Introduction & Project Questions
๐ Why This Chapter Comes First
Almost every MERN interview starts with "Tell me about yourself" and "Explain your current project". These first 10 minutes decide how the rest of the interview goes โ the interviewer picks follow-up questions from what you say. Prepare these answers word for word, then practise until they sound natural.
1. "Tell me about yourself."
Structure (60โ90 seconds): current role โ years of experience โ stack โ 1โ2 projects with impact โ what you're looking for.
Model answer (3 years experience):
"I'm [Your Name], a full-stack developer with about 3 years of experience in the MERN stack with TypeScript. On the frontend I work mainly with React, Redux Toolkit and RTK Query; on the backend with Node.js, Express and NestJS, and MongoDB with Mongoose. In my last project I built the order-management module for a B2B e-commerce platform โ REST APIs, JWT authentication with refresh tokens, role-based access, and file uploads to AWS S3. I also improved the order-listing API from about 2 seconds to under 200 ms by adding compound indexes and cursor pagination. I'm comfortable owning a feature end to end โ from API design to deployment โ and I'm looking for a project where I can work on scalable full-stack features."
Tips
- Say numbers: users, response times, team size, % improvements.
- Mention only technologies you can answer deep questions on.
- Don't repeat your whole rรฉsumรฉ โ they have it.
2. "Explain your current / last project."
Use this order:
| Part | What to say |
|---|---|
| Business purpose | What the product does and for whom |
| Users & scale | Roles, approximate users, data volume |
| Architecture | Frontend, backend, DB, hosting, third-party services |
| Your role | Exactly which modules you built |
| A challenge | One technical problem and how you solved it |
| Result | Measurable impact |
Model answer:
"The project is a B2B ordering platform for a distributor. Retailers place orders, sales reps manage accounts, and admins handle inventory and reports โ about 8,000 retailers and 40,000 orders a month.
Architecture: React with TypeScript on the frontend, Redux Toolkit for client state and RTK Query for API calls. The backend is Node.js with Express, organised into modules โ routes, controllers, services and Mongoose models. MongoDB Atlas is the database, files are in S3, payments through Razorpay, and it's deployed in Docker containers on AWS with GitHub Actions for CI/CD.
My role: I owned the orders and invoicing module โ the order APIs, stock reservation, invoice PDF generation, and the order screens in React.
Challenge: during sales, two retailers could order the last items at the same time and we oversold stock. I changed the stock update to a single conditional atomic update โ decrement only if stock is still enough โ and wrapped order creation and stock updates in a MongoDB transaction. Overselling stopped completely.
Result: order failures due to stock dropped to zero, and the order-list API went from about 2 s to 150 ms after I added indexes and pagination."
3. "Draw / explain the architecture of your application."
Describe the request flow in words:
- User opens the React app (served from a CDN like CloudFront/Vercel).
- React calls REST APIs (
/api/...) with a JWT access token in theAuthorizationheader. - Requests go through a load balancer / Nginx to the Node.js Express servers (multiple containers).
- Express middleware: CORS, helmet, rate limiting, auth, validation โ controller โ service โ Mongoose model.
- MongoDB Atlas (replica set); Redis for caching and sessions/rate limits if used.
- Background jobs (emails, PDF generation) via a queue (BullMQ) and a worker process.
- Files in S3 with pre-signed URLs; logs in CloudWatch; errors in Sentry.
4. "What was your exact role? How big was the team?"
"We were a team of 7 โ 3 backend, 2 frontend, 1 QA, and a tech lead, with a client-side product owner. I worked on both frontend and backend for the orders module. I picked up stories from Jira, wrote the APIs and React screens, wrote unit tests, raised pull requests reviewed by the lead, and fixed QA and UAT defects. I also handled production support for my module on a rotation."
Tip: Never claim you built everything. Be specific โ interviewers dig into what you claim.
5. "What was the most challenging bug or task?"
Good choices: race conditions, memory leaks, slow queries, authentication issues, production outages. Use STAR:
Situation: "Our Node API's memory kept growing and pods restarted every few hours." Task: "I was asked to find the cause." Action: "I took heap snapshots with
--inspectand Chrome DevTools, compared two snapshots and saw thousands of event listeners on a shared EventEmitter โ every request added a listener that was never removed. I moved the listener registration to app start-up and addedremoveListenerwhere it was per-request." Result: "Memory stayed flat and the restarts stopped. I also added a memory alert in our monitoring."
6. "Which features did you build end to end?"
Prepare 2โ3 features with this mini-structure: requirement โ API endpoints โ DB changes โ React screens โ edge cases โ tests.
Example:
"Bulk order upload from Excel. Backend: an upload endpoint with multer, parsed rows with
xlsx, validated each row (SKU exists, quantity positive), and saved valid orders in batches withbulkWrite. Invalid rows were returned with row numbers and errors. Frontend: a drag-and-drop upload, progress indicator and an error table to download. Edge cases: duplicate rows, 10k-row files (processed in a background job), and partial success."
7. "Why MERN for this project? Would you choose it again?"
"MERN fits because we use JavaScript/TypeScript across the stack, the team is productive, and MongoDB's flexible documents suit our product catalogue, where different categories have different attributes. For heavy financial reporting with lots of joins I'd consider PostgreSQL. And for SEO-heavy public pages I'd use Next.js instead of a plain React SPA."
8. "How do you handle a requirement you don't understand?"
"I first re-read the story and acceptance criteria, then write down my understanding and specific questions, and clarify with the BA or product owner before coding โ ideally with an example. If a decision is made on a call, I add it to the Jira ticket so it's documented."
9. "How do you estimate a task?"
"I break the story into sub-tasks โ API, DB changes, UI, tests, review โ estimate each in hours, add time for unknowns like third-party integrations, and give a range. If something is unclear, I do a short spike first. I compare with similar tasks done earlier."
10. "What would you improve in your current project if you had time?"
Shows ownership. Examples:
- Move from plain JavaScript to TypeScript for shared API types.
- Add integration tests with Supertest and an in-memory MongoDB.
- Replace manual cache invalidation with RTK Query tags.
- Add structured logging and request IDs for faster debugging.
11. "Have you handled production issues?"
"Yes. In one incident, checkout started failing after a deployment. I checked Sentry and saw a validation error from a new required field the mobile app wasn't sending. We rolled back first to restore service, then made the field optional with a default, added a contract test, and redeployed. Afterwards I wrote a short root-cause note for the team."
Key points to mention: restore service first (rollback), then root cause, then prevention.
12. "Do you have any questions for us?"
Always ask 2โ3 good questions:
- "What does the current architecture look like, and what's the biggest technical challenge right now?"
- "What would you expect me to deliver in the first month?"
- "How is the team organised โ sprint length, code reviews, deployments?"
- "Which parts of the stack would I work on most โ frontend, backend or both?"
โ ๏ธ Mistakes to Avoid
| Mistake | Better |
|---|---|
| "We didโฆ" for everything | "I builtโฆ, the team didโฆ" |
| Listing 20 technologies | Mention what you can defend |
| No numbers | Users, latency, % improvements, team size |
| Blaming teammates/client | Focus on what you did to fix it |
| Saying "I don't know" and stopping | "I haven't used it directly, but here's how I'd approach it / the similar thing I used" |
โ MERN System Design Scenarios | Index | Next: JavaScript & TypeScript Questions โ