Senior Python + Go / Solution Architect

160 - 200 PLN/ godz.B2B
SeniorFull-time·B2B
#441288·Dodano 2 dni temu·1
Źródło: justjoin.it
Aplikuj teraz

Tech Stack / Keywords

PythonGolang

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

co.brick Talents

26 aktywnych ofert

Zobacz wszystkie oferty
Aplikuj teraz