W skrócie
- Zadania: Optymalizuj wydajność oprogramowania i współpracuj nad innowacyjnymi projektami.
- Firma: Innowacyjna firma technologiczna z kulturą współpracy.
- Benefity: Konkurencyjne wynagrodzenie, elastyczny czas pracy i możliwości rozwoju zawodowego.
- Pozostałe informacje: Dynamiczne środowisko z doskonałymi możliwościami rozwoju kariery.
- Dlaczego ta praca: Pracuj z najnowszymi technologiami i wpływaj na doświadczenia klientów.
- Kwalifikacje: Doświadczenie w programowaniu w C++ i umiejętności współpracy w zespole.
Przewidywane wynagrodzenie mieści się w przedziale 123750 - 151250 zł za rok.
Meet The Team
Zespół Performance Optimization and Innovation (PerfOpt) poprawia doświadczenia klientów Splunk poprzez głęboką pracę nad wydajnością oraz ustala długoterminowe standardy wydajności Splunk poprzez wytyczne i projektowanie. Pracujemy tam, gdzie wydajność jest wygrywana lub przegrywana: ścieżki gorące wyszukiwania i indeksowania, efektywność pamięci podręcznej i filtrów kwiatowych, przepustowość transferu S3, zarządzanie obciążeniem I/O oraz równoległość w ścieżce pobierania danych. To rdzeń C++ przesuwający dane w skali petabajtów przez dużą rozproszoną architekturę, a wyniki wpływają na to, co odczuwają klienci - opóźnienie wyszukiwania, przepustowość wprowadzania i koszty infrastruktury. Jesteśmy również centrum ciężkości wydajności organizacji: benchmarking, wzorce projektowe i standardy inżynieryjne, które przyjmują inne zespoły, pochodzą stąd.
Twój wpływ
- Starszy inżynier wydajności doradza zespołom w zakresie planu działania i architektury, rozwiązuje problemy z wydajnością klientów oraz ustala kierunek techniczny w zespołach partnerskich.
- Prowadzenie prac nad wydajnością od hipotezy przez instrumentację i projektowanie do zmierzonego wpływu na klientów, koordynując działania między zespołami w razie potrzeby.
- Projektowanie komponentów w skali petabajtów dla pamięci, współbieżności, I/O i opóźnienia ogonowego, prowadząc architekturę w kierunku skalowalności i niezawodności.
- Używamy profilowania, wykresów płomieni, analizy kontencji blokad, benchmarków i bramek regresji CI, aby identyfikować i zapobiegać problemom z wydajnością.
- Instrumentujemy produkcję telemetrią, eBPF i ciągłym profilowaniem, aby mierzyć wydajność w rzeczywistych obciążeniach roboczych.
- Porównujemy opcje wydajności, kwantyfikujemy koszty i ryzyka oraz przedstawiamy oparte na dowodach rekomendacje partnerom.
- Wielokrotne przepływy pracy AI skracają analizę wydajności z dni do godzin.
- Inżynierowie ustalają cele, weryfikują wyniki za pomocą profili i benchmarków oraz dostosowują się, gdy dowody są niewystarczające.
- Planowanie prac nad wydajnością, szacowanie wysiłku i prowadzenie postmortem w celu identyfikacji przyczyn źródłowych i zapobiegania regresjom.
- Mentorowanie rówieśników i mniej doświadczonych inżynierów w zespole.
Minimalne kwalifikacje
- Zaawansowana znajomość C++ w produkcji, w tym zarządzanie pamięcią, alokatory, semantyka przenoszenia, struktury pamięci podręcznej i kompromisy wydajnościowe.
- Głęboka inżynieria wydajności - doświadczenie produkcyjne w kilku z poniższych: profilowanie CPU/pamięci i analiza wykresów płomieni (perf, eBPF, VTune), w tym profilowanie off-CPU i ciągłe profilowanie.
- Rozwiązywanie kontencji blokad - gorące mutexy, fałszywe dzielenie, atomiki i porządek pamięci, techniki bezblokadowe i kiedy ich nie używać.
- Optymalizacja opóźnień w architekturach rozproszonych - opóźnienie ogonowe, kolejkowanie, amplifikacja fan-out, ciśnienie zwrotne, analiza krytycznej ścieżki.
- Benchmarking - mikro i obciążeniowe benchmarki, solidny projekt testów i analiza statystyczna, walidacja podsystemów detekcji regresji CI.
- Modelowanie wydajności - modele analityczne lub pojemnościowe, które pomagają przewidywać limity skalowania i walidować zmierzone wyniki.
- Architektura i projektowanie systemów - projektowanie i poprawa istniejących rozwiązań pod kątem wydajności, skalowalności i operacyjności oraz wyjaśnianie tych projektów krytycznej publiczności.
- Docker i Kubernetes - charakteryzacja wydajności w środowiskach kontenerowych.
- Silny Python do narzędzi, zestawów benchmarkowych, potoków telemetrii i analizy danych wydajnościowych.
- Wnętrza wydajności Linuxa - harmonogram, podsystem pamięci, pamięć podręczna stron, systemy plików, I/O blokowe, stos sieciowy.
- Git i CI (np. GitLab CI) do automatyzacji budowy, testów, benchmarków i wydań.
Przywództwo
- Udokumentowane podejmowanie decyzji technicznych - kwantyfikacja kompromisów, wczesne ujawnianie ryzyk.
- Destylowanie skomplikowanych problemów w porównywalne punkty danych bez utraty niuansu lub ukrywania niepewności.
- Jasna, zwięzła, wysokosygnałowa komunikacja wśród różnych odbiorców - na poziomie mechanizmu z inżynierami, na poziomie kompromisu z kierownictwem, na poziomie wpływu z klientami.
- Znajomość AI zastosowana do szybkości dostarczania - codzienne korzystanie z agentów kodujących AI w pracy produkcyjnej, budowanie agentowych przepływów pracy, które zespół przyjmuje i stosowanie wysokich standardów weryfikacji wyników AI w odniesieniu do profili, benchmarków i telemetrii.
- Mentorowanie i rozwijanie inżynierów - coaching młodszych inżynierów w kierunku odpowiedzialności oraz wpływanie na rówieśników poprzez przywództwo techniczne, a nie autorytet.
Doświadczenie
- Licencjat plus 8 lat doświadczenia w pokrewnej dziedzinie, magister plus 6 lat lub doktorat plus 3 lata.
Preferowane kwalifikacje
- Doświadczenie z silnikami wyszukiwania lub przechowywania oraz platformami danych w dużej skali.
- Wnętrza Splunk.
- Praca na poziomie sprzętu - SIMD, NUMA, zachowanie pamięci podręcznej/TLB, PGO/LTO, optymalizacja kompilatora.
- Go, Rust lub inny język systemowy obok C++.
- AWS, Azure lub GCP - charakterystyka przechowywania, sieci i wydajności instancji.
- Terraform, Puppet lub Ansible do reprodukowalnych środowisk testowych wydajności.
Co oferujemy
- Problemy z wydajnością w skali, jakiej bardzo niewiele firm ma - petabajty danych, prawdziwi klienci i wymierny wpływ z każdej milisekundy, którą usuniesz!
- Stały strumień nowych rzeczy do nauki. Zawsze rozszerzamy się na nowe obszary, wprowadzając projekty open source i oddając je, oraz eksplorując nowe technologie.
- Wyjątkowo wszechstronni i oddani koledzy, od inżynierii po zarządzanie produktem i wsparcie klienta.
- Rozwój kariery poprzez techniczne posiadanie, możliwości przywódcze i coaching.
- Stabilne środowisko pracy z wyraźnym posiadaniem i mierzalnymi celami.
- Elastyczny model pracy hybrydowej (zrównoważona praca zdalna i współpraca w biurze).
Splunk jest pracodawcą równych szans. Witamy kandydatów z różnych środowisk i zapewniamy rozsądne udogodnienia w całym procesie rekrutacyjnym. Korzyści obejmują elastyczną pracę hybrydową, możliwości rozwoju i mentorskie oraz współpracujący, wspierający zespół.
Splunk Staff Software Engineer in Kraków – pracodawca: 541 Cisco Systems Poland sp. Z o.o.
Cisco Systems Poland sp. Z o.o. to doskonały pracodawca, który oferuje dynamiczne środowisko pracy w sercu innowacji technologicznych. Pracownicy mogą liczyć na rozwój zawodowy poprzez dostęp do szkoleń oraz możliwości współpracy z ekspertami w dziedzinie komunikacji i chmury. Dodatkowo, firma promuje kulturę otwartości i współpracy, co sprawia, że każdy członek zespołu czuje się doceniony i ma realny wpływ na rozwój projektów.
Dane kontaktowe:
Zespół rekrutacyjny 541 Cisco Systems Poland sp. Z o.o.