How I Think Through Hard Engineering Decisions

How I Think Through Hard Engineering Decisions
Subtitle: Why clarity, context, and uncertainty are more important than being right
Most hard decisions in engineering don’t come with a right answer.
They come with tradeoffs. Tension. Risk.
The real skill isn’t choosing fast.
It’s thinking well.
Here’s how I approach it.
1. I start with the constraints
What’s non-negotiable?
- A timeline?
- A legacy system we can’t touch?
- A skill gap on the team?
Good judgment starts with honesty.
You can’t design well if you don’t know what’s locked in.
2. I ask “what breaks first?”
Every design has a breaking point.
I look for it early.
- Where will latency stack up?
- What’s brittle under load?
- What assumptions are we quietly making?
The earlier I name failure points, the more gracefully we can handle them later.
3. I figure out what’s reversible
Some calls are easy to undo.
Others trap you for quarters.
I label each decision:
- One-way door: take your time
- Two-way door: ship and learn
This framing saves time and reduces fear.
Not everything needs a whiteboard war.
4. I surface opinions as facts
Many bad decisions start with someone saying:
“We always use X” or “That won’t scale”
I’ve learned to pause and ask:
Is this something we know—or something we believe?
This helps separate expertise from ego.
And turns a debate into a design session.
5. I ask the second-order question
Not “will this work?”
But “what does this choice make easier or harder later?”
A good design doesn’t just solve the problem.
It shapes what kind of problems you'll get next.
You won’t always be right
And that’s fine.
What matters is how you think.
- Can others follow your logic?
- Can you adapt as new facts emerge?
- Can you explain what you chose—and what you chose to live with?
That’s engineering judgment.
That’s the part that compounds.
Even when the answer isn’t obvious.