Skills
What I work with, and how it fits together: from designing the system to keeping it running on a server.
From whiteboard to a running container
Every product goes through the same loop and the same deploy framework: nothing reaches the server without passing CI, and nothing stays there without passing its health check.
- Think
- 01Design
System design, data model, user flows and roles
Figma · ER models · RBAC - 02Plan
Numbered docs, API contracts and a phase plan
Markdown docs · API contracts
- Build
- 03Develop
APIs, web panels and mobile apps on one backend
NestJS · Next.js · Flutter - 04Test
Path-filtered CI: lint, unit and e2e on real Postgres
GitHub Actions · e2e
- Ship
- 05Dockerise
Multi-stage images, one tag per commit
Docker · Buildx · GHCR - 06Deploy
Private network, SSH, migrate, Compose up
Tailscale · SSH · Compose
- Run
- 07Verify
Health checks and endpoint probes; auto-rollback on failure
healthchecks · rollback - 08Operate
Nightly backups, restore drills and runbooks
systemd timers · pg_dump
Self-hosted, end to end
My own products run on an Arch Linux server I manage myself. Two paths go through it: one for users, one for releases.
- Userbrowser / app
- CloudflareDNS · TLS
- Tunnelno open ports
- Caddyreverse proxy
- ContainersAPI · panels
- DataPostgres · Redis
- git pushmain
- ActionsCI · build
- GHCRsha-tagged images
- TailscaleSSH in
- Composebackup · migrate · up
- Verifyor roll back
What I work with
DevOps & Infrastructure
Linux servers I set up, secure and keep running — client VPSes at work and my own Arch Linux server at home.
- servers
- Linux (Ubuntu, Arch)BashSSHVPS managementsystemdProcess & performance monitoring
- containers
- DockerDocker ComposeMulti-stage buildsHealthchecks
- network
- NginxCaddyReverse proxyLoad balancingSSL/TLSDNSCloudflare TunnelTailscale
Deployment & CI/CD
Pipelines that test only what changed, build images once and deploy them with a way back if anything fails.
- pipelines
- GitHub ActionsCI/CD pipelinesGHCRAutomated build & deployProduction releases
- safety
- Automatic rollbackBackups & restore drillsRunbooksSecrets & environment setup
- ops
- Server configurationMonitoring & troubleshootingHTTP/HTTPS
Full Stack Development
One backend, many surfaces: APIs, web panels and mobile apps designed around the same data model.
- backend
- NestJSNode.jsPHPREST · JWTBullMQ
- frontend
- Next.jsReactAngularTypeScriptTailwind CSSBootstrap
- mobile
- FlutterAndroidOffline-first sync
- data
- PostgreSQLPrismaRedisSupabaseEntity modellingRole-based access
Product, Design & Tools
Where I started: shaping flows and systems before writing code, and leading the team that builds them.
- product
- System designUX strategyUser flowsPrototypingTeam leadershipERP & HRMS systems
- tools
- VS CodeFigmaPhotoshopAfter EffectsPremiere Pro