W skrócie
- Zadania: Optymalizuj wydajność oprogramowania i wprowadzaj innowacje w złożonych systemach.
- Firma: Cisco, lider w dziedzinie technologii i innowacji.
- Benefity: Elastyczny model pracy, możliwości rozwoju i wsparcie zespołu.
- Pozostałe informacje: Dynamiczne środowisko z możliwościami kariery i mentoringu.
- 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 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.
Twoje Wpływy
- Pełnienie roli autorytetu w zakresie wydajności dla krytycznych problemów, planowania mapy drogowej, przeglądów architektury i rozmów z klientami.
- Ustalanie kierunku technicznego w różnych zespołach.
- Prowadzenie domeny 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óre nikt jeszcze nie zdefiniował.
- Architektura dla skali - projektowanie i przekształcanie podsystemów w rozproszonym systemie w skali petabajtów: hierarchia pamięci, współbieżność, I/O, opóźnienie ogonowe.
- Odpowiedzialność za metodologię wydajności - profilowanie i praktyka wykresów płomieni, analiza kontencji blokad, benchmarking, bramkowanie regresji CI.
- Wprowadzenie obserwowalności - projektowanie nowych źródeł telemetrii i wprowadzenie eBPF oraz ciągłego profilowania do użytku produkcyjnego, aby wydajność była mierzalna w terenie, a nie tylko w laboratorium.
- Umożliwienie decyzji kierowniczych - wyjaśnianie dyrektorom i menedżerom, jakie są koszty problemu, co każdy wybór przynosi i kosztuje oraz ryzyko braku działania, z rekomendacją, którą popierasz.
- Dostarczanie szybko i sprawianie, że wszyscy będą szybszy - praca agentycznie i budowanie wielokrotnego użytku AI agentycznych przepływów pracy i narzędzi, które skracają pętle analizy zespołu z dni do godzin.
- Nawigacja w optymalizacji AI: wskazywanie agentów na zmiany, które wpływają na liczby, wychwytywanie pracy, która nie spełnia profilu, szybkie przekierowywanie.
- Prowadzenie i mentorowanie 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, wykrywanie 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ń pod kątem 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, I/O blokowe, stos sieciowy.
- Git i CI (np. GitLab CI) do automatyzacji budowy, testów, benchmarków i wydań.
Przywództwo
- Udokumentowane osiągnięcia w informowaniu decyzji kierowniczych - kwantyfikacja kompromisów, ujawnianie ryzyka na wczesnym etapie.
- Destylacja złożonych problemów w porównywalne punkty danych bez utraty niuansu lub ukrywania niepewności.
- Jasna, zwięzła, wysoka sygnał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 stosunku do profili, benchmarków i telemetrii.
- Prowadzenie, mentorowanie 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 wyspecjalizowaną głębokością i szerokością wystarczającą do doradzania zarządowi.
Preferowane Kwalifikacje
- Przepływ danych w skali petabajtów - wprowadzanie, przechowywanie, pobieranie i wyszukiwanie na dużą skalę, wzorce dostępu do pamięci obiektów (S3), zarządzanie obciążeniem I/O.
- Wnętrza Splunk lub porównywalna platforma wyszukiwania, analityki lub danych w dużej skali.
- Optymalizacja silnika przechowywania/zapytania lub 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 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 mierzalny wpływ z każdej milisekundy, którą usuniesz!
- Stały strumień nowych rzeczy do nauki. Zawsze rozszerzamy się na nowe obszary, wprowadzamy 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: Cisco Systems, Inc
Cisco Systems, Inc. to doskonały pracodawca, oferujący wyjątkowe możliwości rozwoju zawodowego w dynamicznym środowisku technologicznym. Pracując w zespole zajmującym się systemami rozproszonymi, będziesz miał okazję nie tylko rozwijać swoje umiejętności, ale także wpływać na przyszłość platformy Splunk, wprowadzając innowacyjne rozwiązania w chmurze. Nasza kultura pracy opiera się na współpracy i wsparciu, co sprawia, że każdy pracownik czuje się doceniony i zmotywowany do osiągania wspólnych celów.