Senior Python + Go / Solution Architect
Tech Stack / Keywords
Firma i stanowisko
Poszukujemy doświadczonego Senior Python + Go Developera / Solution Architecta do projektu wymagającego bardzo mocnego doświadczenia w programowaniu systemowym, networkingu, przetwarzaniu dużych wolumenów danych oraz optymalizacji wydajności. Rola obejmuje zarówno hands-on development, jak i – na poziomie Solution Architecta – projektowanie architektury, podejmowanie decyzji technicznych oraz definiowanie rozwiązań dla systemów o wysokiej przepustowości.
Wymagania
- Bardzo dobra znajomość Go, w tym concurrent services, serwery UDP/TCP, high-throughput decode loops, profilowanie za pomocą pprof
- Bardzo dobra znajomość asynchronicznego Python: asyncio, event loop, zadania, anulowanie, backpressure, asynchroniczne HTTP clients i serwery, wieloprocesowe pule
- Znajomość narzędzi do statycznego typowania i lintowania: mypy, golangci-lint
- Znajomość zagadnień sieciowych na poziomie L2/L3/L4, VLAN, MAC/IP, flagi TCP, MTU, IPv4, IPv6, protokoły jak IPFIX, NetFlow, sFlow
- Doświadczenie z debugowaniem i automatyzacją urządzeń sieciowych (Cisco, Arista, Juniper, Palo Alto)
- Doświadczenie w projektowaniu i generowaniu schematów dla Protocol Buffers
- Doświadczenie z systemami kolejkowymi: Kafka, mile widziane NSQ i NATS
- Doświadczenie z bazami kolumnowymi i time-series np. ClickHouse
- Umiejętności w zakresie profilowania i analizie wydajności, w tym allocation, GC pressure, lock contention, zero-copy paths oraz dobór struktur danych
- Bardzo dobra znajomość Linux systemów: sockets, epoll, sysctl tuning, cgroups, resource limits
- Mile widziane doświadczenie z eBPF, Kubernetes, ZeroMQ
- Mile widziana znajomość środowisk chmurowych AWS lub Azure oraz Windows/Active Directory i pokrewnych technologii (WinRM, SMB, Kerberos)
Obowiązki
Go & Python:
- Praca z równoczesnymi usługami (concurrent services) w Go
- Obsługa serwerów UDP/TCP w Go
- Profilowanie aplikacji przy pomocy pprof
- Programowanie asynchroniczne w Python, w tym asyncio, event loop, zarządzanie zadaniami, anulowaniem i backpressure
- Tworzenie asynchronicznych klientów i serwerów HTTP w Python
- Zarządzanie pulami procesów wielowątkowych
Quality & Engineering:
- Stosowanie statycznego typowania (mypy, golangci-lint)
- Korzystanie z formatowania, linterów i pre-commit gates
- Tworzenie asynchronicznych testów jednostkowych i testów snapshot
- Testowanie obciążeniowe w CI
- Zarządzanie zależnościami oraz higieną luk bezpieczeństwa (CVE)
- Budowanie odtwarzalnych, przypiętych do wersji buildów
Networking:
- Znajomość zagadnień na poziomie L2/L3/L4, w tym VLAN, MAC/IP, flagi TCP, MTU i fragmentacja
- Obsługa protokołów IPv4 i IPv6
- Praca z protokołami i narzędziami jak IPFIX (RFC 7011), NetFlow v5/v9, sFlow v5
- Analiza pakietów pcap
- Automatyzacja sprzętu sieciowego przez SSH/CLI i API dostawców (np. Cisco, Arista, Juniper, Palo Alto)
- Idempotentne wdrożenia konfiguracji i wykrywanie dryftu
Data movement:
- Projektowanie schematów i kod generowany dla Protocol Buffers
- Praca z szybkim kodowaniem JSON/binary
- Obsługa Kafka (producent/klient, partycjonowanie, kolejkowanie, kompresja)
- Doświadczenie z SASL/Kerberos
- Diagnozowanie opóźnień konsumenta
- Mile widziane: NSQ, NATS
- Praca z bazami kolumnowymi i bazami szeregów czasowych, np. ClickHouse
Performance Engineering:
- Profilowanie jako standardowa praktyka
- Analiza alokacji pamięci i presji GC
- Walka z zawłaszczaniem blokad
- Stosowanie zero-copy paths
- Dobór struktur danych, np. LPM / Patricia tries do wyszukiwania subnetów, LRU cache, szybkie haszowanie
- Wyjaśnianie kompromisów technicznych
- Generowanie obciążenia i testy długoterminowe
Systems & Delivery:
- Bardzo dobra znajomość Linux, w tym sockets, epoll, sysctl tunning, cgroups, limity zasobów
- Mile widziane eBPF
- Konteneryzacja i platforma Kubernetes
- Budowa wieloetapowych buildów
- Wysyłanie samodzielnych binariów do infrastruktury klienta
- Budowanie statycznych/frozens buildów
- Pakowanie w deb/rpm
- Strategie aktualizacji i cofania
- IPC patterns, np. ZeroMQ
Distributed State:
- Projektowanie synchronizacji stanu i cache
- Utrzymywanie konsystencji eventualnej
- Reconnect i resync po długotrwałych rozłączeniach
- Idempotentne powtarzanie operacji
Identity & Cloud:
- Doświadczenie z Windows/Active Directory
- Znajomość WinRM, SMB, Kerberos
- Doświadczenie z SDK AWS lub Azure
- Praca z assetami i logami wykorzystując API chmurowe
Kogo szukamy?
- Doświadczenie w Python i Go, szczególnie w systemach o wysokich wymaganiach wydajnościowych
- Praktyczna znajomość systemów sieciowych i protokołów
- Umiejętność analizy problemów wydajnościowych i projektowania rozwiązań pod kątem wysokiego throughputu
- Świadomość konsekwencji architektonicznych decyzji
- Wykonywanie pracy zarówno hands-on, jak i na poziomie architektonicznym
- Dbałość o jakość, testowalność i bezpieczeństwo
- Samodzielna analiza problemów i dobór rozwiązań technicznych
Inne informacje
Informujemy, że administratorem danych jest co.brick Sp. z o.o. z siedzibą w Gliwicach, ul. Kaczyniec 9 (dalej jako "administrator"). Masz prawo do żądania dostępu do swoich danych osobowych, ich sprostowania, usunięcia lub ograniczenia przetwarzania, prawo do wniesienia sprzeciwu wobec przetwarzania, a także prawo do przenoszenia danych oraz wniesienia skargi do organu nadzorczego. Dane osobowe przetwarzane będą w celu realizacji procesu rekrutacji. Podanie danych w zakresie wynikającym z ustawy z dnia 26 czerwca 1974 r. Kodeks pracy jest obowiązkowe. W pozostałym zakresie podanie danych jest dobrowolne. Odmowa podania danych obowiązkowych może skutkować brakiem możliwości przeprowadzenia procesu rekrutacji. Administrator przetwarza dane obowiązkowe na podstawie ciążącego na nim obowiązku prawnego, zaś w zakresie danych dodatkowych podstawą przetwarzania jest zgoda. Dane osobowe będą przetwarzane do czasu zakończenia postępowania rekrutacyjnego i przez okres możliwości dochodzenia ewentualnych roszczeń, a w przypadku wyrażenia zgody na udział w przyszłych postępowaniach rekrutacyjnych - do czasu wycofania tej zgody. Zgoda na przetwarzanie danych osobowych może zostać wycofana w dowolnym momencie. Odbiorcą danych jest serwis Just Join IT oraz inne podmioty, którym powierzyliśmy przetwarzanie danych w związku z rekrutacją.
co.brick Talents
26 aktywnych ofert