SOFTWARE ENGINEER · TECHNICAL DELIVERY, ENTERPRISE INTEGRATIONS & APPLIED AI · SYDNEY
I turn complicated production problems into systems that work.
I've spent five years at Suncorp working across product, design, security, platform and vendor teams. I trace failures across system boundaries, turn unclear requirements into delivery plans and stay involved through production. I also build full-stack products and practical AI systems independently.
Pub Thursdays
● LIVE ON THE APP STORE · APR 2026Pub Thursdays started because my friends and I needed a better way to run our weekly pub night. I built the app we wanted, then took ownership of everything behind it: the SwiftUI client, Supabase backend, venue data, reminders and a pipeline that checks 500+ Sydney venue websites for current deals. Anything uncertain comes to me for review before it goes live.
- 1227
- APPROVED DEALS
- 277
- PUBS WITH LIVE DEALS
- 738
- PIPELINE RUNS · 37 FAILURES
- 1.00
- AVERAGE EXTRACTION CONFIDENCE · 0–1
● PRODUCTION DATA · UPDATED 16 SEPT 2026
DEMO
A quick look at how it works.
I walk through the app, then show the pipeline that finds, checks and publishes pub deals.
HOW DEALS GET INTO THE APP
The pipeline does the repetitive work. I keep the final say.
01 · FIND
Start with the pub
The pipeline checks each pub's own website and menu PDFs for likely deals.
02 · STRUCTURE
Use AI where it helps
Rules narrow the page down, then Gemini turns the useful bits into structured deal data.
03 · REVIEW
Only publish what holds up
Anything below 85% confidence comes to me. Only approved deals go live, with the source attached.
Behind that, results are cached for 30 days, every published deal keeps its source and every pipeline run is logged.
SwiftUI · Supabase · Deno/TS · Gemini API
OPEN IN THE APP STORE →Bookkeeper
● WEB APP · IN DEVELOPMENTBookkeeper is a work in progress for solo operators who want to know what needs attention without learning a full accounting suite. The product stays simple. The work behind it does not: Xero sync, customer-data isolation, coordinated token refresh and background jobs that can recover when an integration fails.
CUSTOMER PROBLEM
Show what needs attention
Connect the business, surface what matters and make the next action clear. That's the first problem I'm solving.
XERO INTEGRATION
A proper Xero connection
The Xero integration uses OAuth 2.0 with PKCE, encrypted tokens and coordinated refreshes. I've tested the full flow against Xero's API.
RELIABILITY
Failures should be recoverable
Row-level security separates customer data. Locks prevent token-refresh races, while background jobs keep slow or unreliable integration work out of the request path.
Next.js · TypeScript · Supabase/Postgres · Xero OAuth 2.0 · Inngest · Vercel
Suncorp
SOFTWARE ENGINEER · 5 YEARS- TRIAGE
I own release defect triage for Suncorp's mobile app, tracing failures across mobile, web and downstream services. I built an AI-assisted log-analysis agent that turns application logs into a clear diagnosis and helps the right team know where to investigate next.
- −25%
I helped rebuild Suncorp's iOS login during the ForgeRock migration. Login-related calls to the contact centre fell 25% after release.
- DELIVERY
I led the mobile frontend for the Duck Creek insurance migration, setting the iOS approach and aligning shared patterns with Android.
- −50%
I shipped self-service features that helped cut contact-centre call rates by more than 50% over five years.
Understand the problem, then stay until it works.
I like working close to the problem and the people affected by it. I ask questions early, make the trade-offs clear and stay involved through the build, release and whatever turns up in production.
- 01 / ASK
Ask before I build
I start with what someone is actually trying to achieve, what's getting in the way and what a good result looks like.
- 02 / PLAN
Make the trade-offs clear
I turn unclear requirements into a scoped plan, explain the choices plainly and keep the work moving against the timeline.
- 03 / SHIP
Stay through release
I stay involved through integrations, edge cases, rollout and production support. When something breaks across system boundaries, I trace the evidence and bring the right teams together.
The tools I use to ship.
Swift and iOS are where I have the deepest production experience. I also build with TypeScript, Next.js, Postgres and Python, and use AI tools daily when they help me move faster. The useful part is knowing what to delegate, what to verify and what still needs a human decision.
- PRODUCT ENGINEERING
- Swift 6 · SwiftUI · UIKit · TypeScript · Next.js · React · Python · SQL · Tailwind
- BACKEND & ASYNC WORK
- Supabase/Postgres · Auth · RLS · Realtime · Storage · Edge Functions · Deno · Inngest · REST APIs · OAuth 2.0 / PKCE · Vercel
- AI-ASSISTED SYSTEMS
- LLM pipelines · AI-assisted log analysis · structured extraction · deterministic pre-filtering · confidence gating · provenance · human review · production safeguards
- DELIVERY & TOOLS
- Technical discovery · solution scoping · production triage · API contract review · stakeholder communication · controlled rollout · Claude Code · OpenAI Codex · Git · LaunchDarkly · Jenkins · Firebase · Figma · App Store Connect
My defaults: understand the workflow, keep secrets server-side, make failures visible, put limits around cost and keep a human decision where confidence is low.