Lessons
1 · Reality Check and Your Search Plan
2 · Building Credibility From Zero
- 06What Credibility Means for a Fresher: Proof of Work
- 07Choose and Build a Project That Mirrors Your Target Companies
- 08Ship It: Deploy, Document and Make Your GitHub Easy to Read
- 09External Proof: Open Source, Hackathons and Writing About Your Work
- 10Honest Numbers: Measuring and Quantifying Student Projects
3 · Resume and LinkedIn
4 · Finding Jobs Before the Crowd
5 · Applications and Referrals
6 · Online Assessments and DSA
7 · Company Research for Interviews
8 · Technical Interview Rounds
9 · Behavioral and HR Rounds
10 · Offers, Negotiation and Joining
Lesson 30 · Technical Interview Rounds
What Technical Rounds Look Like and How to Solve Out Loud
Interviewers in a live coding round are judging how you think as much as whether your code runs. This article describes the technical rounds freshers meet at different kinds of employers, a six-step method for any coding problem, what useful thinking aloud sounds like, how to recover when stuck, how to handle take-home assignments, fundamentals and project deep-dives, and how to practise with AI as a reviewer.
For
Freshers who have cleared, or expect to clear, an assessment and face live technical interviews.
Level
Before you start
Read Module 6, especially OA Strategy: Constraints, Time, Brute Force and Partial Scoring (article 24), and Module 7 for company research.
On this page
Key takeaways
- Technical rounds vary by employer: problem-solving rounds, machine coding, design discussions, take-home builds, fundamentals and project deep-dives. Ask the recruiter which you will face.
- Use a fixed method for every problem: understand, match, plan, implement, review, evaluate. Most of the marks are in the steps before and after the code.
- Think aloud with specifics: what you are considering, why, and what the trade-off is. Silence hides your reasoning; vague narration hides it too.
- When stuck, say what you have tried and where you are stuck, start from a brute force, and accept hints gracefully. Using a hint well is a good signal.
- Practise without autocomplete, explain your own project in depth, and use AI after practice to check complexity and find missed edge cases, never during an interview.
In an assessment, the platform sees only your final code. In a live interview, a person watches you get there. Two candidates can write the same correct solution and receive opposite feedback: one explained the problem back, considered two approaches, chose one with a reason, tested an edge case and stated the complexity; the other typed in silence for twenty minutes and said "done".
Interviewers are trying to imagine working with you. Your reasoning, made audible, is most of what they evaluate. This article covers the rounds you will meet and a method that makes your thinking visible.
What you will learn
#- The kinds of technical rounds freshers face, by kind of employer.
- A six-step method for any live coding problem.
- What useful thinking aloud sounds like.
- How to recover when stuck, and how to use hints.
- How to handle take-home assignments, fundamentals questions and project deep-dives.
- How to practise, including with AI.
The rounds you may meet
#Processes vary by company and change over time; ask the recruiter (article 27). Typical patterns:
Kind of employer | Typical technical rounds |
|---|---|
Global product companies | Two or three problem-solving rounds (medium to hard, with follow-ups), sometimes a design discussion, plus a behavioral round |
Indian product companies | A problem-solving round, often a machine coding or low-level design round (article 31), sometimes a light system design round (article 32), plus a hiring manager or culture round |
Funded startups | A practical round: take-home assignment or live build, a discussion of your projects, a founder or lead conversation |
Global capability centres | A technical round on fundamentals and your projects, some coding, an HR round |
IT services companies | A technical interview on fundamentals (OOP, databases, operating systems, networks), basic coding, your project, then HR |
Across all of them, two things recur: solving a problem while explaining, and explaining your own project in depth.
A six-step method for any problem
#A widely taught version of this method is called UMPIRE: Understand, Match, Plan, Implement, Review, Evaluate. The names matter less than the habit of doing all six.
1. Understand
#Restate the problem in your own words and confirm it. Ask about anything unclear:
- Input size and ranges. Can values be negative? Can the input be empty?
- What to return if there is no answer.
- Whether the input is sorted, unique or can be modified.
Work through the given example by hand, and try one small example of your own.
2. Match
#Say which pattern it resembles and why: "We need the longest contiguous range satisfying a condition, which suggests a sliding window." If nothing matches, say so and start from brute force.
3. Plan
#Describe the approach before coding, including its complexity: "I'll keep a map of counts in the window and move the left pointer while there are more than k distinct characters. Each character enters and leaves once, so O(n) time and O(k) space." Ask: "Does that sound reasonable, or should I start with something simpler?"
Many interviewers will tell you at this point if you are heading somewhere unproductive. That is a gift; take it.
4. Implement
#Write clean code with meaningful names, narrating the main steps, not every keystroke. If the editor has no autocomplete, write what you know and say when you are unsure of an exact method name ("I believe it's getOrDefault; I'll use that and check").
5. Review
#Before saying "done", trace your code with the example, line by line, out loud. Then try an edge case: empty input, one element, all equal. Find your own bugs before the interviewer does; it is one of the strongest signals you can give.
6. Evaluate
#State the time and space complexity and why. Mention what you would improve with more time, and how the solution changes if constraints change ("if the data didn't fit in memory, I would…").
Thinking aloud: specific, not running commentary
#Useful narration explains choices and trade-offs:
Not useful | Useful |
|---|---|
"Hmm… let me think… okay…" | "I'm deciding between sorting first, which is O(n log n), and a hash set, which is O(n) but uses extra memory. n is up to 10^5, so either fits; the hash set is simpler." |
(Silence for three minutes) | "I'm stuck on how to handle duplicates. One option is to skip equal neighbours after sorting." |
"Now I'm writing a for loop." | "This loop moves the right edge; the inner while shrinks the window until it is valid again." |
If you need a moment to think, say so: "Can I take thirty seconds to think about this?" Silence that you announce is fine. Unexplained silence is hard for an interviewer to read.
When you are stuck
#Getting stuck is normal and expected; interviewers often choose problems where most candidates struggle somewhere. What they watch is how you handle it.
- Say where you are. "I have an O(n^2) approach. I think it can be faster because we recompute sums; I'm looking for a way to reuse them."
- Fall back to brute force. Code a correct, slow solution if you have time. It shows you can deliver, and optimising from working code is easier.
- Try small examples and look for a pattern in them.
- Accept hints gracefully. If the interviewer suggests something, build on it ("That's useful: if we keep prefix sums, the range sum becomes a subtraction") rather than ignoring it or defending your old approach.
Take-home assignments
#Startups often send a small project to build in a few hours or days.
- Read the brief twice and list the requirements. Ask questions early if something is unclear.
- Scope honestly. Deliver the core requirements well before adding extras.
- Show engineering judgement: sensible structure, input validation, error handling, a few meaningful tests and a README with how to run it, your assumptions, the trade-offs you made and what you would do with more time.
- Respect the time guidance. If they say three hours, a solution that obviously took three days can count against you. Note in the README how long you spent.
- Follow their rules on AI tools. Some companies allow AI assistance, some forbid it, some ask you to disclose it. If allowed, you must still understand and be able to explain every line; the follow-up interview usually walks through your code.
Fundamentals questions
#Many interviews, especially at capability centres and services companies, ask core CS questions. Prepare them through your own project, which makes the answers concrete:
Area | Typical questions | Connect to your project |
|---|---|---|
OOP | Encapsulation, inheritance, polymorphism, abstraction; interfaces versus abstract classes | Point to classes in your project and why you designed them that way |
Databases | Normalisation, joins, indexes, transactions and ACID | Your schema, an index you added, a transaction you needed |
Operating systems | Processes and threads, scheduling, deadlocks, memory | Concurrency in your project, if any; what happens when your server handles many requests |
Networks | What happens when you type a URL, HTTP methods and status codes, TCP versus UDP | How your frontend talks to your backend |
The project deep-dive
#Expect an interviewer to pick one project from your resume and go deep: "Why this database?", "What happens if two users book the same slot?", "How would it handle a hundred times the users?", "What would you change?" Your decisions file (article 7) is your preparation. Practise explaining your project in two minutes, then in ten, and answer the "why" behind every major choice.
Practising
#- Use a plain editor at least once a week, without autocomplete, to mimic shared interview editors.
- Time yourself on the six steps: aim to reach the plan within the first ten minutes of a 45-minute problem.
- Record yourself solving one problem aloud each week, and listen for silence and vague narration.
- Practise with people where you can (article 33): peers, seniors, mock interview platforms.
AI as a reviewer, after practice
#After you solve a practice problem, ask an assistant to review, not to solve:
Here is a practice problem and my solution, with the complexity I stated.1. Is my complexity analysis correct? Walk through the code to justify it.2. List edge cases my code fails, with the input and expected output.3. What would an interviewer likely ask as a follow-up?4. Comment on readability: names, structure, anything confusing.Do not rewrite the whole solution.[problem, my code, my stated complexity]Then run the edge cases it lists. Assistants sometimes claim a bug that is not there, so trust the run, not the claim.
A worked example
#Problem: "Given a list of meeting intervals, find the minimum number of rooms needed."
- Understand: "So intervals are start and end times, and I need the maximum number of meetings happening at once? If one ends at 10 and another starts at 10, do they conflict?" (Interviewer: no.)
- Match: "This feels like an interval problem: sort by start, and track ongoing meetings."
- Plan: "Sort by start time. Keep a min-heap of end times for rooms in use. For each meeting, if the earliest-ending room is free by this start, reuse it; otherwise add a room. The answer is the heap's maximum size. O(n log n) time, O(n) space. Does that sound right?"
- Implement with narration.
- Review: traces the meetings (0, 30), (5, 10) and (15, 20) and gets 2; tries (1, 5) and (5, 10) and gets 1, matching the clarification.
- Evaluate: states the complexity; mentions an alternative of sorting start and end times separately with two pointers.
Even if a bug had appeared, the interviewer would have seen a clear thinker.
Common mistakes
#- Coding immediately without clarifying or planning.
- Long silences or vague narration.
- Saying "done" without tracing an example.
- Ignoring or arguing with hints.
- Not knowing your own project's design choices.
- Wrong complexity stated confidently. "I believe it's O(n log n) because of the sort" is better than a confident wrong answer.
Exercises
#Exercise 1
Clarifying questions
#Write four clarifying questions for: "Given an array of integers, return the two numbers that add up to a target."
Exercise 2: Improve the narration
#Rewrite these as useful think-aloud statements: (a) "Okay, let me just code this."; (b) "Um, I'm thinking."; (c) "I'll use a HashMap."
Exercise 3: Handle being stuck
#Twenty minutes into a 45-minute round, you have no idea how to get below O(n^2), and you have not written code. What do you say and do next?
Exercise 4: Rehearse one problem aloud
#Pick a medium problem you have not seen. Solve it aloud using the six steps, recording yourself, in a plain editor, with a 45-minute timer. Listen back and note one improvement for each step.
Show solutionHide solution
- "Can the array contain negative numbers or zero?"
- "Is there always exactly one answer, or could there be none or several? What should I return if there is none?"
- "Should I return the numbers themselves or their indices? Can I use the same element twice?"
- "Is the array sorted, and how large can it be?"
Each answer changes the solution: sorted input allows two pointers; indices rule out sorting without tracking positions; "no answer" needs a defined return value.
Exercise 2
Show solutionHide solution
(a) "Before I code: my plan is one pass with a hash map from value to index, so O(n) time and O(n) space. I'll write it, then trace your example."
(b) "I'm thinking about whether sorting helps here. It would let me use two pointers, but we'd lose the original indices. Give me thirty seconds."
(c) "I'll use a HashMap from each number to its index, because I need constant-time lookups of 'have I seen target minus this number?'"
Each states what you are doing and why.
Exercise 3
Show solutionHide solution
Say where you are and move to something that delivers value:
"I don't see the faster approach yet. Let me write the O(n^2) solution so we have something correct, and then look for what it recomputes." Write it quickly and trace an example.
Then think aloud about the repeated work: "The inner loop recomputes sums for overlapping ranges; maybe prefix sums or a hash map can remove it." If the interviewer offers a hint, build on it explicitly.
This shows delivery, honesty and structured thinking, which often matters more than whether you reach the optimal solution.
Exercise 4
Show solutionHide solution
A useful self-review lists one note per step, for example:
- Understand: "I didn't ask whether the input could be empty."
- Match: "Recognised the pattern quickly; said why."
- Plan: "Stated complexity only after coding; say it before."
- Implement: "Two silences over a minute while debugging an index."
- Review: "Traced the example but no edge case."
- Evaluate: "Complexity correct; no mention of alternatives."
Pick the weakest step and focus on it in next week's practice.
Where to go next
#- Next: Machine Coding and Low-Level Design for Freshers prepares the round most freshers have never practised.
- For a step-by-step coding interview workflow, see The Interview Problem-Solving Workflow.
- For Java-specific interview questions, see Java Interview Concepts, Part 1: Core Java, Collections, Functional Java, the JVM and Concurrency.
- Career
- Software Engineering
- #AI
- #coding interviews
- #DSA
- #freshers
- #interview preparation
- #job search
- #mock interviews
- #off-campus placement
Connected lessons
Linked from 3 guides
Other pages in the library that point here.
Keep reading
More in Career →Guide · Technology
Heaps and Priority Queues
Guide · Technology
Dynamic Programming Practice: From 1D to 2D
Course · Technology
DSA From Zero to Job-Ready: A Practical Guide with Java

