Skip to content
Aleksei Chuprakov

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