🎯 Strategy
💻 Written Test
🌐 Full Stack
🗄️ SQL & DB
📊 Data Science
🧩 Case Study
🎤 Interview
Your Prep Strategy — Tonight
The selection process is: Pre-Placement Talk → Technical Written Test (Logic, Programming, Case-based MCQs) → Technical Interview → HR & Culture Fit. Focus in this order:
1. Written Test
Logic + Programming MCQs + 1–2 case questions. Fast, objective. Practise output-based MCQs.
2. Full Stack
HTML/CSS/JS + React/Angular + Node/Java/Python + DB + REST. Expect "explain the flow".
3. SQL
Joins, GROUP BY, subqueries. Near-guaranteed in a developer drive.
4. DSA Basics
Arrays, Strings, HashMap, complexity (Big-O). Whiteboard-level, not hardcore.
Tonight's time allocation (assume ~6 hrs)
- 1.5 hr — Logic/Aptitude + output-based MCQs (this tab + Written Test tab)
- 1.5 hr — Full Stack: HTML/CSS/JS, React basics, Node/Express, REST verbs
- 1 hr — SQL (all joins + 5 classic queries) and DBMS basics
- 1 hr — DSA: arrays, strings, HashMap, Big-O, 5 easy coding problems
- 1 hr — Case-based questions + rehearse "Tell me about yourself" and project pitch
Top 6 must-knows for THIS drive
- REST API verbs & status codes — GET/POST/PUT/PATCH/DELETE, 200/201/400/401/404/500.
- React fundamentals — components, props, state, useEffect, JSX, virtual DOM.
- SQL joins — INNER vs LEFT in particular; be able to write all five.
- Big-O — array access O(1), HashMap O(1) avg, binary search O(log n), sort O(n log n).
- How the frontend talks to backend — fetch/axios → REST endpoint → DB → JSON back.
- Git basics — init, add, commit, push, pull, branch, merge.
💡 Exposys is a Bengaluru product company. Expect practical, "how would you build this" questions more than theory memorisation. Be ready to describe a project you built end-to-end.
Technical Written Test — Practice MCQs
Format per JD: Logic, Programming, Case-based MCQs. Answers are in the collapsible below each. Try first, then check.
Programming Output MCQs
Q1. What is the output of console.log(typeof null) in JavaScript?
A) null B) object C) undefined D) string
Show answer
B) "object" — a well-known JS quirk.
Q2. let a = [1,2,3]; console.log(a == "1,2,3")
A) true B) false C) error D) undefined
Show answer
A) true — the array is coerced to a string for loose equality.
Q3. In Python, what does len({1,2,2,3,3,3}) return?
A) 6 B) 3 C) 1 D) error
Show answer
B) 3 — a set stores unique elements.
Q4. What is the time complexity of binary search on a sorted array of n elements?
A) O(n) B) O(n log n) C) O(log n) D) O(1)
Show answer
C) O(log n)
Q5. Which HTTP method is idempotent AND used to fully replace a resource?
A) POST B) PUT C) PATCH D) GET
Show answer
B) PUT — replaces the resource; POST creates; PATCH partially updates.
Logic & Reasoning MCQs
Q6. Series: 2, 6, 12, 20, 30, ?
A) 36 B) 42 C) 40 D) 44
Show answer
B) 42 — differences are 4,6,8,10,12; 30+12=42. (Pattern n²+n.)
Q7. A is B's father. C is A's mother. D is C's mother. How is B related to D?
A) Grandson B) Great-grandson C) Son D) Uncle
Show answer
B) Great-grandson — D is A's grandmother, so D is B's great-grandmother.
Q8. If 5 machines make 5 toys in 5 minutes, how long do 100 machines take to make 100 toys?
A) 100 min B) 5 min C) 20 min D) 1 min
Show answer
B) 5 minutes — each machine makes 1 toy in 5 min, so 100 machines make 100 in 5 min.
Q9. All roses are flowers. Some flowers fade quickly. Conclusion: Some roses fade quickly.
A) True B) False C) Cannot be determined D) Partially true
Show answer
C) Cannot be determined — classic syllogism trap; no link is guaranteed.
Q10. A train 200 m long moves at 20 m/s. How long to cross a 300 m platform?
A) 15 s B) 25 s C) 20 s D) 10 s
Show answer
B) 25 s — total distance 200+300=500 m ÷ 20 = 25 s.
Coding problems to write from scratch tonight
- Reverse a string / array (JS:
s.split('').reverse().join(''))
- Check palindrome (numbers and strings)
- Find the first non-repeating character in a string
- Count frequency of elements in an array (use a HashMap / object)
- Remove duplicates from an array
- Two-sum: find a pair that adds up to a target
- FizzBuzz / prime check / factorial / Fibonacci (iterative + recursive)
Full Stack Developer — Core Knowledge
Per the JD, the required stack is HTML/CSS/JavaScript + (React/Angular) + (Node/Java/Python) + (MySQL/PostgreSQL/MongoDB) + REST APIs. Know each layer well enough to explain "how a request flows."
Frontend — HTML / CSS / JavaScript
- HTML5: semantic tags (
header, nav, main, section, footer), forms & input types, accessibility (alt text, labels).
- CSS: box model, Flexbox vs Grid, specificity, media queries (responsive), units (px vs rem vs %).
- JavaScript: var/let/const, arrow functions, template literals, destructuring,
map/filter/reduce, === vs ==, closures, promises & async/await, DOM events.
React fundamentals high priority
- Components — functional components; props passed from parent to child.
- State —
useState hook; immutable updates.
- Effects —
useEffect for data fetching / side effects; dependency array.
- JSX — HTML-like syntax;
className instead of class.
- Virtual DOM — why React is fast; reconciliation.
- Lists & keys —
key prop for rendering arrays.
- Conditional rendering — ternary / && operators.
function UserList() {
const [users, setUsers] = useState([]);
useEffect(() => {
fetch("/api/users") // GET request to backend
.then(r => r.json())
.then(data => setUsers(data));
}, []);
return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
}
Backend — Node.js / Express (or Java / Python)
- Node.js — JS runtime on the server; event-driven, non-blocking I/O.
- Express — routing:
app.get / app.post / app.put / app.delete.
- Middleware — functions that run between request and response (auth, body-parser, logging).
- Controllers & routing — separate business logic from routes.
- Environment variables — keep secrets (DB passwords, JWT keys) in
.env.
- Error handling — try/catch + centralized error middleware.
const express = require("express");
const app = express();
app.use(express.json());
app.get("/api/users", async (req, res) => {
const users = await db.query("SELECT * FROM users");
res.status(200).json(users);
});
app.post("/api/users", async (req, res) => {
const { name, email } = req.body;
const u = await db.query("INSERT INTO users(name,email) VALUES(?,?)", [name, email]);
res.status(201).json(u);
});
app.listen(3000);
REST API — must-know
GET — read
POST — create
PUT — replace/update
PATCH — partial update
DELETE — remove
200/201 — OK / Created
400/401/403 — Bad req / Unauth / Forbidden
404/500 — Not found / Server error
REST = Representational State Transfer. Uses HTTP verbs + URLs; stateless; usually exchanges JSON. Example resource path: GET /api/products/12 returns product #12.
Git & version control (good-to-have, but easy points)
git init
git add .
git commit -m "initial commit"
git branch feature-login
git checkout feature-login
git merge feature-login
git push origin main
git pull
SQL & Database Fundamentals
JD names MySQL / PostgreSQL / MongoDB. SQL will almost certainly appear in the written test and interview.
Core SQL clause order
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING condition_on_aggregates
ORDER BY column ASC|DESC
LIMIT n;
The five joins — know them cold
-- INNER JOIN: only matching rows in both tables
SELECT * FROM orders o
INNER JOIN users u ON o.user_id = u.id;
-- LEFT JOIN: all rows from left, NULLs where no match on right
SELECT * FROM users u
LEFT JOIN orders o ON u.id = o.user_id;
-- RIGHT JOIN: all rows from right table
-- FULL JOIN: all rows from both (NULLs where no match)
-- SELF JOIN: table joined to itself (e.g. employee -> manager)
Classic interview queries
-- 1. Second highest salary
SELECT MAX(salary) FROM employees
WHERE salary < (SELECT MAX(salary) FROM employees);
-- 2. Find duplicate records
SELECT name, COUNT(*) AS cnt
FROM employees
GROUP BY name
HAVING COUNT(*) > 1;
-- 3. Employees earning above their department average
SELECT * FROM employees e
WHERE salary > (
SELECT AVG(salary) FROM employees
WHERE dept_id = e.dept_id
);
-- 4. Top 3 highest-paid per department (Postgres, window fn)
SELECT * FROM (
SELECT *, RANK() OVER (PARTITION BY dept_id ORDER BY salary DESC) rk
FROM employees
) t WHERE rk <= 3;
-- 5. Count of orders per user
SELECT u.name, COUNT(o.id) AS total
FROM users u LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.name;
DBMS concepts
- Keys: primary (unique + non-null), foreign (references another table), candidate, composite.
- Normalization: 1NF (atomic values) → 2NF (no partial dependency) → 3NF (no transitive dependency).
- ACID: Atomicity, Consistency, Isolation, Durability.
- Index: speeds up reads, slows writes; created on frequently-filtered columns.
- Transactions: BEGIN / COMMIT / ROLLBACK.
SQL vs NoSQL (MongoDB)
- SQL — structured tables, fixed schema, strong relationships, vertical scaling.
- MongoDB — documents (JSON-like), flexible schema, horizontal scaling. Collections instead of tables, documents instead of rows.
Data Science Role (in case you also apply)
The JD for Role 1: Data Scientist requires Python, Pandas/NumPy/Scikit-learn, SQL, and ML concepts.
Python data stack
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
df = pd.read_csv("data.csv")
df = df.dropna()
X = df[["area", "rooms"]]
y = df["price"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = LinearRegression().fit(X_train, y_train)
preds = model.predict(X_test)
print(mean_squared_error(y_test, preds))
ML concepts to know
- Supervised learning — labeled data. Regression (continuous, e.g. price) vs Classification (categories, e.g. spam).
- Unsupervised — no labels. Clustering (K-Means) groups similar items.
- Train/test split — evaluate on unseen data to check generalisation.
- Overfitting vs underfitting — too tuned to train data vs model too simple.
- Metrics: Accuracy, Precision, Recall, F1, RMSE.
- Feature engineering — creating useful inputs from raw data.
Statistics & Probability
- Mean, median, mode; variance & standard deviation.
- Normal distribution; correlation vs causation.
- Basic probability: independent events, conditional probability, Bayes' idea.
- Bias, data leakage, model drift (mentioned in JD as "good to have").
Case-Based Questions — Framework
The written test has case-based MCQs and the interview may pose a practical scenario. Speak/answer in this order:
- Understand the problem — restate it in your own words.
- Clarify — ask 1–2 questions (constraints, users, scale).
- Break it down — list features/components.
- Choose an approach — tech stack for a dev case; model for a DS case.
- Trade-offs — mention alternatives (e.g. SQL vs NoSQL, or which ML algorithm and why).
- Conclude — a clear recommendation.
Example: "Design a simple 'to-do app' end-to-end."
Model answer
Frontend: React — component for the list, form to add tasks, state via useState.
Backend: Node + Express — REST endpoints GET /tasks, POST /tasks, PUT /tasks/:id (toggle done), DELETE /tasks/:id.
Database: MongoDB (flexible) or MySQL (structured). A task collection: {id, title, done, createdAt}.
Flow: React fetches tasks on load → user submits a new task → POST to backend → DB insert → response → UI update.
Extras: JWT auth, Git for version control, deploy frontend on Vercel/host backend on a cloud VM.
Example: "Sales dropped 20% last quarter. How would you investigate?"
Model answer
1. Segment: by region, product, channel, customer type — find where the drop concentrates.
2. Time: is it sudden or gradual? Align with events (price change, campaign end).
3. Compare: vs last year, vs competitors, vs market trend.
4. Data: query sales table, group by segment, compute deltas.
5. Hypotheses: external (market) vs internal (product issues, staff, pricing).
6. Recommend: act on the segment with the largest drop.
Example: "Estimate the number of cars in Bengaluru."
Model answer
Population ≈ 13 million → assume ~4 people per household → ~3.2M households. Assume 40% own a car → ~1.3M cars. Round: ~1.3–1.5 million cars. State assumptions clearly — that's what's being tested.
Technical Interview + HR
Technical interview — expect
- Explain one of your projects end-to-end: problem, stack, your role, challenges, what you'd improve.
- Write a small function live — reverse a string, find duplicates, FizzBuzz, basic array operations.
- Explain REST, an API request flow, the difference between frontend and backend.
- Simple SQL — write a join, count rows per group.
- DBMS basics — primary key vs foreign key, what is normalization.
HR & Culture Fit — standard set
Tell me about yourself
Formula: Present (who you are + degree) → Past (a project or skill you built) → Future (why this role/company). Keep to 60–90 seconds.
Strengths & weaknesses
Pick strengths tied to the role (problem-solving, learning fast). For weakness, pick a real one + the fix you're already applying ("I used to rush into coding — now I sketch pseudocode first").
Why Exposys Data Labs?
Mention: product-driven environment, industry-grade standards, Bengaluru base, learning across data + full stack, and "strong foundation for Tier-1 careers" as mentioned in their JD.
Where do you see yourself in 3 years?
Becoming a strong full-stack developer who can own features end-to-end, gaining depth in one area (e.g. backend or data), and mentoring juniors.
Do you have any questions for us?
Ask 1–2: "What does the first 3 months look like for this role?" / "Which tech stack does the current team primarily use?"
Day-of checklist
- Resume — 2 printed copies. Carry a small notepad + pen.
- Carry college ID / government ID.
- Revise your projects the night before; be ready to talk about any line of code in them.
- Dress neatly; reach 30 min early.
- Sleep 7+ hours — the written test rewards a fresh brain.
✍️ One smart move during the interview: if you don't know something, say "I haven't worked with X, but based on what I know of Y, I'd approach it like…" — this shows thinking, which Exposys explicitly values (their JD says "human-focused, not technology driven").