Golang Developer
SQUARE ONE RESOURCES sp. z o.o.
⚲ Warszawa, Mokotów
Wymagania
- Go
- REST
- GitLab
- Terraform
- OpenAPI
- Nexus
Opis stanowiska
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+. Mile widziane: 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. O projekcie: 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. 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.