Golang Developer
Miejsce pracy: Warszawa
Technologie, których używamy
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.
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+.
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.
SQUARE ONE RESOURCES sp. z o.o.
At Square One Poland we link IT experts with the business. With over 25 years of experience, we specialize in recruitment processes on a global scale. Despite years of experience, we still have a startup DNA and this is our advantage. Our offices are located in London and Warsaw, however, we can reach clients from all over the world, from start-ups to big worldwide corporations.
Klikając w przycisk „Aplikuj” lub w inny sposób wysyłając zgłoszenie rekrutacyjne, zgadzasz się na przetwarzanie Twoich danych osobowych przez SQUARE ONE RESOURCES sp. z o.o. z siedzibą w: Puławska 2, 02-566 Warszawa (Pracodawca), jako administratora danych osobowych w celu przeprowadzenia rekrutacji na stanowisko wskazane w ogłoszeniu.
Twoje dane osobowe będą przetwarzane w oparciu o następujące podstawy prawne: (a) aby podjąć działania na Twoje żądanie przed zawarciem umowy (np. informacje o oczekiwanym wynagrodzeniu i dostępności do rozpoczęcia pracy); (b) w oparciu o nasz prawnie uzasadniony interes (np. imię, nazwisko, data urodzenia, dane kontaktowe, wykształcenie, kwalifikacje zawodowe, przebieg dotychczasowego zatrudnienia); c) w oparciu o Twoją zgodę, która wyrażona jest poprzez przeslanie dokumentów aplikacyjnych zawierających takie informacje jak np. wizerunek czy zainteresowania.
Podanie wszystkich danych osobowych, o których mowa powyżej jest dobrowolne, natomiast dane wymienione w lit. a) i b) są niezbędne do wzięcia udziału w rekrutacji. Niepodanie danych skutkuje brakiem możliwości rozpatrzenia kandydatury. Podanie pozostałych danych jest dobrowolne, ale może pomóc w sprawnym przeprowadzeniu procesu rekrutacji.
Masz prawo żądać dostępu do Twoich danych (w tym uzyskania ich kopii), sprostowania danych, ich usunięcia, ograniczenia przetwarzania, przeniesienia, jak również wniesienia sprzeciwu wobec ich przetwarzania. Masz także prawo wniesienia skargi do Prezesa Urzędu Ochrony Danych Osobowych.
Twoje dane osobowe mogą zostać przekazane dostawcom usługi publikacji ogłoszeń o pracę, dostawcom systemów do zarządzania rekrutacjami, dostawcom usług IT (hosting), dostawcom systemów informatycznych.
Podane przez Ciebie dane osobowe nie będą wykorzystywane w celu profilowania albo podejmowania decyzji w sposób zautomatyzowany.
Twoje dane osobowe będą przetwarzane przez okres maks. 1 roku od zakończenia publikacji ogłoszenia, chyba, że wyraziłeś odrębną zgodę na wykorzystanie Twoich danych osobowych w przyszłych rekrutacjach.
W celu realizacji praw lub w przypadku jakichkolwiek pytań związanych z przetwarzaniem Twoich danych osobowych skontaktuj się z nami pod adresem: DeliveryTeam@squareoneresources.com.