AI & automation

Practical AI automation for developers

Where AI saves time in a software workflow, and where engineering judgment must stay in charge.

By Nadir AMMI SAID 9 min read

Automate the queue, not the responsibility

The best first AI workflow is usually small and slightly boring. Gather a known set of files, summarize a repetitive issue, classify an incoming request or prepare a draft that someone can inspect. The input is bounded and the output has a clear reviewer.

I become cautious when the proposed automation can modify production, send messages to customers or approve its own result. In those cases, the human approval is not a ceremonial click. It is part of the system design.

  • Define a narrow task
  • Keep the context traceable
  • Require approval for side effects

Give the model the right context

An AI system cannot infer the project rules that were never supplied to it. I pass the smallest useful context: the relevant files, the expected format, the constraints and an example of a good result. More context is not automatically better; unrelated context makes review harder.

I also keep the source of each important fact visible. A summary that cannot point back to a file, issue or log is difficult to trust, even when it sounds confident.

  • Use structured inputs
  • Keep source references
  • Do not send secrets or unnecessary personal data

Make outputs machine-checkable

Free-form text is convenient for a first draft but fragile in a workflow. When the result feeds another step, I ask for a schema and validate it before using it. A missing field, invalid URL or unexpected action should stop the workflow rather than silently pass through.

Validation does not make an AI response true. It only confirms that the response has the shape the next step expects. Factual checks and human review still matter.

  • Validate JSON or a typed result
  • Reject missing and unexpected fields
  • Separate formatting validation from truth verification

Design for failure

An API call can be slow, unavailable, incomplete or wrong. Timeouts, bounded retries and a useful fallback are part of the feature. I log enough information to understand what happened without logging private prompts or credentials.

I also test the awkward cases deliberately: an empty repository, an oversized input, a malformed response and a provider outage. A workflow that only works for the demo is not automation; it is a fragile shortcut.

  • Set timeouts
  • Use bounded retries
  • Provide a manual fallback

Measure usefulness honestly

The right metric is not how impressive the generated text looks. It is whether the workflow saves time without lowering quality or creating a larger review queue. I compare the old process with the new one and keep a sample of results for periodic review.

Sometimes the best outcome is deciding not to automate. If a task requires more correction than doing it manually, the model has not removed work. Good engineering judgment includes turning an automation off when its cost is visible.

TypeScriptAPIsLLM

Keep reading

Back to the journal