Data Engineer · Fresher
Definitions, differences, simple examples, basic workflow, and common mistakes.
Try each answer before revealing the suggested coaching answer.
Your Data Engineer preparation path
Follow the roadmap, choose relevant learning resources, build a project, then test your understanding with interview practice.
Compare Data Engineer certifications, costs and value
Explore free Data Engineer courses and a suggested learning order
Prepare your Data Engineer resume with keywords and evidence
25 questions
01What is SQL joins and aggregations, and why is it important for a Data Engineer?
A clear 90-second answer
Say this first: SQL joins and aggregations should be explained through its purpose, the boundary where it applies, and the evidence that shows it is working.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply SQL joins and aggregations, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
02Explain window functions with a simple real-world example for a Data Engineer interview.
A clear 90-second answer
Say this first: window functions is a choice between approaches with different strengths. The useful answer is the decision rule, not a dictionary definition.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply window functions, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Choose the option that fits the workload and constraints; do not present one option as universally superior.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
03What problem does data warehouse vs lakehouse solve in Data Engineering?
A clear 90-second answer
Say this first: data warehouse vs lakehouse is a choice between approaches with different strengths. The useful answer is the decision rule, not a dictionary definition.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply data warehouse vs lakehouse, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Choose the option that fits the workload and constraints; do not present one option as universally superior.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
04How would you explain ETL vs ELT to a non-technical interviewer?
A clear 90-second answer
Say this first: ETL vs ELT is a choice between approaches with different strengths. The useful answer is the decision rule, not a dictionary definition.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply ETL vs ELT, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Choose the option that fits the workload and constraints; do not present one option as universally superior.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
05What is a common mistake beginners make with batch vs streaming pipelines?
A clear 90-second answer
Say this first: batch vs streaming pipelines is a choice between approaches with different strengths. The useful answer is the decision rule, not a dictionary definition.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply batch vs streaming pipelines, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Choose the option that fits the workload and constraints; do not present one option as universally superior.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
06What is schema design, and why is it important for a Data Engineer?
A clear 90-second answer
Say this first: schema design should be explained through its purpose, the boundary where it applies, and the evidence that shows it is working.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply schema design, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
request or change → guardrail / validation → schema design → observable result → owner reviewPractice prompt: Keep the scope small. Do not claim production ownership you have not had.
07Explain star and snowflake schema with a simple real-world example for a Data Engineer interview.
A clear 90-second answer
Say this first: star and snowflake schema is a choice between approaches with different strengths. The useful answer is the decision rule, not a dictionary definition.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply star and snowflake schema, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Choose the option that fits the workload and constraints; do not present one option as universally superior.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
08What problem does slowly changing dimensions solve in Data Engineering?
A clear 90-second answer
Say this first: An SLO is a reliability target for a user-visible service. Its error budget is the amount of unreliability allowed before reliability work takes priority over further change.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply slowly changing dimensions, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
09How would you explain partitioning and clustering to a non-technical interviewer?
A clear 90-second answer
Say this first: “partitioning and clustering is the part of the system that helps us deliver the intended outcome safely and predictably. I would explain it using a small customer scenario, then show the check that proves it worked.”
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply partitioning and clustering, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
10What is a common mistake beginners make with Parquet vs Avro?
A clear 90-second answer
Say this first: Parquet vs Avro is a choice between approaches with different strengths. The useful answer is the decision rule, not a dictionary definition.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply Parquet vs Avro, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Choose the option that fits the workload and constraints; do not present one option as universally superior.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
11What is Spark transformations and actions, and why is it important for a Data Engineer?
A clear 90-second answer
Say this first: Spark transformations and actions should be explained through its purpose, the boundary where it applies, and the evidence that shows it is working.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply Spark transformations and actions, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
12Explain wide vs narrow dependencies with a simple real-world example for a Data Engineer interview.
A clear 90-second answer
Say this first: wide vs narrow dependencies is a choice between approaches with different strengths. The useful answer is the decision rule, not a dictionary definition.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply wide vs narrow dependencies, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Choose the option that fits the workload and constraints; do not present one option as universally superior.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
13What problem does Kafka fundamentals solve in Data Engineering?
A clear 90-second answer
Say this first: Kafka fundamentals should be explained through its purpose, the boundary where it applies, and the evidence that shows it is working.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply Kafka fundamentals, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
14How would you explain Airflow DAG design to a non-technical interviewer?
A clear 90-second answer
Say this first: “Airflow DAG design is the part of the system that helps us deliver the intended outcome safely and predictably. I would explain it using a small customer scenario, then show the check that proves it worked.”
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply Airflow DAG design, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
15What is a common mistake beginners make with idempotent pipelines?
A clear 90-second answer
Say this first: The important point about idempotent pipelines is how an engineer recognizes the unsafe path early and prevents it from becoming customer impact.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply idempotent pipelines, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Start with containment and evidence. Changing several variables at once makes the incident harder to understand.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
16What is data quality checks, and why is it important for a Data Engineer?
A clear 90-second answer
Say this first: data quality checks should be explained through its purpose, the boundary where it applies, and the evidence that shows it is working.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply data quality checks, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
17Explain schema evolution with a simple real-world example for a Data Engineer interview.
A clear 90-second answer
Say this first: schema evolution is a choice between approaches with different strengths. The useful answer is the decision rule, not a dictionary definition.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply schema evolution, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Choose the option that fits the workload and constraints; do not present one option as universally superior.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
18What problem does late arriving events solve in Data Engineering?
A clear 90-second answer
Say this first: late arriving events should be explained through its purpose, the boundary where it applies, and the evidence that shows it is working.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply late arriving events, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
19How would you explain CDC pipelines to a non-technical interviewer?
A clear 90-second answer
Say this first: “CDC pipelines is the part of the system that helps us deliver the intended outcome safely and predictably. I would explain it using a small customer scenario, then show the check that proves it worked.”
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply CDC pipelines, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
20What is a common mistake beginners make with data lineage?
A clear 90-second answer
Say this first: The important point about data lineage is how an engineer recognizes the unsafe path early and prevents it from becoming customer impact.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply data lineage, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Start with containment and evidence. Changing several variables at once makes the incident harder to understand.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
21What is data contracts, and why is it important for a Data Engineer?
A clear 90-second answer
Say this first: data contracts should be explained through its purpose, the boundary where it applies, and the evidence that shows it is working.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply data contracts, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
22Explain PII handling with a simple real-world example for a Data Engineer interview.
A clear 90-second answer
Say this first: PII handling is a choice between approaches with different strengths. The useful answer is the decision rule, not a dictionary definition.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply PII handling, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Choose the option that fits the workload and constraints; do not present one option as universally superior.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
23What problem does warehouse cost optimization solve in Data Engineering?
A clear 90-second answer
Say this first: warehouse cost optimization should be explained through its purpose, the boundary where it applies, and the evidence that shows it is working.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply warehouse cost optimization, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
24How would you explain pipeline backfills to a non-technical interviewer?
A clear 90-second answer
Say this first: “pipeline backfills is the part of the system that helps us deliver the intended outcome safely and predictably. I would explain it using a small customer scenario, then show the check that proves it worked.”
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply pipeline backfills, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- State the constraint that could change your decision, such as scale, data sensitivity, recovery target, or team ownership.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
25What is a common mistake beginners make with incident handling in data pipelines?
A clear 90-second answer
Say this first: The important point about incident handling in data pipelines is how an engineer recognizes the unsafe path early and prevents it from becoming customer impact.
Use a real scenario
Imagine a checkout flow changed by several teams in the same release. The team must decide how to apply incident handling in data pipelines, verify the result, and explain the user impact. For a Data Engineer, attach the explanation to a risk-based test plan and failure report.
Show judgment
- name the concept, give one concrete use, and say how you would check the result.
- Start with containment and evidence. Changing several variables at once makes the incident harder to understand.
- Call out false confidence from brittle automation and the control that reduces it.
Concrete check
SELECT COUNT(*) AS rows, MAX(loaded_at) AS freshest FROM <table>;Evidence to mention
Track escaped defects, flaky-test rate, and feedback time. Say what baseline you compared against, what would trigger a rollback or escalation, and who owns the follow-up.
Practice prompt: Keep the scope small. Do not claim production ownership you have not had.
No questions match. Try another term.
Further reading
These are original practice questions and suggested answers. Adapt them to your own work and explain evidence, trade-offs, and limitations.