So this was the First Round
They had informed there would be 26 questions and duration would be 1 hr.
25 MCQs + 1 Coding Question (Javascript strictly)
out of 25, 10 where aptitude and 10 where technical with most being on sdlc and javascript.
Coding Question:
The Question
You are given an array of student objects with the following structure:
js{
Name: "String",
Id: Number,
Marks: { math: Number, stat: Number, sci: Number }
}
Write a function sortstudents(students) that:
Calculates the average of each student's marks
Assigns a letter grade based on the average:
A → avg ≥ 80
B → 60 ≤ avg < 80
C → 40 ≤ avg < 60
F → avg < 40
Filters the result to only include Grade A students
Sorts the result:
Primary: Average — highest to lowest
Secondary (tie-breaker): Name — A to Z
Returns an array of objects with shape { Name, Avg, Grade }
Export the function using module.exports = { sortstudents }
The Solution
jsfunction sortstudents(students) {
return students
.map(student => {
const scores = Object.values(student.Marks);
const avg = scores.reduce((acc, curr) => acc + curr, 0) / scores.length;
let grade = 'F';
if (avg >= 80) grade = 'A';
else if (avg >= 60) grade = 'B';
else if (avg >= 40) grade = 'C';
return {
Name: student.Name,
Avg: avg,
Grade: grade
};
})
.filter(s => s.Grade === 'A')
.sort((a, b) => {
if (b.Avg !== a.Avg) return b.Avg - a.Avg;
return a.Name.localeCompare(b.Name);
});
}
module.exports = { sortstudents };
Example Input / Output
jsconst students = [
{ Name: "Alice", Id: 1, Marks: { math: 12, stat: 20, sci: 30 } },
{ Name: "Zane", Id: 2, Marks: { math: 90, stat: 85, sci: 95 } },
{ Name: "Charlie", Id: 3, Marks: { math: 90, stat: 85, sci: 95 } },
{ Name: "Bob", Id: 4, Marks: { math: 82, stat: 80, sci: 78 } },
];
// Output:
[
{ Name: "Charlie", Avg: 90, Grade: "A" },
{ Name: "Zane", Avg: 90, Grade: "A" },
{ Name: "Bob", Avg: 80, Grade: "A" }
]
Common Reasons for Assertion Errors
Key names must be exactly Name, Avg, Grade (capital letters matter) else assertion error occurs
Keep Avg as a Number, not a string — don't use .toFixed() unless the test asks for it
Always include the name tie-breaker in your sort — without it, students with equal averages appear in unpredictable order and tests will fail
---
The Second Round they gave us a problem statement we were allowed to work on it from home and submit it the next day (24hrs were given)
A full-stack Knowledge Sharing Platform (think Medium + StackOverflow with AI features.
Stack: ReactJS + Node.js/Express + MySQL
Here's what was actually required:
JWT authentication (Signup, Login, Logout)
Full article CRUD (Create, Edit, Delete) with a Rich Text Editor (Quill/TipTap/CKEditor)
Search & filter by title, content, tags, and category
User dashboard
AI Writing Assistant (mandatory) — "Improve with AI" button that rewrites, fixes grammar, suggests titles
AI Summary Generator for article cards
AI Tag Suggestions (bonus)
Two public GitHub repos (frontend + backend) with detailed READMEs
A screen recording demo uploaded to Google Drive
Evaluation criteria: Code quality, API design, UI/UX, authorization logic, and how effectively you used AI tools during development.