Full Stack Engineer Internship Interview
Guide
For Instavans & Logistics Startups
1. WHAT INSTAVANS & LOGISTICS STARTUPS EXPECT
FROM AN INTERN
What They Really Look For
Instavans is a logistics-tech startup that builds software (SaaS) for truck companies. They
want interns who can:
Write working code - Not perfect code. Just code that works.
Solve real problems - Can you build features from start to finish?
Build full-stack features - Frontend + Backend + Database together.
Communicate clearly - Explain what you did and why.
Learn quickly - Startups move fast. They want people who can adapt.
Own your work - Show responsibility for your code and projects.
Skills They Actually Need
1. React - Build user interfaces
2. REST API - Connect frontend to backend
3. MongoDB - Store and manage data
4. Problem-solving - Think and code under pressure
5. JavaScript - Basic, solid understanding
Attitude They Like
Honest - Say "I don't know" if you don't know
Curious - Ask questions and want to learn
Humble - Open to feedback
Proactive - Find issues and fix them
Reliable - Do what you say you'll do
2. INTERVIEW ROUNDS – SIMPLE OVERVIEW
ROUND 1: Aptitude & Basics (30-45 minutes)
What they check:
Can you solve logic problems?
Do you know data structures (arrays, objects)?
Can you think logically?
What to expect:
Simple coding problems (sort, search, loops)
Questions like: "How will you find the second largest number?"
Sometimes on pen and paper
Your approach:
Think aloud - say your approach first
Ask questions if unclear
Start coding when you are sure about the solution
Test with examples
ROUND 2: Technical Interview (45-60 minutes)
What they check:
Do you know React, APIs, MongoDB basics?
Can you code a small feature?
Do you understand full-stack?
What to expect:
Questions about React hooks (useState, useEffect)
"How do you fetch data from backend?"
"Design a database for a simple app"
Sometimes: "Build a simple form that saves data"
Your approach:
Answer concepts clearly
Use real examples from your project
Show that you understand how things connect
ROUND 3: Project Discussion (30-45 minutes)
What they check:
Did YOU actually build this project?
Can you explain the entire flow?
Do you know why you used certain tech?
Can you fix bugs or add features?
What to expect:
"Tell me about your project"
"Why did you use React instead of plain HTML?"
"Walk me through the code"
"How would you add this feature?"
Your approach:
Know your code inside-out
Explain like you're talking to a friend
Show the frontend, then backend, then database
Be ready to go deeper on any part
ROUND 4: HR Round (20-30 minutes)
What they check:
Will you fit in the team?
Can you communicate?
Are you serious about learning?
Do you know about the company?
What to expect:
"Tell me about yourself"
"Why do you want to work at Instavans?"
"How do you handle pressure?"
"What are your goals?"
Your approach:
Be honest and real
Show that you researched the company
Talk about your passion for learning
Ask good questions about the role
3. REACT BASICS – ONLY WHAT YOU NEED
What is React?
React is a JavaScript library for building user interfaces (UI).
Simple example:
You write HTML elements in JavaScript
React shows them on the page
When data changes, React updates the page automatically
You don't have to manually change HTML
What is a Component?
A component is a reusable piece of UI.
Think like building blocks:
One component for a button
One component for a card
One component for a form
You combine them to make a whole page
// Simple component
function Button() {
return Click me;
}
Props vs State
Props = Inputs (like function parameters)
You pass data FROM parent TO child
Child cannot change props
Example: <Button color="red" />
function Button(props) {
return <button style={{color: [Link]}}>Click</button>;
}
State = Memory (data that can change)
Component remembers data
When state changes, component re-renders
Only the component that owns state can change it
Example: likes count, form input value
useState Hook – Simple Explanation
useState lets a component remember things.
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
Count: {count}
<button onClick={() => setCount(count + 1)}>
Increase
</button>
);
}
What's happening:
1. useState(0) - Start with count = 0
2. count - The current value
3. setCount - Function to change count
4. When button is clicked, count increases by 1
5. Component automatically re-renders with new count
useEffect Hook – API Calls
useEffect runs code after the component appears on the page.
Common use: Fetch data from backend API
import { useState, useEffect } from 'react';
function UserList() {
const [users, setUsers] = useState([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
// Fetch data when component loads
fetch('[Link]
.then(response => [Link]())
.then(data => {
setUsers(data);
setLoading(false);
});
}, []); // Empty [] means run only once when component loads
if (loading) return
Loading...
;
return (
{[Link](user =>
{[Link]}
)}
);
}
What's happening:
1. Component loads (first render)
2. useEffect runs
3. Fetches data from API
4. Saves data in state using setUsers
5. Component re-renders with data
6. List appears on page
Forms and API Integration
How to build a form that sends data:
import { useState } from 'react';
function AddProduct() {
const [name, setName] = useState('');
const [price, setPrice] = useState('');
const [message, setMessage] = useState('');
const handleSubmit = async (e) => {
[Link](); // Don't reload page
// Send data to backend
const response = await fetch('[Link] {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: [Link]({ name, price })
});
if ([Link]) {
setMessage('Product added!');
setName('');
setPrice('');
}
};
return (
<input
value={name}
onChange={(e) => setName([Link])}
placeholder="Product name"
required
/>
<input
value={price}
onChange={(e) => setPrice([Link])}
placeholder="Price"
required
/>
Add Product
{message &&
{message}
}
);
}
Key points:
Input values are stored in state
onChange updates state as user types
onSubmit sends data to backend
Clear form after success
4. REST API – BASIC LEVEL ONLY
What is an API?
API = Application Programming Interface
Simple way to think about it:
Your frontend (React) is a customer
Backend is a restaurant
API is the menu and waiter
Customer orders from menu (API request)
Waiter brings food (API response)
GET vs POST
GET - Read/Fetch Data
Get data FROM server
Like asking "Can I see the menu?"
URL in browser address bar is a GET request
// Get all products
fetch('[Link]
.then(response => [Link]())
.then(data => [Link](data));
POST - Send/Create Data
Send data TO server
Like placing an order
Server creates something new
// Create new product
fetch('[Link] {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: [Link]({ name: 'Laptop', price: 50000 })
})
.then(response => [Link]())
.then(data => [Link]('Product created:', data));
Request and Response
Request - You Ask
You ask the server for something:
GET /api/products
Method: GET
Path: /api/products
Headers: { 'Content-Type': 'application/json' }
Response - Server Answers
Server sends back data:
{
"status": 200,
"data": [
{ "id": 1, "name": "Laptop", "price": 50000 },
{ "id": 2, "name": "Phone", "price": 30000 }
]
}
Status codes:
200 = Success (OK)
201 = Created (POST successful)
400 = Bad request (You sent wrong data)
404 = Not found (URL doesn't exist)
500 = Server error
How Frontend Talks to Backend
Simple flow:
1. User clicks button in React app
2. Frontend sends request to backend API
3. Backend processes the request
4. Backend queries database (MongoDB)
5. Backend sends response back to frontend
6. Frontend shows result to user
Example flow - Add a shipment:
Frontend:
User fills form (shipment ID, driver name, location)
Clicks "Add Shipment"
Frontend sends POST request:
POST /api/shipments
{
"shipmentId": "SHIP001",
"driverName": "Raj",
"location": "Delhi"
}
Backend:
Receives request
Validates data
Saves to MongoDB
Backend sends response:
{
"status": 201,
"message": "Shipment added",
"data": { "id": "123", "shipmentId": "SHIP001", ... }
}
Frontend:
Shows success message to user
Clears form
Updates list with new shipment
5. MONGODB BASICS – INTERVIEW SAFE
What is MongoDB?
MongoDB is a database - a place to store data.
Think of it like Excel:
Excel has sheets and columns
MongoDB has collections and fields
You store data, query data, update data, delete data
Why MongoDB is Used
Flexible - You can change structure anytime
Easy for JavaScript - Uses JSON format (same as JavaScript objects)
Scalable - Can handle lots of data
Fast - Quick to read and write
Database, Collection, Document
Structure:
Database (Project)
└── Collection (Users)
├── Document (User 1)
│ { "_id": "123", "name": "Raj", "email": "raj@..." }
├── Document (User 2)
│ { "_id": "456", "name": "Priya", "email": "priya@..." }
└── Document (User 3)
{ "_id": "789", "name": "Amit", "email": "amit@..." }
Compare to Excel:
Database = Workbook
Collection = Sheet
Document = Row
Field = Column
Simple Example – Shipment Tracking App
Database: LogisticsDB
Collections:
1. Shipments Collection (Store shipment info)
{
"_id": "001",
"shipmentId": "SHIP001",
"driver": "Raj Kumar",
"startLocation": "Delhi",
"endLocation": "Mumbai",
"status": "in-transit",
"createdAt": "2025-01-09"
}
2. Drivers Collection (Store driver info)
{
"_id": "D001",
"name": "Raj Kumar",
"phone": "9876543210",
"rating": 4.5,
"totalTrips": 45
}
3. Users Collection (Store user info)
{
"_id": "U001",
"name": "Company Admin",
"email": "admin@[Link]",
"password": "encrypted_password",
"role": "admin"
}
Basic Operations (What Interviewers Ask)
CREATE - Add new shipment
[Link]({
shipmentId: "SHIP001",
driver: "Raj",
status: "pending"
});
READ - Get all shipments
[Link]({});
READ - Get specific shipment
[Link]({ shipmentId: "SHIP001" });
UPDATE - Change shipment status
[Link](
{ shipmentId: "SHIP001" },
{ $set: { status: "delivered" } }
);
DELETE - Remove shipment
[Link]({ shipmentId: "SHIP001" });
6. PROJECT UNDERSTANDING – VERY IMPORTANT
How Full-Stack Works
Your frontend (React) → Backend ([Link]) → Database (MongoDB)
Complete flow:
1. User opens website
↓
2. React loads (Frontend)
↓
3. User fills form and clicks "Submit"
↓
4. React sends data to Backend API
↓
5. Backend receives data
↓
6. Backend saves to MongoDB
↓
7. Backend sends response back
↓
8. React shows success/result to user
How to Explain Your Project
When asked "Explain your project," follow this structure:
Step 1: Overview (10 seconds)
"I built a [project name] application using React, [Link], and MongoDB."
"It does [main function]."
Step 2: Frontend (20 seconds)
"The frontend is built with React."
"Users can [list main features - form, list, search, etc.]."
"I used React hooks like useState and useEffect for state management."
"I styled it with CSS."
Step 3: Backend (20 seconds)
"The backend is built with [Link] and Express."
"I created REST APIs for [main operations - create, read, update, delete]."
"For example, POST /api/items creates a new item, GET /api/items fetches all items."
Step 4: Database (10 seconds)
"Data is stored in MongoDB."
"I created [collection names] collections."
"Each document stores [key info - example: shipment ID, driver name, status]."
Step 5: Connection (10 seconds)
"When user submits form, React sends request to backend API."
"Backend processes it and saves to MongoDB."
"Backend sends response, and React shows result on page."
Ready-Made Simple Explanation
For a Todo App:
"I built a simple Todo application with React, [Link], and MongoDB.
The frontend is a React app where users can add, view, and delete todos. I used useState to
manage the todo list and useEffect to fetch todos when the page loads.
The backend has APIs: POST /api/todos to create a todo, GET /api/todos to fetch all todos,
and DELETE /api/todos/:id to delete a todo.
The database has a 'todos' collection where each todo is stored with id, title, description, and
status.
When a user adds a todo, React sends it to the backend. The backend saves it in MongoDB.
The backend sends back the saved todo, and React updates the list on the page."
What Interviewers Will Ask About Project
1. "Why did you use React?"
Answer: "React is easy to update UI when data changes. Components are
reusable."
2. "How did you connect frontend and backend?"
Answer: "Using fetch API to make REST API calls. I use fetch() to POST data to
backend and GET data to show on page."
3. "How is data saved?"
Answer: "When user submits form, frontend sends POST request to backend.
Backend validates data and saves to MongoDB. Then backend sends success
response."
4. "What would you do if backend API fails?"
Answer: "I would add error handling in frontend using try-catch and show
error message to user."
5. "How would you add [new feature]?"
Answer: "Think about it step-by-step: First, I'd add form in frontend to collect
data. Then add API in backend to process. Then update database schema if
needed. Finally, frontend shows the result."
7. COMMON INTERVIEW QUESTIONS & SAFE ANSWERS
Q1: "Are you good at React?"
What they really want to know: Do you understand React basics or are you just copy-
pasting code?
SAFE ANSWER:
"I'm good at React basics. I understand components, props, and state. I know useState and
useEffect hooks. I've built a small project where I used these to create forms, fetch data from
API, and update the page. But I'm still learning advanced stuff like context and
performance optimization. I'm quick to learn and ready to improve."
Why this works:
Shows honesty
Shows what you know
Shows willingness to learn
Not overconfident
Q2: "Do you know backend?"
What they really want to know: Do you understand how frontend connects to backend?
Or are you just frontend-only?
SAFE ANSWER:
"Yes, I understand backend basics. I know REST APIs - how to make GET and POST requests
from frontend. I've built simple backend APIs using [Link] and Express that handle these
requests. I understand how frontend sends data and backend processes it. I'm still learning
more about error handling and validation, but I understand the core concept."
Why this works:
Shows full-stack understanding
Shows practical experience
Honest about limitations
Ready to grow
Q3: "Do you know MongoDB?"
What they really want to know: Can you work with databases? Or are you lost with
databases?
SAFE ANSWER:
"I have basic knowledge of MongoDB. I understand collections and documents - they're like
sheets and rows in Excel. I've used MongoDB to create collections and store data. I can do
basic operations - create, read, update, delete. I haven't worked much with complex queries
or aggregation, but I understand the basics and can learn more if needed."
Why this works:
Shows you tried databases
Shows understanding of structure
Honest about level
Shows readiness to learn
Q4: "What's your biggest weakness?"
What they really want to know: Are you self-aware? Can you admit gaps?
SAFE ANSWER:
"Sometimes I jump into coding without planning enough. I'm learning to write down the
logic on paper first before coding. This helps me avoid mistakes. I'm practicing this
approach and getting better."
Why this works:
Shows self-awareness
Shows you're improving
Doesn't sound bad
Shows learning attitude
Q5: "What if you don't know something during the interview?"
What they really want to know: Can you think? Or do you panic?
SAFE ANSWER:
"I'll tell you honestly that I don't know. I'll think aloud about how I would approach learning
it. If it's a concept, I'll ask clarifying questions. If it's a coding problem, I'll write pseudocode
first and then code. I'd also ask if I can look it up or if you want me to solve it from
memory."
Why this works:
Shows honesty
Shows problem-solving approach
Shows you won't pretend
Shows you're interactive
Q6: "Why do you want to work at Instavans?"
What they really want to know: Did you research us? Or are you just applying
everywhere?
SAFE ANSWER:
"I want to work at Instavans because I'm interested in logistics and technology. I did some
research, and I see that Instavans solves real problems in the trucking industry with
technology. Building logistics software is challenging and interesting. I want to learn full-
stack development by working on real products, and I think Instavans is a good place to
learn and contribute."
Why this works:
Shows research
Shows genuine interest
Shows you understand the domain
Not generic
Q7: "Tell me about yourself"
What they really want to know: Can you communicate? Are you passionate?
SAFE ANSWER:
"Hi, I'm [your name]. I'm a fresher interested in full-stack web development. I've built
projects using React, [Link], and MongoDB. I love learning new things and solving
problems through code. Outside of coding, I enjoy [hobby]. I'm applying for internship to
gain real-world experience and build better products."
Why this works:
Concise (30-45 seconds)
Shows technical skills
Shows personal side
Shows motivation
Q8: "Where do you see yourself in 2 years?"
What they really want to know: Are you serious about this field?
SAFE ANSWER:
"In 2 years, I see myself as a solid full-stack developer who can build features from scratch. I
want to understand architecture and scalability. I'm looking to work on products that
matter and help real users. After a good internship here, I hope to become a junior
developer and keep growing."
Why this works:
Shows ambition
Shows growth mindset
Shows you're serious
Realistic
8. FINAL INTERVIEW TIPS – VERY IMPORTANT
WHAT TO SAY
✅ Say these things:
1. "I don't know, but I can learn"
Much better than making up answers
Shows confidence and honesty
2. "Let me think about this"
Take time before answering
Better to think than ramble
3. "In my project, I did [something similar]"
Use your project as proof
Shows practical experience
4. "Can you explain that question differently?"
It's okay to ask for clarification
Shows you want to understand
5. "That's a good question. Here's my approach"
Shows you take questions seriously
Shows thinking process
6. "I've learned this recently, so I'm still practicing"
Shows you're learning
Shows humility
7. "Can I ask a question about [topic]?"
Shows genuine interest
Shows engagement
WHAT NOT TO SAY
❌ Don't say these things:
1. "I know everything about React"
Wrong - nobody does
Sounds arrogant
Sets you up for failure
2. "I forgot"
Sounds careless
Better to say "I haven't worked with that yet"
3. "That's not in my notes"
Shows you memorized, not learned
Bad impression
4. "I copied this code from Google"
Even if true, don't say it
Better: "I researched the approach"
5. "I don't know anything about that"
Too negative
Better: "I haven't worked with that yet"
6. "This question is hard"
Don't complain
Just think and answer
7. "I'm nervous"
Keep it to yourself
Deep breathing, stay calm
8. "I learned this last night"
Shows last-minute prep
Not good
HOW TO STAY CALM
Before Interview
Get good sleep night before
Eat something light before
Reach 10 minutes early (online or in-person)
Take 5 deep breaths before starting
Smile (it helps you calm down)
During Interview
Slow down - Speak slowly and clearly
Listen carefully - Understand the question fully before answering
Pause - It's okay to pause 2-3 seconds before answering
Nod - Shows you're engaged
Make eye contact - If in-person
Breathe - Deep breaths between questions
If You Get Stuck
Pause and think - Don't rush
Say "Give me a moment" - It's okay
Think aloud - "I'm thinking about how to approach this"
Ask for help - "Can you clarify what you're asking?"
Keep going - Don't give up on a question
HOW TO ANSWER CONFIDENTLY EVEN IF UNSURE
The trick: Focus on what you know, not what you don't know.
Technique 1: Start with What You Know
Question: "How would you handle authentication in a MERN app?"
Bad answer: "Um, I don't know much about authentication..."
Good answer: "I know authentication means verifying user identity.
I've seen login forms where users enter email and password.
The backend checks the password and sends back a token.
The frontend stores this token and uses it for future requests.
I haven't built this myself, but I understand the flow.
I'd research how to implement it properly."
Technique 2: Show Your Thinking Process
Question: "Design a database for an e-commerce app"
Bad answer: "Uh... I don't know..."
Good answer: "Let me think about this. An e-commerce app needs:
Users - to store user info like name, email, password
Products - to store product details like name, price, description
Orders - to connect users to products they bought
I would create collections for these. Each order would reference a user and product."
Technique 3: Ask Questions
Question: "How would you optimize this React app?"
Bad answer: "I haven't done that..."
Good answer: "Can you tell me what problem we're seeing?
Are pages loading slowly?
Is there too much re-rendering?
Depending on the issue, I would look at code splitting,
lazy loading, or using memo() to prevent unnecessary re-renders."
Technique 4: Use Examples from Your Project
Question: "How do you handle errors in API calls?"
Bad answer: "I'm not sure..."
Good answer: "In my project, when I make fetch calls to the backend,
I wrap them in try-catch. If the backend returns an error,
I catch it and show an error message to the user.
Something like 'Unable to load data, please try again.'"
Technique 5: Be Honest About What You've Tried
Question: "Have you worked with Redux?"
Bad answer: "Yes, I know Redux!" (then you can't answer questions)
Good answer: "I haven't worked with Redux yet.
I know it's for state management.
I've used React's useState instead.
I'm aware of Redux and would be happy to learn it
if needed for the role."
Small Confidence Tricks
1. Sit straight - Don't slouch (helps confidence)
2. Hands visible - Don't hide hands in pockets
3. Speak at normal pace - Not too fast, not too slow
4. Smile when answering - Makes you sound confident
5. Nod at interviewer - Shows engagement
6. Use "I" not "we" - "I built this" not "we built this"
7. Own your mistakes - "I made an error there" shows maturity
8. Take water breaks - Gives you time to think
Final Checklist Before Interview
[ ] I know my project inside-out (can explain every part)
[ ] I can explain React, API, MongoDB in simple English
[ ] I've practiced saying "I don't know" confidently
[ ] I have 2-3 examples from my project ready
[ ] I know why I want Instavans (researched company)
[ ] I have good questions to ask them (3-4 questions ready)
[ ] I know the interview schedule and timings
[ ] I have all links ready (project GitHub, deployed link, etc.)
[ ] I'm wearing clean, professional clothes
[ ] I've had good sleep
Questions YOU Should Ask Them
At the end, interviewers usually ask: "Do you have any questions?"
Ask these:
1. "What tech stack does the team use for current projects?"
Shows you care about technology
2. "What does a typical day look like for an intern here?"
Shows you want to understand the role
3. "What are the main challenges the team is facing right now?"
Shows you think like an engineer
4. "What technologies do you think are important for me to learn as an intern?"
Shows you want to grow
5. "How do you support interns in learning and development?"
Shows you care about growth
Don't ask:
"When will I get paid?" (too early)
"Is the office AC working?" (not relevant)
Nothing (always ask something)
9. QUICK SUMMARY – ONE-PAGE REVISION
Three Core Skills
1. React - Build UI. Know useState, useEffect, components.
2. REST API - Connect frontend to backend. GET and POST.
3. MongoDB - Store data. Collections and documents.
The Complete Flow
User fills form → React sends data → Backend API → MongoDB saves → Response
comes back → React shows result
Interview Rounds
1. Aptitude - Logic and coding problems
2. Technical - React, API, Database questions
3. Project - Explain your full-stack project
4. HR - Soft skills and cultural fit
What Interviewers Want
Working code (not perfect code)
Clear communication
Honesty about what you know/don't know
Problem-solving mindset
Project ownership
Interview Mindset
"I don't know" is honest and okay
Think aloud, don't stay silent
Use your project as proof
One deep breath before answering
Smile and stay calm
Before You Go In
1. Know your project completely
2. Practice explaining it in 2 minutes
3. Review React hooks code
4. Review REST API basics
5. Review MongoDB structure
6. Have 3 questions ready for them
FINAL WORDS
You have a great profile for an internship:
You know React basics
You know REST APIs
You know MongoDB
You have a full-stack project
You're hungry to learn
That's exactly what startups like Instavans want.
Your biggest strength: You're a fresher. You're hungry. You can learn anything.
Your biggest worry: Don't try to sound like an expert. Be confident in being a fresher.
Go in with this mindset:
"I'm learning, and I'm serious about it"
"I built something real"
"I can solve problems"
"I don't know everything, but I can figure it out"
Startups respect this mindset way more than someone who pretends to know everything.
You've got this. Good luck! 🚀
APPENDIX: HELPFUL QUICK REFERENCE
React Code Patterns to Remember
Simple counter:
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<>
{count}
<button onClick={() => setCount(count + 1)}>+</button>
</>
);
}
Fetch data:
import { useState, useEffect } from 'react';
function App() {
const [data, setData] = useState([]);
useEffect(() => {
fetch('/api/data')
.then(r => [Link]())
.then(d => setData(d));
}, []);
return
{[Link]} items
;
}
Simple form:
function Form() {
const [input, setInput] = useState('');
const submit = (e) => {
[Link]();
[Link](input);
setInput('');
};
return (
<input value={input} onChange={(e) => setInput([Link])} />
Submit
);
}
REST API Patterns to Remember
// GET request
fetch('/api/items')
.then(r => [Link]())
.then(data => [Link](data));
// POST request
fetch('/api/items', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: [Link]({ name: 'Item', price: 100 })
})
.then(r => [Link]())
.then(data => [Link](data));
// DELETE request
fetch('/api/items/123', { method: 'DELETE' })
.then(r => [Link]())
.then(data => [Link](data));
MongoDB Patterns to Remember
Database → Collections → Documents
Collection users:
[
{ _id: 1, name: "Raj", email: "raj@..." },
{ _id: 2, name: "Priya", email: "priya@..." }
]
Collection orders:
[
{ _id: 101, userId: 1, amount: 500, status: "completed" },
{ _id: 102, userId: 2, amount: 300, status: "pending" }
]
Print this document. Read it once. You're ready! ✅