I design the application infrastructure for the projects I develop and support putting them into production. On request, I work alongside companies that want to make their release processes reproducible or bring in-house services they currently buy as subscriptions. I design every infrastructure so that the company's technical staff or its vendor can manage it independently. At the end of the engagement I take care of the handover and the related documentation.
Areas of work
- Reproducible deployments: design of containerized environments with Docker and Docker Compose, aligned between development and production, and of Ansible playbooks for installing and updating applications across multiple servers.
- CI/CD: configuration of build, test, and release pipelines, including on self-hosted Gitea with Gitea Actions and a private registry.
- Single-binary distribution: statically compiled Rust applications with the web interface built into the executable, which install in production with no external dependencies.
- Self-hosting: installation of internal services such as Git repositories, document management, and password management on company servers, with defined procedures for encrypted backups.
Personal infrastructure
I apply the same criteria as in my projects (versioned configuration and verified backups) to my own infrastructure as well: a homelab of a few servers running services I consider mission critical. On the same infrastructure I collect the telemetry from my development sessions with AI agents, as described on the page on AI-assisted development.