Stack
Technologies I work with
Eighteen technologies, each with where it runs. Every one is in a system I have built, not on a wish list.
Cloud & infrastructure
- AzureThe whole estate: virtual machines, Container Apps, VNet-private Postgres, Key Vault and managed identity, all declared as code.
- TerraformProvisions the group estate from code, so every resource has a definition in a repo and a review behind it.
- BicepThe Job Adding System's own Azure resources, deployed from the same repository as the code they run.
- CloudflareWorkers and Access: the staff console's sign-in, and this site.
- DockerThe hardened, pinned image the Job Adding System is moving into. The rules I build images by are on the blog.
Delivery & operations
- GitHub ActionsLint, type and audit gates on every repo, then pull-based deploys: the server fetches what passed, nothing is pushed to it.
- systemdTimers run the scheduled jobs and automations that carry a job from signed proposal to close-out.
- PlaywrightBrowser automation for screenshots and checks: app screens at phone and tablet size, and this site's own test suites.
Identity & security
Languages & frameworks
- Python250k lines of Python, guarded by 11,700+ automated tests across my systems.
- FastAPIThe staff console, the site inspection form, the energy engine and the accounts service.
- RustThe battery-schedule optimiser: under a millisecond per schedule.
- TypeScriptThe RenewCompare app and its web front end.
- React NativeRenewCompare's phone app, built with Expo to product standard and kept release-ready; the company runs RenewCompare as an internal tool instead.
- SalesforceFlows, Apex and Lightning components for the sales and customer-experience teams. DEX-450 trained.
Data
- PostgreSQLThe energy engine and the accounts service today; the Job Adding System next, by the plan on the blog.
- SQLiteThe Job Adding System's databases today: fast and simple, and being migrated with a shadow write and a nightly compare.