Distributed platform operations
A five-node Linux server estate running more than twenty production web applications. Relay-based remote execution independent of inbound SSH, content-addressed resumable multi-gigabyte transfers with full SHA-256 verification, immutable releases and recorded rollback state for every deployment.
LinuxnginxsystemdPythonRelease engineeringBlue-green HA
Multi-tenant business suite
ERP with double-entry general ledger, CRM with workflow automation, file storage on S3-compatible object storage, real-time chat, video meetings over an SFU, webmail, time and attendance, and a shared identity service — one estate, many tenants.
FastAPIPostgreSQL 16WebSocketsMinIO / S3LiveKitDocker
Identity & access engineering
A full identity provider: OIDC/OAuth2 authorization server with PKCE and RS256, a SAML 2.0 service provider hardened against XSW, XXE and replay, SCIM 2.0 auto-provisioning, and passwordless FIDO2/WebAuthn passkeys — built on the standard library rather than a vendor SDK.
OIDC / OAuth2SAML 2.0SCIM 2.0WebAuthn / FIDO2SSO
Tenant data isolation
Schema-per-tenant separation for the business applications and PostgreSQL row-level security for the shared ones, with the tenant GUC set at a single authentication chokepoint and FORCE row security so even the table owner cannot read across tenants.
PostgreSQL RLSSchema-per-tenantMigrationsRollback drills
Self-hosted AI, no data egress
Local LLM inference with per-organisation retrieval-augmented generation over pgvector embeddings, so tenant content is never sent to a third-party model API. Plus a cross-application copilot and rule-based assistants where a model is not warranted.
Local LLMRAGpgvectorEmbeddingsPrompt design
Real-time 3D on the web
A browser-based 3D world with vehicle dynamics, physics, day/night simulation and multi-user presence — including draw-call reduction work, GLB asset pipelines, collision and surface-continuity audits, and GPU shader program validation against a hard frame-time budget.
WebGLThree.jsPhysicsGLB pipelineFrame budgeting
Real-time collaboration & document engine
CRDT co-editing over a WebSocket relay with scoped HMAC tokens, behind a suite of document, spreadsheet, presentation, PDF, forms, whiteboard and diagram editors sharing one portable engine core.
Yjs / CRDTWebSocketsTypeScriptES modulesOffline PWA
Native clients from one specification
The same product surfaced as native applications across platforms — Kotlin and Jetpack Compose on Android, .NET 8 WPF and Qt 6 C++ on Windows, plus packaged desktop builds — with signed releases, in-app updates and CDN distribution.
Kotlin / Compose.NET 8 WPFQt 6ElectronCI & releases
Reliability, backup & recovery
Point-in-time recovery with WAL archiving and mutual TLS streaming standbys between hosts, encrypted off-host backups with validated catalogs, health probes, and documented failover procedure — designed so recovery is rehearsed, not improvised.
pgBackRestPITRStreaming replicationOffsite backupDR runbooks
CNC & motion control
A cloud service that validates, stores and dispatches G-code to networked machines, and a six-axis motion controller on STM32H743 with grblHAL, a Wi-Fi co-processor link and Modbus spindle control — cloud and firmware on the same project.
STM32H743grblHALModbusG-codeESP32
Geospatial & remote sensing
Digital elevation models from LiDAR point clouds and from synthetic-aperture radar, GPU hillshade and colour-relief rendering for interactive terrain, custom QGIS tooling, a Windows port of a Linux GIS stack, and GPU-backed Kubernetes for the processing workloads.
QGISLiDARSAROpenGLKubernetes
Security engineering & response
Per-application credential isolation in systemd units, a WireGuard VPN for administrative access, automated TLS issuance and renewal across dozens of hostnames, least-privilege service users, and hands-on incident response including a live web-shell compromise.
WireGuardTLS automationHardeningIncident responseAuditing
Sandboxed code execution & language runtimes
Services that compile and run untrusted code submissions under isolation, across several languages, with per-run resource limits — plus a small compiler toolchain of my own. Running arbitrary code someone else wrote is a containment problem before it is a language problem.
SandboxingMulti-language runtimesCompilersResource limitsLinux isolation
Computer-vision remote proctoring
Session-integrity monitoring for remote assessment: camera and behaviour signals scored continuously to flag anomalies rather than accuse. The same detection and tracking discipline as the industrial inspection work, applied where a false positive costs someone their result.
OpenCVDetection & trackingSession integrityPython
Self-hosted speech recognition
Automatic speech recognition running on my own hardware, so audio is transcribed without leaving the estate — the server-side counterpart to the on-device voice-to-text work in the vehicle cabin.
ASRWhisper-class modelsGPU inferenceSelf-hosted
Workflow automation engine
A durable job and workflow engine with a separate worker pool: long-running tasks survive a restart, retry on their own terms, and report progress rather than disappearing. The unglamorous layer everything else depends on.
Job queuesDurable workersRetriessystemdPostgreSQL
Autonomous QA agents
Verification agents running on every host in the estate: visual regression polling, release qualification and health verification, so a release is gated on measured evidence rather than on someone remembering to check.
Visual regressionRelease gatesAutomated QAHeadless browsers
Backend-as-a-service platform
A data and API layer with its own admin console — schema, auth, storage and generated endpoints — so a new application starts from a working backend instead of rebuilding the same foundations again.
API generationAuthObject storagePostgreSQLAdmin console