AI-accelerated development
Faster delivery, conventional code, and a repository you own
AI tooling writes the well-understood parts quickly: scaffolding, plumbing, tests and migrations. Every line is then read, tested and refactored like any other code. Architecture, and anything where being wrong is expensive, stays under deliberate human control. The result is ordinary source code in a repository you own, with no vendor lock-in.
- Web applications: Vue 3, React, TypeScript on the front; Go on the back
- APIs, database schema design, and the migrations to keep them safe
- Test suites and CI pipelines that run on every push
- Docker packaging and deployment automation
Storage systems
Databases, queues, backups, and knowing what is actually on disk
Storage is where data quietly goes wrong, so it is a specialism here rather than a bullet point. That covers building storage engines, and just as often auditing what already exists: what is backed up, whether that backup has ever been restored, and what happens when the disk fills.
- Database design, schema modelling, indexing and query tuning
- Queue and priority-queue design for jobs, feeds and ordering guarantees
- Backup strategy and restore testing, because a backup nobody has restored is only a hope
- Storage engine development, including hoardDB
IT infrastructure
Mail, DNS, TLS, and the automation that keeps it working
Advice is easier to trust from someone who operates the same stack. Mail for three domains runs on a self-managed Mailcow server with Postfix, Dovecot and Rspamd; certificates renew automatically over DNS-01; SPF, DKIM and DMARC all pass.
- Mail infrastructure: SMTP submission, IMAP, spam filtering, reputation
- DNS done properly: SPF, DKIM, DMARC, MTA-STS, autodiscover/autoconfig
- TLS lifecycle: issuance, automatic renewal, and deploy hooks
- Reverse proxying, nginx, Docker networking and backup automation
Go development
Go services, APIs and command-line tools
Go is the default when a service has to stay up and start fast: small binaries, few dependencies, and concurrency that is boring rather than clever. Property Sage runs on a Go and Gin API with MariaDB, which is why it is cheap to run on a small host.
- HTTP APIs and services in Go, with graceful shutdown and timeouts
- CLI tools and small utilities distributed as static binaries
- Go alongside PostgreSQL or MariaDB, connection pooling, migrations
- Profiling, structured logging and operational visibility