Signal House
WorkServicesProcessProfileBlog
Get in touch

Blog

How I build and run production software.

Technical routes, tradeoffs and the mistakes, written from real projects.

29 September 2026

NearBuild: turning one council PDF into a searchable map

Auckland Council only publishes resource consent applications as a 300-page PDF. This is how I parse it every hour, keep the data honest, and put it on a map by address.

28 September 2026

Moving our static sites to CloudFront and private S3, then fixing a $39-a-day request bill

One CloudFormation stack per site, byte-level verification, a DNS cutover you can roll back, and the caching mistake behind 94% of our CloudFront requests.

20 September 2026

Kivoza: small file tools that say where your file goes

Seven small sites from one repo: image, OCR and PDF tools that run fully in the browser, and a Markdown converter that uploads only four formats, with consent, to a locked-down container.

7 September 2026

Rebuilding a tax app: golden assertions first, then 1,070 numbers against the old system

How I rebuilt PayTaxNZ from Laravel to a TypeScript monorepo without trusting myself: a pure tax engine, 186 assertions written before code, and a field-by-field reconciliation with zero unexplained differences.

30 August 2026

Money code in a church app: integer cents, advisory locks and idempotency keys

Giving, refunds, recurring plans and venue deposits look like simple forms. Under them are five rules that stop double charges, lost refunds and leaked data.

Have something to build?

I take on product builds, cloud work and automation projects. LinkedIn is the quickest way to reach me.

Get in touch

© 2026 Signal House. A personal studio by Damon Zhang.

ProfileBlogLinkedIn