I build the AI agents and automation that small businesses actually run.
I'm Thomas, a Sydney developer with 15+ years of shipping software. I build AI agents, workflow automation and custom web and mobile apps for small and medium businesses across Australia.
TypeScript, Go and Flutter. I work solo, which means you talk to the person who writes the code, not an account manager.
A recorded run of a support triage agent: it reads the inbox, classifies each ticket by intent and severity, routes and drafts replies, and escalates the tickets it is not confident about to a human.
$ agentiny run triage --inbox support → pulled 14 new tickets → classified by intent and severity → routed 11 to the right queue → drafted a reply for each ! held 3, confidence below threshold → escalated the held ones to a human ✓ inbox clear
- 15+years shipping software
- 1 weekto a working prototype on your own data
- 0account managers between you and the code
- 100%of the code delivered into your repository
Three kinds of work
Custom AI solutions and software, all of it code I write, test and hand over. If an off-the-shelf tool solves your problem for forty dollars a month, I'll tell you that instead.
AI agents
Agents that read, decide and act inside your systems, not chatbots that answer FAQs. Give one a job that needs judgement, such as processing documents, sorting enquiries, research or monitoring, and it works through the task and escalates whatever it isn't sure about.
- read
- decide
- act or escalate
Automation
AI automation for Australian businesses: removing the repetitive work between the tools you already use. Quotes, invoices, data entry, reporting, document extraction. These are the jobs someone on your team currently does by re-typing things from one screen into another.
- invoice in
- extract
- to your ledger
Custom software
Internal tools, web apps and mobile apps. TypeScript, React, Go and Flutter. Fixed scope, code in your repository, documented and handed over. Built to be owned, not rented back to you.
- fixed scope
- weekly demos
- your repo
Not sure which of these you need? AI consulting is the shorter engagement where we work that out first.
An agent that researches the market and acts on it
One worked example, start to finish, so you can see what “an agent” actually means in practice.
The problem
A small store running on Shopify has the same three questions every week: what should we reorder, what should we stop carrying, and what should we stock next. Only part of the answer is inside the store. The rest is outside it. What competitors have started carrying, what people have started searching for, what is about to be in season, what the weather is doing where the orders come from. Pulling all of that together by hand takes most of a day, every week, so it does not get done, and the decisions end up being made on gut feel and whatever is already in the warehouse.
What it looks at
The agent runs on a schedule and researches from four directions at once. Most of the work is research, and most of the value is in combining sources that normally live in four different browser tabs and never get compared.
The store's own numbers
Order history, catalogue and margins. Not just what sold most, but what is accelerating, what is quietly dying, and what is only selling because it is discounted.
Competitor storefronts
Scraped directly. What they have added since the last run, what they have dropped, how they are pricing against you, and how they describe the products you both carry.
Search and social signal
Google Trends for the direction of demand, plus Reddit and wherever else the conversation about these products actually happens. A shift usually shows up here weeks before it reaches your orders.
Context that moves demand
Season, upcoming events, and the weather where the orders are coming from. Obvious in hindsight, and almost never in the spreadsheet.
- store dataorders, catalogue, margins
- outside signalcompetitors, trends, season
- work out what it meansreal shift or noise
- decide what to changestock, price, copy
- act or queue ityour rules decide which
What it does with all that
It does not hand back a dashboard. It reasons across all four sources and works out which signals actually agree with each other, because a competitor adding a product, a search term climbing and a season starting mean something very different together than any one of them means alone. Then it acts on the conclusion:
- Pull products that have stopped moving, before they tie up any more capital.
- Adjust prices where a competitor has moved or demand has clearly shifted.
- Rewrite product descriptions to match what people are actually searching for.
- Generate mockups for new product ideas the research says are worth testing.
All of that can run without anyone pressing a button. How much of it actually does is your call: you set what the agent is allowed to change on its own, and what lands in a queue for you to approve first. Most people start with everything queued, then hand over the low-risk changes once they have watched it work for a few weeks.
A different model for each kind of thinking
Not every step needs the same brain, and pretending otherwise is how these things get expensive. Reading a scraped competitor page and pulling the product list out of it is a job for the cheapest, fastest model available, and it happens hundreds of times per run. Judging whether a trend is real or noise, and whether it justifies changing the catalogue, is a job for a frontier model, and it happens a handful of times. Routing each step to the model that suits it is most of what keeps an agent like this affordable to run without making it worse at the decisions that actually matter.
Why this is an agent
A report is a fixed query. You decide the questions up front and it answers the same ones every time. This isn't that. The useful next move depends entirely on what the last step turned up. If a competitor has just dropped a whole category, that is worth digging into. If a search term is climbing, the question becomes who is already serving it and how well. Neither is something you could have written into a dashboard in advance. Deciding what to look at next, and knowing when it has looked at enough, is the part that makes this an agent rather than a scheduled script.
The stack
Built, then written up
I publish how these work: the architecture, the code, and the parts that didn't work first time. You can check the reasoning yourself before you ever email me.
Support ticket triage agent
Reads the inbox, classifies each ticket by intent and severity, drafts a reply, and escalates the ones it isn't confident about.
Built in TypeScript on agentiny, my open-source agent framework, calling the Claude API. The write-up walks through the classification step, the routing rules, and the confidence threshold that decides when a human gets involved instead. The full source is on GitHub, so you can run it against your own examples before deciding whether it is worth building for your inbox.
Invoice extraction pipeline
Pulls structured fields out of invoices that all look different, and gets them into the system of record without anyone re-typing.
It uses a reactive agent pattern, so extraction, validation and categorisation trigger each other rather than being wired together by hand in orchestration code. Anything that fails validation is flagged for review instead of being written to the ledger. The same approach works for receipts, contracts and any document with predictable fields and an unpredictable layout.
The Ralph loop
What actually happens when an agent calls itself in a loop: why it works, and the point at which it stops working.
The whole technique fits in one line of bash, which is exactly why it is worth understanding properly before trusting it with anything. I ran it on real tasks and wrote up where it earns its keep, where it burns tokens producing nothing, and how to try it in about thirty minutes without putting a repository at risk. It is the clearest illustration I have of why an agent is a loop rather than a single call.
An SEO agent in TypeScript
Point it at a competitor's blog with a topic in mind and it crawls the site, scores every page for relevance with Claude, and hands back the most relevant ones ranked.
Around 140 lines of TypeScript with one dependency, calling the Claude API directly rather than hiding the work inside a no-code builder. The write-up is the whole build, including the scoring prompt and the crawl limits that keep it from wandering off across the internet. There is a mock mode that runs without an API key, so you can try the thing for nothing first.
Hi, I'm Thomas

I've been writing software professionally for more than fifteen years, and I've been based in Sydney since 2019.
I started out building Windows Phone apps and games in C# on the Microsoft stack, back when that platform still looked like it had a future. Several of them did genuinely well. That led into Unity and game development, which is where I learned that shipping is mostly the unglamorous part: performance, edge cases, and the last ten percent that takes as long as the first ninety.
From there I moved to the web, and that has been the bulk of the years since. Mostly React and TypeScript, mostly ecommerce, where a slow page or a broken checkout has an immediate and very visible price. Alongside that I built Android apps in Flutter, which is still what I reach for when something needs to run on a phone.
The turn towards AI wasn't a business decision. I got access to OpenAI's GPT while it was still in beta, before ChatGPT existed and before any of this was a category, and I could not stop thinking about what it meant for the businesses I was already building software for. That is what I do now: AI agents and workflow automation for small and medium businesses, built with the same stack and held to the same standards as everything that came before it.
I work solo, deliberately. Projects get scheduled so I never have to subcontract, which means the person you talk to on the first call is the person who writes the code, tests it, and hands it over.
I write about this work as I go, mostly things I have actually built and tested rather than news. If you want to know how I think before you hire me, it's all on the blog.
What I build with
How I work
Fixed scope
A written scope and a price before anything starts. If the work grows, we agree that separately rather than watching an hourly rate run.
Code you own
It lives in your repository, documented, with a proper handover. Nothing is a black box you can only maintain by paying me.
No retainer lock-in
Ongoing support is available if you want it. It is never a condition of getting the work built in the first place.
Direct access
You talk to the person writing the code. There is no account manager in the middle and nothing gets handed to an offshore team.
Frequently Asked Questions
Straight answers about agents, automation, and what building this actually involves.
Start a project
Tell me what you're trying to do and I'll tell you whether it's worth building. If it isn't, I'll tell you what I'd use instead. The first conversation doesn't cost anything.
Send a message
The more concrete you can be about the problem, the more useful my first reply will be.
If you'd rather not use a form
contact@thomas-wiegold.com
What happens next
- You get a reply within one business day.
- We have one conversation about what you're trying to do. Call or email, whichever you prefer.
- If it's worth building, you get a written scope and a fixed price before anything starts.