Celem projektu jest zaprojektowanie, implementacja oraz wdrożenie dedykowanego Terraform Providera dla dedykowanego REST API, który umożliwi automatyczne, deklaratywne i w pełni audytowalne zarządzanie środowiskami infrastrukturalnymi w modelu Infrastructure as Code (IaC).
Rozwiązanie będzie zintegrowane z istniejącym ekosystemem organizacyjnym (GitLab + Nexus), zapewniając pełną kontrolę wersji kodu i stanu, kontrolowaną dystrybucję artefaktów, zgodność z polityką bezpieczeństwa oraz skalowalność pod dalszą rozbudowę API.
Golang Developer
Twój zakres obowiązków
- Projektowanie i rozwój dedykowanego providera Terraform w języku Go, umożliwiającego deklaratywne zarządzanie zasobami poprzez REST API.
- Implementacja klienta HTTP w Go zgodnego ze specyfikacją Swagger/OpenAPI 2.0, w tym obsługa mechanizmów autoryzacji (JWT + refresh token), retry/backoff, timeoutów oraz obsługa statusów błędów 4xx/5xx.
- Projektowanie i implementacja asynchronicznych workflowów (polling, exponential backoff, obsługa stanów terminalnych, zarządzanie timeoutami).
- Tworzenie czytelnego, idiomatycznego i testowalnego kodu w Go z wykorzystaniem modułów, interfejsów, kontekstu oraz właściwego zarządzania błędami.
- Przygotowanie i utrzymanie testów jednostkowych oraz testów kontraktowych (m.in. z wykorzystaniem stubów API generowanych na podstawie specyfikacji Swagger/OpenAPI).
- Budowa stubów API umożliwiających rozwój i testowanie rozwiązania bez konieczności dostępu do docelowego środowiska.
- Integracja rozwiązania z pipeline’ami CI/CD w GitLab, w tym budowanie, wersjonowanie oraz publikacja binariów.
- Zarządzanie stanem infrastruktury z wykorzystaniem GitLab Managed Terraform State.
- Współpraca przy procesie publikacji artefaktów w repozytorium Nexus oraz wsparcie praktyk release engineering (wersjonowanie, checksums, SBOM).
- Współpraca z zespołem technicznym oraz klientem w zakresie projektowania architektury rozwiązania, analizy API i implementacji nowych funkcjonalności.
- Zapewnienie odpowiedniego poziomu obserwowalności rozwiązania (logowanie, diagnostyka błędów, metryki).
- Udział w przeglądach kodu oraz dbanie o wysoką jakość, bezpieczeństwo i zgodność rozwiązania z wymaganiami organizacji.
Nasze wymagania
- Software engineer - min. 5 lat doświadczenia.
- Go (Golang) – min. 2 lata w produkcyjnych projektach; pisanie czytelnego, testowalnego kodu (idiomatyczne Go, moduły, interfejsy, context, błędy).
- HTTP/REST w Go – tworzenie klientów do API zgodnie ze specyfikacją (Swagger/OpenAPI 2.0), obsługa: auth JWT + refresh, retry/backoff, timeouts, statusów 4xx/5xx.
- Asynchroniczne workflowy – projekt i implementacja pollingu (exponential backoff, timeouts, stany terminalne), odporna obsługa błędów i edge-case’ów.
- Testy – unit (Go test), testy kontraktowe/mocking stubów na podstawie Swaggera; umiejętność budowy stub API do pracy „bez środowiska”.
- CI/CD (GitLab) – budowanie, wersjonowanie i publikacja binariów; praca ze state GitLab Managed Terraform State; podstawy SBOM/checksums.
- English Level: B1+.
- Terraform/OpenTofu ecosystem – rozumienie modelu providera (provider config, resources, data sources, schema, diagnostics), lifecycle plan/apply/destroy.
- OpenAPI tooling (np. oapi-codegen, kin-openapi, go-swagger) i generowanie modeli/klientów.
- Observability: wzorce logowania, metryki, diagnostyka błędów.
- Znajomość Nexus (artefakty, release) oraz praktyk release engineering.
- Praktyka w projektach bankowych/regulowanych (compliance, audytowalność).
- Umiejętność pracy z AI-assisted coding jako wsparciem, bez rezygnacji z review i testów.