Senior Go Developer / Tech Lead
New
L
Lumicode Sp. z o.o.Network data processing
Workplace type: remote; Locations: Warszawa, Al. Jerozolimskie, Warszawa, Country code: PLContractLead
Salary160 - 190 PLN per hour
Apply NowOpens the employer's application page
Job Details
- Languages
- En C1
- Required Skills
- DockerKafkaKubernetesGoLinux
Requirements
- Bardzo dobrze znasz Go i masz doświadczenie w tworzeniu wydajnych, współbieżnych usług, serwerów TCP/UDP i systemów przetwarzających duże wolumeny danych.
- Potrafisz profilować aplikacje z wykorzystaniem pprof.
- Znasz sieci komputerowe na poziomie L2-L4, w tym TCP/IP, VLAN, adresację IPv4/IPv6, MTU i fragmentację pakietów.
- Znasz protokoły IPFIX, NetFlow v5/v9 lub sFlow v5, w tym dekodowanie danych, obsługę szablonów, próbkowanie i wykrywanie utraty danych.
- Masz doświadczenie w analizie ruchu sieciowego i diagnozowaniu problemów z wykorzystaniem przechwyconych pakietów oraz plików pcap.
- Potrafisz optymalizować wydajność aplikacji, analizować zużycie pamięci i zasobów, identyfikować wąskie gardła oraz przeprowadzać testy obciążeniowe.
- Masz doświadczenie w projektowaniu systemów współbieżnych i rozproszonych, w tym mechanizmów synchronizacji stanu, obsługi ponownych połączeń i idempotentnego przetwarzania danych.
- Znasz Linux i zagadnienia wydajności komunikacji sieciowej, w tym gniazda, epoll i konfigurację systemu.
- Masz doświadczenie z Kafka, w szczególności z producentami i konsumentami, partycjonowaniem, batchingiem, kompresją i diagnozowaniem opóźnień.
- Znasz Protocol Buffers oraz masz praktyczną znajomość Docker i Kubernetes.
Responsibilities
- Projektuj i rozwijaj wydajne usługi backendowe w Go obsługujące duże wolumeny danych sieciowych.
- Twórz serwery TCP/UDP oraz mechanizmy dekodowania i przetwarzania danych telemetrycznych.
- Implementuj parsery protokołów IPFIX, NetFlow i sFlow, uwzględniając utratę danych, próbkowanie i zmiany szablonów.
- Projektuj przepływy danych z wykorzystaniem Kafka, formatów binarnych i rozwiązań do przechowywania danych szeregów czasowych.
- Analizuj wydajność aplikacji, profiluj kod i eliminuj wąskie gardła związane z pamięcią, GC, blokadami i przepustowością.
- Projektuj mechanizmy synchronizacji stanu, obsługi ponownych połączeń i bezpiecznego odtwarzania danych.
- Rozwijaj i utrzymuj rozwiązania działające w Linux, kontenerach i Kubernetes.
- Podejmuj decyzje techniczne dotyczące architektury, struktur danych i komunikacji między komponentami.
- Wspieraj zespół w rozwiązywaniu złożonych problemów technicznych oraz dbaj o jakość kodu, testy i standardy.
View Full Description & ApplyYou'll be redirected to the employer's site