Developer platform · Internal tooling
Replacing manual DevOps requests with developer self-service
Built a Go service with a Slack UI, PostgreSQL state and the Proxmox API so developers could provision and manage game development environments themselves.
- Organization
- Jet Games FZ-LLC
- Period
- 2024–2026
Problem
Developers had to ask DevOps to provision game servers, which was done manually via Ansible. Environments were hard to track, and engineers became a bottleneck for routine development work.
Design
Implemented a REST API in Go with persistent state in PostgreSQL, integrated with the Proxmox API, and exposed it through a dynamic Slack interface with RBAC and contextual forms. A developer chose a permanent, temporary or pre-production environment, gave a GitLab branch (validated against the repository) and could request resources for pre-production workloads. Temporary environments had a one-week TTL with a warning two days before deletion. A separate form edited environment variables for special test scenarios.
Engineering decisions
Branch validation against GitLab avoids test environments for builds that do not exist; PostgreSQL is the authoritative state; RBAC scopes access; the TTL stops resources from piling up indefinitely.
Outcome
Developers create and retire test servers through a controlled workflow instead of a manual ticket queue. Environment lifecycle and ownership became explicit, and DevOps no longer handles recurring provisioning requests.
Trade-offs and limitations
The service records state; it is not a reconciliation loop over Proxmox. The number of requests it removed was not counted.
Technologies
- Go
- Slack API
- Proxmox API
- PostgreSQL
- GitLab
- RBAC
- REST API