0–5 min
Real Hook
5–20 min
Core Concept
20–40 min
Live Coding
40–55 min
You Code It
55–60 min
Cheat Sheet
🔥 Real-World Hook (0–5 min)
Your first day at Infosys, TCS, or a startup: your manager opens a Jira board, assigns you a ticket, and says "Fix this bug by EOD."
No one explains everything. No one holds your hand. You read the code, understand the system, fix the bug, write a PR, and get it reviewed. Today we simulate exactly that. This is Day 1 at a real company.
📋 The Real Developer Workflow (5–20 min)
💡 Industry Workflow
1. Pick up ticket → Read description on Jira/GitHub Issues
2. Create branch → git checkout -b feature/SMS-101-add-search
3. Write code → Implement, test locally
4. Write tests → Unit tests pass
5. Create PR → Pull Request with description
6. Code review → Address reviewer comments
7. Merge → CI/CD deploys automatically
💻 Live Coding — Simulate Fixing a Bug (20–40 min)
// TICKET SMS-101: BUG — Search endpoint returns 500 when query is empty
// Expected: return all students when query is empty
// Actual: NullPointerException in StudentService.search()
// BROKEN code (current main branch):
public List<Student> search(String query) {
return repo.findAll().stream()
.filter(s -> s.getName().contains(query)) // crashes if query=null
.collect(Collectors.toList());
}
// FIXED code (your branch: feature/SMS-101-fix-search):
public List<Student> search(String query) {
if (query == null || query.isBlank()) return repo.findAll();
return repo.findByNameContainingIgnoreCase(query);
}
// Unit test you write alongside the fix
@SpringBootTest
class StudentServiceTest {
@Autowired private StudentService service;
@Test
void searchWithNullQueryReturnsAll() {
List<Student> result = service.search(null);
assertThat(result).isNotNull();
}
@Test
void searchWithValidQueryFiltersResults() {
List<Student> result = service.search("Priya");
assertThat(result).allMatch(s -> s.getName().contains("Priya"));
}
}
🎯 Industry Simulation (40–55 min)
- Ticket 1 — New Feature: Add
GET /api/students/top?limit=5 — returns top N students by GPA
- Create branch:
git checkout -b feature/add-top-students-endpoint
- Implement, write 2 unit tests, commit with message: "feat: add top N students endpoint"
- Ticket 2 — Code Review: Review your partner's code — leave 2 improvement comments
- Ticket 3 — Deploy: Merge your branch to main, run
firebase deploy
- Final Show: Demo your full capstone — live URL, working features, GitHub repo with commit history
📄 Day 15 Cheat Sheet — Industry Simulation
Git Workflow
| git checkout -b feature/X | Start new feature |
| git add . && git commit | Save progress |
| git push origin feature/X | Push branch |
| gh pr create | Open pull request |
| git checkout main && git pull | Get latest main |
| git merge feature/X | Merge feature |
Commit Convention
| feat: add search endpoint | New feature |
| fix: handle null query | Bug fix |
| refactor: extract service | Restructure |
| test: add search tests | Tests only |
| docs: update README | Documentation |
| chore: update dependencies | Maintenance |
JUnit 5 Tests
| @SpringBootTest | Full context test |
| @WebMvcTest | Controller layer only |
| @Test void name() {} | Test method |
| assertThat(x).isEqualTo(y) | Assert equality |
| assertThat(list).hasSize(n) | List size |
| assertThat(x).isNotNull() | Not null |
What Interviewers Check
| GitHub profile | Real commit history |
| Project complexity | Full-stack preferred |
| Code organisation | Proper layers |
| Tests present | Even 2-3 tests |
| README.md | How to run it |
| Live URL | Firebase/Heroku link |