5 exercises — second, third, and mixed conditionals in post-mortems, design documents, code reviews, and architecture trade-off discussions.
Conditionals quick reference
1st (real/likely): If + present simple → will/can — "If we add caching, the API will be faster."
2nd (hypothetical): If + past simple → would — "If we adopted event sourcing, we would need a CQRS pattern."
3rd (past hypothetical): If + past perfect → would have — "If we had added the index, the query wouldn't have timed out."
Mixed (past → present): If + past perfect → would infinitive — "If we had migrated earlier, we would be on a stable platform today."
0 / 5 completed
1 / 5
Which sentence correctly uses the third conditional to discuss a past infrastructure decision?
Third conditional structure: If + past perfect, would have + past participle.
The third conditional expresses a hypothetical result of something that did not happen in the past. It is the most common conditional in engineering retrospectives and post-mortems.
Pattern: "If we had [done X], we would have [avoided Y]"
Frequent in technical contexts: • "If we had added the index earlier, the query would have run in milliseconds." • "If we hadn't deployed on a Friday, we would have had the full team available." • "If the circuit breaker had been configured correctly, the cascade failure wouldn't have propagated."
Common errors: using "would have" in the if-clause ("if we would have implemented" — incorrect), or mixing tenses ("if we implemented… we wouldn't have" — mixed, creates different meaning).
2 / 5
Your team is writing a design document. Which sentence uses the second conditional correctly to present a hypothetical architecture option?
Second conditional structure: If + past simple, would + infinitive.
The second conditional describes a hypothetical scenario that is possible but not current reality — often used to discuss architectural options not yet chosen, or theoretical approaches being evaluated.
Compare: • First conditional (real / likely): "If we adopt event sourcing, we will be able to replay state." — you're seriously considering this • Second conditional (hypothetical / less certain): "If we adopted event sourcing, we would be able to replay state." — presenting as an option, not a decision
In design documents, second conditional is used to present alternatives being evaluated: • "If we moved to a microservices architecture, we would need to invest in service mesh infrastructure." • "If we used GraphQL instead of REST, our frontend teams would have more flexibility in data fetching."
Option A (first conditional) implies the decision is already likely. Option B (third conditional) implies it was a past opportunity already missed.
3 / 5
A post-mortem document has this sentence: "If the load balancer _____ (be) configured correctly, the service _____ (not fail) during the traffic spike." Choose the correct form.
Third conditional for post-mortem analysis — past perfect + would have:
Post-mortems discuss things that did not happen in the past and what the outcome would have been. This is the defining use case for the third conditional in engineering.
Post-mortem conditional patterns: • "If the health check had been enabled, the deployment would have been rolled back automatically." • "If we hadn't deleted the wrong database, the recovery time would have been under an hour." • "If the alert threshold had been set lower, the on-call team would have been paged 15 minutes earlier."
The structure "had + past participle" in the if-clause signals that we're talking about something that did not happen — the load balancer was NOT configured correctly, hence the failure. Options A and B use present/future forms that change the meaning entirely. Option D mixes past simple with simple past negative, which is grammatically unusual and changes the logical relationship.
4 / 5
A staff engineer is presenting trade-offs in a tech talk. Which sentence best uses a mixed conditional (past cause → present result)?
Mixed conditional: If + past perfect (past cause), would + infinitive (present result).
Mixed conditionals connect a past hypothetical action to its present-day consequence — used to discuss "what things would be like now if a different decision had been made in the past".
Structure: "If we had [done X then], we would [be in a different situation now]."
This is the most sophisticated conditional form and appears frequently in strategy discussions, retrospectives, and architecture review boards: • "If we had adopted infrastructure as code three years ago, we wouldn't be dealing with so much config drift today." • "If we had hired a dedicated security engineer in 2022, our posture would be significantly stronger right now." • "If we had chosen Postgres over MongoDB for that feature, we would have a much simpler schema to maintain."
Option A uses "would have been" — this makes it a pure third conditional (past cause → past result), losing the present-day implication. Options C and D are first and second conditionals — no past dimension.
5 / 5
In a code review comment, an engineer writes: "Unless we add a mutex here, we _____ a race condition under concurrent load." Which form is correct?
"Unless" = "If… not" — takes the same conditional structure.
"Unless we add" = "If we don't add" — this is a first conditional (real/likely warning) with a present simple if-clause and modal result. In code review, this form is used to flag a real present risk, not a hypothetical one.
Unless + conditionals reference: • "Unless we add a mutex, we will encounter a race condition." (first conditional — likely real risk) • "Unless we added a mutex, we would encounter a race condition." (second conditional — hypothetical discussion) • "Unless we had added a mutex, we would have encountered a race condition." (third conditional — past review)
Note: "Unless we would add" is always incorrect — "unless" does not take "would" in the if-clause. This is one of the most common errors among non-native English speakers in technical writing.
Code review conditional signals Real risk: "Unless X, we will/could/risk Y" (first conditional) Design discussion: "Unless we X, we would need to Y" (second conditional) Retrospective: "Unless X had been done, Y would have occurred" (third conditional)