Portfolio walkthrough · a recent project where I improved the user experience
The improvement was in the process
Ten minutes, in five parts — the change was in the process, and the interface had to carry it.
Declaration Envelope Management · Australian Electoral Commission · Indigo Program 2025–26
| The process as it was | Four lanes, twelve tasks, and the same details typed in three times |
|---|---|
| The change | Removing the duplicate handling rather than optimising it |
| How the work was structured | The backlog and the design file in the same shape |
| The handover | Page anatomies, the flows behind them, and the new components |
| What remained | What the team carried on using after the engagement |
-
01
The problem
What the work cost the people doing it, and how I established that with them on site.
-
02
The decision
The process change I proposed, and the interface we agreed not to build.
-
03
The handover
What I prepared for the developers, and what the team kept using afterwards.
Before we start. The client’s screens do not appear here. Everything is rebuilt in my own design system with dummy data, and the process diagrams are drawn to explain the change — not lifted from the engagement.
Drawn from on-site observation, co-design, and the current-state record
The same information, handled again and again
Four lanes, and twelve tasks to move one vote envelope through — cast outside a polling place, and checked before it can be counted.
Typed once. The officer reads the details off the old system and types them into a second one.
Typed twice. Oversight cannot see the same record, so the whole thing is entered again before anyone can review it.
Typed three times. The paper register is collected in a batch and typed up later.
All of it at once — everything in red is the same data entered again. The judgement itself was fast. Everything around it was slow.
The rule · attention on the judgement, not the data entry
Remove the duplicate handling rather than optimise it
Same four lanes, same positions, so you can see exactly what moved.
The record is opened once and eligibility is derived from it, rather than typed again.
Everything in grey is a step that no longer exists. Nothing is re-typed, so there is nothing to match up afterwards — it happens as the decision is made.
Step in the process Step that no longer exists
One designer, three solutions — developers had to find the design without asking me
The backlog and the design file were the same shape
The design file took the shape of the backlog: an epic is a solution and one Figma file, a feature is a page in it, a user story is a flow, and a sprint task is one part of that flow.
The craft underneath
What a developer opens first
Handover was three things, not a folder of screens: the page anatomy, the flows behind it, and the components that were new.
The whole page on one frame — every component it uses and every state it can be in, assembled from the AEC design system the developers already worked in.
Then the notation. Every field, state and rule written on the artefact, so a developer does not have to ask.
Behind each anatomy, the flow — full screens, start to finish, with the interaction states in the order they happen.
And the states are only drawn for components that were new. Where the AEC design system had no pattern, I authored it and specified it here.
Page anatomy
What to build
One frame per page. Every state, every rule, written on it.
User flows
Why, and in what order
Full screens, start to finish. One flow per user story.
UI assets
What’s new to build with
Only what sat outside the AEC design system.
Process record
1Page alerts — all states
2Record details
3Search results
4- 1Role visibility. Which of the two interfaces this page appears in, and why.
- 2Page alerts. Every state the page can be in. The copy comes from the user story, not from me.
- 3Field state. Validation fires on blur, not on keystroke.
- 4Empty behaviour. What shows when there is nothing to show, and what the officer does next.
- 5Primary action. When it enables, and what happens to unsaved work if they leave.
User flows — one per user story
Full screens, not fragments — so the developer can see the order, and what the officer sees when it goes wrong.
UI assets — the ones that were new
Outside the AEC design system — authored and specified here.
And each one, in every state
Rest
Hover
Selected
Invalid
Disabled
The outcome
What was still there after I left
Every screen was assembled from components, and where the AEC design system had no pattern I authored it — a reviewed subset went into the core library for other teams.
Two of three built
Fully built at handover.
The core library
A reviewed subset, for other teams to reuse.
Notated specs
The wireframe was the developer contract.
Version-tracked
Component sets re-released, so teams did not drift.
What you have just seen
The improvement was in the process
Happy to go deeper on any part of it.
Declaration Envelope Management · Australian Electoral Commission · Indigo Program 2025–26
-
01
The problem
The same details typed in three times. The judgement itself was the fast part.
-
02
The decision
Remove the duplicate handling rather than optimise it — and two jobs, two interfaces.
-
03
The handover
Notated wireframes as the specification — every field, state and rule on the artefact.
A reminder. All of it rebuilt in my own design system with dummy data, and the process diagrams drawn to explain the change — not lifted from the engagement.