← Engineering with AI STAGE 08 · 20 MIN

The engineer still owns the outcome

Choose useful assistance without handing away understanding, judgment, or accountability.

Open in the laboratory ↗

BY THE END, YOU CAN

  • Match a task to a suitable level of AI assistance
  • Separate a plausible answer from verified behavior
  • Practice a concept without depending on generated solutions
The assistant proposes; you decide. Oversight grows with what a mistake would cost.

Diagram description: You → Assistant; Assistant → Your review; Your review → Ship; Your review → Reject

Choose a bounded job for the assistant

An AI coding assistant can draft examples, explain unfamiliar code, propose tests, or suggest a small change.

Its output is a candidate you must evaluate. For Relay, ask it to compare two retry policies under a stated workload before asking it to rewrite the worker. Decide who uses the result, what failure would cost, and how you will check it.

Start with read-only explanation when you cannot yet judge a change. You still choose the requirements, review the consequences, and own the decision to release.

Turn assistance into deliberate practice

Use a three-pass routine: predict, investigate, reconstruct.

First trace a small function and write the output you expect. Next ask for one hint or a counterexample, then run the program. Finally close the answer and rebuild the idea with a different input.

In Relay, explain why the delay stops increasing, then implement a different cap from memory. This is a learning exercise designed for this laboratory, not proof that AI prevents skill loss. Beginners should keep practicing Python directly; experienced engineers can rehearse failure analysis and architecture tradeoffs.

Python
def retry_delay(attempt):
    if type(attempt) is not int or attempt < 0:
        raise ValueError("attempt must be a nonnegative integer")
    return 60 if attempt >= 6 else 2 ** attempt

print([retry_delay(n) for n in (0, 3, 6, 20)])

Scale oversight to the consequences

Review a local formatting change differently from a permission check or a database migration.

For a consequential change, identify a knowledgeable reviewer, realistic failure cases, and a recovery plan. A confident explanation is not execution evidence; a passing example is not a complete contract. Be able to explain the important branch conditions and the boundaries the tests do not cover.

If you cannot, narrow the change and learn that seam first. An assistant can help investigate an unknown, but uncertainty should remain visible until evidence resolves it.

COMMON FAILURE MODE

Accepting a solution because the explanation sounds convincing, then discovering you cannot diagnose it when its assumptions stop holding.

TRY IT YOURSELF

Predict the retry_delay outputs before running the snippet. Then close it and implement a cap of 30 seconds. Explain your treatment of negative integers, floats, and True.

RETRIEVAL CHECK / APPLY THE IDEA

Make the call in the laboratory.

The two-question checkpoint, your notes, and your saved progress are in the laboratory. Free, with no account.

Open in the laboratory ↗

CONNECT IT TO RELAY

Choose Relay’s idempotent submission change: a repeated key with the same payload should return the same job ID. Record what AI may assist with, what you will decide yourself, and how you will explain the behavior without the assistant.