Adelaide · South Australia

Design to the requirement.Then implement what fits.

Software engineer and technical leader. Custom systems, the design of those systems, and an implementation that follows that design. Fourteen years building software, five of them leading engineers. A stack is a means. The constraint decides.

  1. Learn
  2. Build
  3. Enhance
  4. Implement
Three parts inside one boundary. The middle part is marked, and a line from a dashed requirement below meets it.

Six parts of taking a requirement through to a system.

Select one. The note is how that part shows up when the system has to fit a specific constraint, not a skill score.

Design

The shape comes from the requirement: who decides, which part may act, and what has to stay visible afterward. A runtime is chosen after that drawing, including a local model when the data has to stay on hardware I control.

Chosen because the requirement asked.

Fourteen years building. Five of those leading. The spans sit under the work. They are not the pitch.

Design

The requirement is the first artefact.

I write the constraint before I pick a framework. If it belongs to someone else, their constraint outranks a tool I already like. The design is what can be disagreed with. The implementation is what follows once that disagreement is settled.

Learn the constraint. Build the system. Enhance what holds. Implement what fits.

Three systems designed to a specific constraint, then implemented. The same sequence is how I take a requirement that is not my own.

An orchestrator over three narrow agents, each with a tool and a trace. One line leaves the boundary to a person.

Iterating

Governed agents

Requirement

What I check before the design is settled.

The requirement comes first.

I write the constraint before I pick a runtime. When the system is someone else’s, their constraint outranks a tool I already like.

Build before assuming.

If I can test the design against the requirement directly, I would rather test it than extend the argument.

Understand the trade-off.

There is rarely one architecture that is correct for every constraint. I write down what this implementation gives up.

Local when control is the requirement.

Ollama, LM Studio, Open WebUI, and NVIDIA NIM are runtimes I design and deploy when the data has to stay put. They are not the default answer to every brief.

Open where the mechanism matters.

If the people living with the system need to see what it is doing, I prefer software I can read. GitLab CE and OpenCode sit in that preference.

Privacy is part of the design.

If the requirement is that data stays with the system, that is drawn in at the start. Privacy added after the path is chosen is a patch.

Automate the repeated part.

If a person has to repeat the same intervention, the process is what gets redesigned. On the homelab, local models do that operational work.

Keep the system understandable.

Complexity has to earn its place in this requirement. A narrow agent with a trace is easier to account for than a roaming one.

Designed in order to learn the design.

These exist because I wanted the architecture in my hands. The method is the same one I use when the requirement comes from someone else.

A loop of five steps, with one line leaving it for oversight.

Iterating

Governed agents

Requirement: agents that act inside a boundary. Design: orchestrator, narrow agents, traces, a person in the loop.

Two paths joining at a gate under a person's approval, then continuing as one line.

Active

Multi-agent DevOps

Requirement: one system I could read. Implementation: LangGraph, self-hosted GitLab CE, Telegram approval.

Three stacked units. The middle one is marked as the one doing the work.

Active

Homelab

Requirement: infrastructure that does real work. Local models sit in that path, beside Docker services.

How the practice moved

Six spans over fourteen years. Software engineering runs the full length; later practices start later and sit on top of it, the newest being AI and agentic systems.

Requirements still being designed against.

Attention, not a claim of mastery.

  • Agentic architectures
  • Local AI as a runtime
  • LLM orchestration
  • AI-assisted engineering
  • Developer tooling
  • Self-hosted infrastructure
  • Privacy-preserving systems
  • Automation

Contact

If you have a requirement, write. Email is the direct path. LinkedIn works as well.