Tech Interview Preparation Module 8 – Behavioural, hiring-manager and campus HR rounds
The behavioural round: scoring and preparation
What a behavioural round scores, STAR used without sounding scripted, a story inventory mapped to published values, and answers timed at your pace.
What you will learn
- Explain what behavioural rounds assess and how an interviewer judges an answer
- Structure an answer with STAR without sounding scripted
- Build an inventory of eight to ten stories mapped to the competencies an employer publishes
- Answer at the right length for your own speaking rate, and handle the follow-up questions
Before you start
What you’ll learn · Before you start
What you will learn
- Explain what behavioural rounds assess and how an interviewer judges an answer
- Structure an answer with STAR without sounding scripted
- Build an inventory of eight to ten stories mapped to the competencies an employer publishes
- Answer at the right length for your own speaking rate, and handle the follow-up questions
Before you start
On this page
A behavioural round asks two or three questions that begin “Tell me about a time when…”, and each answer has a few minutes to prove something about you with one story. Amazon’s preparation pages say each interviewer typically asks two or three such questions, because “past behavior is an indicator of future success”.
Preparation decides these rounds more than talent: a story never said aloud runs long, loses its numbers and turns into “we”. What follows is what gets scored and how, STAR used without sounding rehearsed, and one story told three ways and measured. The full method, story by story, is in the Behavioral Interviews track.
Not affiliated
MySmartCoPilot has no link with Amazon, Google or Meta. Their advice on behavioural answers is quoted from their public careers pages, which References lists.
What a behavioural round scores
Three employers publish what their interviewers listen for. Meta’s guide names five focus areas: resolving conflict, growing continuously, embracing ambiguity, driving results and communicating effectively. Amazon assesses its 16 Leadership Principles, with different interviewers assigned different ones. Google’s tips ask how you handle ambiguity, how you work with people and teams, and how you lead, and say its questions want specific examples rather than “I always do X”.
Whatever the list, an answer is judged on what the interviewer can write down from it:
| They can write down | When you | And they cannot when you |
|---|---|---|
| What happened | Tell one specific situation | Describe what you usually do |
| What you did | Say “I” for your own actions | Say “we” all the way through |
| How it turned out | Give a number or a visible outcome | End with “it went well” |
| What you learned | Say what you do differently since | Stop at the result |
Amazon’s page asks for a detailed account of one situation per question, suggests “I” instead of “we”, and welcomes numbers or specific outcomes. Failure stories count too: Amazon says not every story has to be a success, and Meta’s guide says being open about imperfect projects won’t be counted against you.
Each published list is also a map for your preparation. A story inventory is a set of real stories chosen to cover the list of the employer you are meeting, so that every question of a loop gets a story of its own.
Checkpoint
Check: What a behavioural round scores
STAR, without sounding scripted
STAR method: A way to structure an answer to a behavioural question in four parts: the situation, your task, the actions you took and the result. Employers publish small variations of it. names four parts: the situation, your task, the actions you took and the result. Employers use it with small differences. Amazon calls it one way to structure an answer but not the only way, Meta’s guide asks for one or two sentences of situation, and Google’s version calls the A the Activity. An answer sounds scripted because of memorised sentences, not because of the structure: Amazon’s page says it does not expect rehearsed scripts. Learn each story as facts and numbers, and say it in fresh words each time. Step through one answer:
The drawing shows the whole scene; its 6 steps are listed below.
Every step as text
- Set the scene briefly. A sale evening, a food delivery startup, messages up to 14 minutes late: 19 words, enough to understand what was at stake. Meta's guide asks for one or two sentences here.
- Say what was yours. She was on call and owned the notification service. One sentence makes clear that the problem was hers to solve, not something she watched.
- The actions, in the first person. What she did, step by step: compared two signals, found the retries, added a backoff and a limit, tested, shipped behind a switch, wrote a load test. At 71 words this is half the answer, and every verb is "I".
- Numbers, then a lesson. Delays fell from 14 minutes to under one, the next two sales ran clean, and she names what she learned. The interviewer can write down an outcome and a habit.
- Stop, and offer more. At about a minute the core answer is done. Amazon's page suggests pausing after an answer to ask whether the interviewer would like more context, instead of guessing.
- Follow-ups go to the actions. Most follow-ups ask about the actions, why a backoff and not more workers, what she would do differently, so the story's middle is the part to know best.
Here is that story told three ways, measured part by part at Anaya’s own pace, 150 words read aloud in 66 seconds:
"""One story told three ways, measured part by part at the speaker's own pace."""
# Anaya read a 150-word passage aloud, at her interview pace, in 66 seconds.
RATE = 150 / 66 * 60 # words a minute
STOCK = ("team player", "hard worker", "passionate", "above and beyond", "ownership")
RAMBLING = {
"situation": "So this was at my last company, which is a food delivery startup, we had "
"about forty engineers then, maybe more, and our team owned the order service and "
"also notifications, and there was a lot going on that quarter because of a big "
"sale, and the product team had also changed the app, and honestly the on-call "
"rota was a bit of a mess, and our manager had just left, so it was a hard time. "
"On the sale evening things started going wrong with notifications and people got "
"messages late, and support was getting a lot of tickets, and we were all on a call.",
"task": "",
"action": "We looked at the logs and the dashboards and we tried a few things, we "
"restarted some workers and we talked to the vendor, and eventually we fixed it.",
"result": "It was fine after that and everyone was happy.",
}
SCRIPTED = {
"situation": "In my previous role I faced a challenging situation that tested my ownership.",
"task": "My task was to go above and beyond to deliver results for the customer.",
"action": "As a passionate team player and a hard worker, I took ownership, I dove "
"deep, I invented and simplified, and I disagreed and committed with my team.",
"result": "As a result the customer was delighted, and I learned a great deal.",
}
STAR = {
"situation": "On a sale evening at a food delivery startup, order-status messages "
"were reaching customers up to 14 minutes late.",
"task": "I was on call and owned the notification service, so finding the cause was mine.",
"action": "I compared the queue's depth with the provider's error rate and saw that "
"every failed send was retried at once, so failures multiplied. I added a "
"backoff to the retries and a limit on the queue, tested both on a copy of the "
"evening's traffic, and shipped them behind a switch within the hour. Then I "
"wrote a load test for the retry path so the next sale would be covered.",
"result": "Delays fell from 14 minutes to under one minute at the peak, and the next "
"two sales ran without an incident. I learned to load-test failure paths, not "
"only the happy path.",
}
def words(text: str) -> int:
return len(text.split())
def report(name: str, story: dict[str, str]) -> None:
total = sum(words(part) for part in story.values())
text = " ".join(story.values()).lower()
print(
f"{name}: {total} words, {total / RATE * 60:.0f} s at {RATE:.0f} words a minute"
)
for part, said in story.items():
share = words(said) / total
print(
f" {part:<10}{words(said):>4} words {share:>4.0%}{' MISSING' if not said else ''}"
)
numbers = sum(ch.isdigit() for ch in story["result"]) > 0
stock = sum(text.count(phrase) for phrase in STOCK)
print(
f" result has a number: {'yes' if numbers else 'no'}; stock phrases: {stock}"
)
for name, story in (("Rambling", RAMBLING), ("Scripted", SCRIPTED), ("STAR", STAR)):
report(name, story) Output
Rambling: 145 words, 64 s at 136 words a minute situation 107 words 74% task 0 words 0% MISSING action 29 words 20% result 9 words 6% result has a number: no; stock phrases: 0 Scripted: 67 words, 29 s at 136 words a minute situation 13 words 19% task 14 words 21% action 27 words 40% result 13 words 19% result has a number: no; stock phrases: 6 STAR: 137 words, 60 s at 136 words a minute situation 19 words 14% task 15 words 11% action 71 words 52% result 32 words 23% result has a number: yes; stock phrases: 0
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 story_timer.py
Runs on this device, in your browser. The first run downloads Python (about 13.5 MB), which is kept for the next runs.
Your run, in this browser
The rambling version spends 74 % of its words on the situation and never says what was hers. The scripted one is short but gives nothing to check: no number, and six stock phrases, two of them principles recited by name. The STAR version gives half its words to actions in the first person and ends with a number and a lesson, in about a minute, which leaves room for questions.
Reciting the values back
“I showed ownership” is a claim about yourself. The interviewer is looking for the action that would make them write ownership down, so say what you did and let them name it.
Write the checker those measurements come from, then run it on two stories of your own:
Exercise · Easy · Python
A checker for your own STAR stories
Write check_story(story, rate), which reads a story written in four labelled parts and returns the list of problems it finds, in this order, or an empty list when there are none:
missing: <part>for each ofsituation,task,actionandresultthat is absent or empty;action is not the longest partwhen another part has as many words as the action or more;result has no number or lessonwhen the result has no digit and does not contain the wordlearned;too long: <n> swhen the whole story, said atratewords a minute, takes 180 seconds or more, withnrounded down to whole seconds.
story is a dictionary from part names to text; words are the pieces of text between spaces. Run it on two of your own stories, timed at the rate you measured by reading a passage of known length aloud.
Starter code · star_check.py
"""Check a behavioural story written in four labelled parts."""
PARTS = ("situation", "task", "action", "result")
def check_story(story, rate):
"""Return the problems of a story, in the order the prompt lists them.
story: a dict from part names to text; rate: speaking words a minute.
>>> check_story({"situation": "s", "task": "t", "action": "a b c", "result": "2x"}, 136)
[]
"""
# Write your solution here.
return [] The sample tests · test_star_check.py
from star_check import check_story
GOOD = {
"situation": "On a sale evening messages were 14 minutes late.",
"task": "I owned the notification service.",
"action": "I compared the queue with the error rate and added a backoff and a limit.",
"result": "Delays fell from 14 minutes to under 1.",
}
def test_a_complete_story_has_no_problems():
"""a story with every part, a long action and a number passes"""
assert check_story(GOOD, 136) == []
def test_missing_parts_are_named_in_order():
"""each absent or empty part is reported, in the order situation, task, action, result"""
story = {"situation": "", "action": "I did a lot of careful work here.", "result": "It took 2 days."}
assert check_story(story, 136) == ["missing: situation", "missing: task"]
def test_action_must_be_the_longest_part():
"""a situation as long as the action is a problem"""
story = dict(GOOD, situation=" ".join(["word"] * 15))
assert check_story(story, 136) == ["action is not the longest part"]
def test_result_needs_a_number_or_a_lesson():
"""a result with neither a digit nor learned is a problem"""
assert check_story(dict(GOOD, result="It went well."), 136) == ["result has no number or lesson"]
def test_a_lesson_is_enough():
"""a result that says what was learned passes without a number"""
assert check_story(dict(GOOD, result="I learned to test the retry path."), 136) == []
def test_three_minutes_or_more_is_too_long():
"""408 words at 136 words a minute take exactly 180 seconds"""
story = dict(GOOD, action=" ".join(["word"] * 386))
assert check_story(story, 136) == ["too long: 180 s"]
def test_just_under_three_minutes_is_fine():
"""407 words at 136 words a minute take 179 seconds"""
story = dict(GOOD, action=" ".join(["word"] * 385))
assert check_story(story, 136) == [] A hint
Count the words of each part once, in a dictionary, and use it for every rule. The spoken seconds are the total words divided by the rate, times 60; int() rounds a positive number down.
Results of the sample tests
| Test | Result | Details |
|---|
What your code printed
The sample tests run on this device, in your browser (Pyodide): nothing is sent to mysmartcopilot.com. The first run downloads Python (about 13.5 MB), which is kept for the next runs. A check in your browser is feedback for you, not proof that the code is right for every input.
Key idea
An answer counts when it is one specific story, told in the first person, ending with a number or a lesson, and short enough to leave room for the questions that test it.
Checkpoint
Check: STAR without sounding scripted
A story inventory of eight to ten stories, mapped to published values Pro: opens with a Pro, Premium or Ultimate pass
One good story cannot serve a loop of four or five interviews that each ask two or three questions. This part sizes an inventory, checks one candidate’s stories against two employers’ published lists with a program, and turns the gaps into stories to look for.
In this part:
- How many stories a loop needs, with numbers
- Mapping stories to Meta’s five areas and Amazon’s sixteen principles
1 runnable example (Python) · about 4 minutes
Opening this part with your pass…
This part opens with any MySmartCoPilot pass.
- Pro pass · 1 week₹79$2.99
- 30 days₹179$5.99
- 1 year₹1,699$45
One payment; a pass never renews. The price shown is the total you pay: no fees or charges are added at checkout.
Passes can’t be bought right now, so this part can’t be opened at the moment. The free part above stands on its own. If you have a pass, enter your licence key.
It also opens every other in-depth part in Learn and every Pro tool. Sales are final, except where the law gives you a right to withdraw, for example in the EU and the UK (refund policy).
Delivering an answer: length, follow-up questions and failure stories Pro: opens with a Pro, Premium or Ultimate pass
A story that is complete on paper can still run long or come apart at the second question. This part sets the length from your measured pace, climbs the follow-up ladder on one story, and shows how a failure story counts for you.
In this part:
- About two minutes at your own pace, worked out
- The follow-up ladder: what exactly, why that, what would you change, did it last
- Failure stories that count for you
- A rubric for your own answers
- What to keep from the two parts
1 diagram · about 7 minutes
Opening this part with your pass…
This part opens with any MySmartCoPilot pass.
- Pro pass · 1 week₹79$2.99
- 30 days₹179$5.99
- 1 year₹1,699$45
One payment; a pass never renews. The price shown is the total you pay: no fees or charges are added at checkout.
Passes can’t be bought right now, so this part can’t be opened at the moment. The free part above stands on its own. If you have a pass, enter your licence key.
It also opens every other in-depth part in Learn and every Pro tool. Sales are final, except where the law gives you a right to withdraw, for example in the EU and the UK (refund policy).
Practise: what is scored, and STAR
Check yourself on the scoring and on STAR, starting with the idea you have answered least well:
Practice that adapts to you
Practise this lesson
6 questions about 7 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.
Interview questions
-
Fresher to mid · Warm-up
What is the STAR method, and when would you not follow it strictly?
STAR is a way to structure an answer to a behavioural question in four parts: the situation, my task in it, the actions I took and the result. I keep the situation to a sentence or two, give most of the answer to my own actions in the first person, and end with a number or a visible outcome and what I learned. I treat it as a guide rather than a script: Amazon's own page calls it one way to structure an answer, not the only way. When a question asks for something STAR does not fit, such as how I would approach a new situation or what I learned over a whole year, I answer that question directly and keep the same habits: one specific example, my part, and the outcome.
-
Fresher to mid
Your best story has no numbers you can share, because the project's results were never measured. How do you tell it so that the result still counts?
-
Fresher to senior
In a behavioural answer you keep saying "we", and the interviewer asks what you did yourself. How do you answer without making your team look smaller?
-
Fresher to senior
"Tell me about a time you failed." The interviewer wants a real failure, not a disguised strength. How do you choose the story, and how do you tell it?
Key takeaways
- Behavioural rounds score evidence from one past situation: what happened, what you did, the result and the lesson.
- STAR structures a story; memorised sentences, stock phrases and recited values make it sound scripted.
- One specific story, in the first person, with a number or a lesson, fits in about a minute and leaves room for questions.
Terms in this lesson
- STAR method
- A way to structure an answer to a behavioural question in four parts: the situation, your task, the actions you took and the result. Employers publish small variations of it.
References
- Interview loop: behavioural questions, the STAR method and tips for great answers (Amazon.jobs)
- Leadership Principles (Amazon.jobs)
- SDE II interview preparation: behavioural questions (Amazon.jobs)
- Interviewing at Google: best practices, advice and tips (Google Careers)
- Software Engineer Full Loop Interview Guide: the behavioral interview (linked from the onsite preparation page) (Meta Careers)
Related tools
Report a problem with this lesson
Kept only in this browser. Your Learn progress