Services
Hands-on technical work, usually small enough that one person can hold the whole picture. No layers of project management between the problem and the fix.
Websites and web applications
Static-first sites and small applications built to last. Content lives in plain files, the output is HTML, CSS and images, and the server has very little to attack.
- Static sites and content-driven pages
- Small PHP or Node.js backends when a form or database is genuinely needed
- Accessibility, performance, and semantic HTML
- Migrations from WordPress or older CMS installations
- Code review and technical advice
Linux and servers
Debian and Ubuntu systems set up to be understood later, not just to boot once. Configuration lives in files, changes are documented, and failures are loud.
- Server setup and hardening
- Caddy, Nginx, and Apache with automatic TLS
- Firewall rules, fail2ban, and key-based SSH
- ZFS and encrypted storage
- systemd services with correct ordering and dependencies
- Backups with tested restores
- Network configuration and troubleshooting
Automation and deployment
The boring work, made repeatable. Scripts and timers that do one thing predictably and log what happened.
- Bash scripting and systemd timers
- Docker and Docker Compose
- CI/CD with GitHub Actions
- Deployment scripts and rollback
- FFmpeg batch processing
- Log collection and alerting
Media and documentation
Video encoding pipelines and photography for technical documentation — useful when a project has to show what it does, not only describe it.
- FFmpeg pipeline design
- Batch transcoding and format conversion
- Metadata preservation
- Documentation photography
How it works
- 01 Scope A conversation or an email exchange about what exists, what should change, and what done looks like. A short written scope before any work starts.
- 02 Build Work in small steps with access to what is being built. Priorities can change while there is still time to act on them.
- 03 Hand over Tested work, a short walkthrough, and documentation for the parts that are not obvious. Ongoing support if you want it.
Start a project
Describe what you need, what already exists, and roughly when it has to be ready. I will reply with questions, a realistic estimate, and availability.