W skrócie
- Zadania: Optymalizuj wydajność oprogramowania i wprowadzaj innowacje w złożonych systemach.
- Firma: Cisco - lider w innowacjach technologicznych i rozwoju AI.
- Benefity: Elastyczny model pracy, możliwości rozwoju kariery i wsparcie zespołowe.
- Pozostałe informacje: Dynamiczne środowisko z możliwościami szybkiego rozwoju kariery.
- Dlaczego ta praca: Pracuj nad realnymi problemami wydajności w skali petabajtów danych.
- Kwalifikacje: Ekspert w C++ i doświadczenie w inżynierii wydajności.
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 bloomfiltera, 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
- Pełnij rolę autorytetu w zakresie wydajności dla krytycznych problemów, planowania mapy drogowej, przeglądów architektury i rozmów z klientami.
- Ustal kierunek techniczny w różnych zespołach.
- Prowadź domenę wydajności od początku do końca - hipoteza, instrumentacja, projektowanie, mierzone zyski widoczne dla klientów w produkcji, w tym problemy międzyzespołowe, których nikt jeszcze nie zdefiniował.
- Projektuj dla skali - projektuj i przekształcaj podsystemy w rozproszonym systemie w skali petabajtów: hierarchia pamięci, współbieżność, I/O, opóźnienie ogonowe.
- Bądź odpowiedzialny za metodologię wydajności - praktyka profilowania i wykresów płomieni, analiza kontencji blokad, benchmarking, CI regresji.
- Wprowadź obserwowalność - zaprojektuj nowe źródła telemetrii i wprowadź eBPF oraz ciągłe profilowanie do użytku produkcyjnego, aby wydajność była mierzalna w terenie, a nie tylko w laboratorium.
- Umożliwiaj decyzje kierownictwa - wyjaśniaj dyrektorom i menedżerom, jakie są koszty problemu, co każdy wybór przynosi i kosztuje, ryzyko braku działania oraz rekomendację, którą popierasz.
- Dostarczaj szybko i spraw, aby wszyscy byli szybszy - pracuj agentycznie i buduj wielokrotnego użytku przepływy pracy i narzędzia AI, które skracają pętle analizy zespołu z dni do godzin.
- Nawiguj optymalizację AI: wskazuj agentów na zmiany, które wpływają na liczby, wychwytuj prace, które zawodzą pod profilem, szybko przekierowuj.
- Prowadź i mentoruj starszych i pracowników inżynieryjnych.
Minimalne kwalifikacje
- Głębokość techniczna: Ekspert w C++ w systemach produkcyjnych - zarządzanie pamięcią i alokatory, semantyka przenoszenia, struktury danych przyjazne pamięci podręcznej oraz rzeczywista znajomość modelu kosztów języka.
- 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 poza 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óźnienia w architekturach rozproszonych - opóźnienie ogonowe, kolejkowanie, amplifikacja fan-out, ciśnienie zwrotne, analiza krytycznej ścieżki.
- Benchmarking - mikro i benchmarki obciążeniowe, solidny projekt testów i analiza statystyczna, walidacja podsystemów detekcji regresji CI.
- Modelowanie wydajności - analityczne i modele pojemnościowe, które przewidują limity skalowania i walidują zmierzone wyniki.
- Projektowanie architektury i systemu - projektowanie i przekształcanie istniejących rozwiązań dla wydajności, skalowalności i operacyjności oraz obrona tych projektów przed krytyczną publicznością.
- Docker i Kubernetes - charakteryzacja wydajności w środowiskach kontenerowych.
- Silny Python do narzędzi, zestawów benchmarkowych, rurociągów telemetrii i analizy danych wydajności.
- Wnętrza wydajności Linux - harmonogram, podsystem pamięci, pamięć podręczna stron, systemy plików, blok I/O, stos sieciowy.
- Git i CI (np. GitLab CI) do automatyzacji budowy, testów, benchmarków i wydań.
Przywództwo
- Udokumentowane podejmowanie decyzji przez kierownictwo - kwantyfikacja kompromisów, ujawnianie ryzyka na wczesnym etapie.
- Destylacja złożonych problemów w porównywalne punkty danych bez utraty niuansów lub ukrywania niepewności.
- Jasna, zwięzła, wysokosygnałowa komunikacja w różnych grupach - 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 agentycznych przepływów pracy, które inni przyjmują i ustalają standardy weryfikacji wyników AI w odniesieniu do profili, benchmarków i telemetrii.
- Prowadzenie, mentoring i rozwijanie inżynierów na każdym poziomie - coaching młodszych inżynierów w kierunku odpowiedzialności oraz wpływanie na starszych i pracowników poprzez techniczne przywództwo, a nie autorytet.
Doświadczenie
- Licencjat + 12 lat, magister + 8 lat lub doktorat + 5 lat pokrewnego doświadczenia, z wystarczającą specjalistyczną głębokością i szerokością, aby doradzać kierownictwu.
Preferowane kwalifikacje
- Przepływ danych w skali petabajtów - wprowadzanie, przechowywanie, pobieranie i wyszukiwanie w skali, wzorce dostępu do pamięci obiektowej (S3), zarządzanie obciążeniem I/O.
- Wnętrza Splunk lub porównywalna platforma wyszukiwania, analityki lub danych w dużej skali.
- Silnik przechowywania/zapytania lub optymalizacja wyszukiwania rozproszonego.
- 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 wydajności przechowywania, sieci i 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 mierzalny wpływ z każdej milisekundy, którą usuniesz!
- Stały strumień nowych rzeczy do nauki. Zawsze rozszerzamy się na projekty open source i oddajemy, a także eksplorujemy 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 Senior 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.