Built end-to-end by a hands-on CTO.
I'm Peter Dimakidis — most people call me Dimo. I'm Group CTO at Alley Group — three businesses across Sydney, Melbourne and the US, covering AI strategy, engineering, data & analytics, security and compliance. ABS AI is the proof-of-life I run in parallel with the day job — real production stack, real billing, real users. The strategy work I do at Alley sharpens when I keep shipping; this is where I keep shipping.
- Role
- Group CTO, Alley Group
- Based
- Sydney, Australia
- Focus
- AI strategy · data & analytics · agency engineering
- Public
- dimo.com.au · alleygroup.com.au

A working AI agent over public data — built, not just talked about.
Most of my day job is strategy: what AI to adopt, where it pays off, how to roll it out across a multi-business group. That work sharpens when I keep shipping production code alongside it.
ABS AI is the current vehicle. A fully-working AI data agent over the entire 2021 Australian Census of Population and Housing — all five ABS profiles, in production, talking to itself over real network hops, billed in real dollars every month.
The community-driven Answers library exists because I would rather the learning produce something useful for other Australians than sit in a private repo.
Deterministic orchestration over a small set of well-scoped LLM tools.
Most production-agent failures I see in the wild come from non-deterministic glue. ABS AI is built around the opposite bet — Python owns the control flow; the model only does what models are good at: parsing language, naming columns, composing prose. Each rewrite removed an LLM paraphrase layer. This is the version that holds.
What's shipped, in flight, and lined up next.
ABS AI is an active project, not a finished demo. Below is the current state across four lanes — items move left as they ship. Full project plan + decision log lives in the repo's docs/08-roadmap.md.
All 5 ABS profiles
GCP · PEP · TSP · ATSI · WPP, ~10M rows, 17k columns. Cross-dataset, cross-year, place-of-work queries all work.
pgvector column retrieval
Semantic search across the metadata catalogue. Two-stage table picker → column resolver. 20/26 on the canonical benchmark.
Production deploy
Next.js on Vercel · ADK agent on Vertex AI Agent Engine in Melbourne · Postgres + pgvector on Supabase in Sydney.
Public answers library
Users can flag any answer for the community library; AI publishability scoring + admin review before it goes live.
Cloud agent latency
Pre-warm Gemini client on boot, min_replicas=1, prune best-effort LLM upgrades — taking the canonical population query from 20s → ~12s.
TSP cross-year disambiguation
Improving embedding text for the _C11/_C16/_C21 column family so 2011-vs-2021 questions reliably surface the right column.
MCP Toolbox path
Wire the Postgres tool layer through the official Model Context Protocol Toolbox as an alternative to direct psycopg — opens the agent up to non-ADK consumers.
Response caching
Cache common questions → answers (Memorystore or BigQuery materialised view). Big cost saver; Census data is static for the 5-year cycle.
Observability dashboards
Looker Studio over the evaluations + messages tables: top questions, fail rate, latency p95, daily spend.
AlloyDB / BigQuery swap
Same psycopg code works against AlloyDB; the upstream sample has a BigQuery sub-agent ready to bolt on for multi-DB orchestration.
2026 Census ingest
When the 2026 DataPacks land (~2027), versioned schemas (census_2021.* / census_2026.*) and a metadata-level "as of which Census?" affordance.
Hallucination guardrails
Confidence indicators on low-recall queries; always-visible source-table citation; tighter off-topic decline.
Like the work? Buy me a coffee.
ABS AI is free. Hosting (Supabase, Google Cloud, Vercel) runs roughly AU$50–150 / month depending on traffic. A one-off coffee covers a non-trivial chunk of that — and tells me people care enough about the project for me to keep iterating on it.
Public data should be easy to explore.
The 2021 Census is one of the most valuable public datasets in Australia — who lives where, what languages they speak at home, how they commute, what they earn, what housing they live in. The ABS publishes it as DataPacks (CSV) and via TableBuilder. Both are great for analysts. Neither is great for someone who just wants to ask “how multicultural is my suburb?” in plain English.
That's the gap ABS AI fills, and why the public Answers library exists. When a user finds an answer worth sharing, they flag it; after light admin review it lands at absai.com.au/answers — indexable by search engines and by other AI models, so the next person asking that question has a head start.
LinkedIn is the fastest channel. Send a connection request + a message. I read all of them.
Coming together at dimo.com.au — longer-form perspective on AI orchestration, harness engineering, and the work-in-progress of agency-side AI strategy. The site itself is in build; for now most thinking lands on LinkedIn first.