W skrócie
- Zadania: Twórz innowacyjne biblioteki Java i projektuj architekturę dla zespołu platformy Java.
- Firma: Netflix - wiodąca usługa rozrywkowa z globalnym zasięgiem.
- Benefity: Atrakcyjne wynagrodzenie, elastyczne godziny pracy i możliwości rozwoju zawodowego.
- Pozostałe informacje: Praca w dynamicznym zespole z możliwością mentorowania innych inżynierów.
- Dlaczego ta praca: Miej realny wpływ na rozwój technologii używanych przez miliony użytkowników.
- Kwalifikacje: Doświadczenie w projektowaniu bibliotek i systemach rozproszonych.
Przewidywane wynagrodzenie mieści się w przedziale 135000 - 165000 zł za rok.
Netflix jest jednym z wiodących serwisów rozrywkowych na świecie, z ponad 300 milionami płatnych subskrypcji w ponad 190 krajach, które cieszą się serialami telewizyjnymi, filmami i grami w szerokiej gamie gatunków i języków. Członkowie mogą oglądać, wstrzymywać i wznawiać oglądanie tak często, jak chcą, w dowolnym miejscu i czasie, a także zmieniać swoje plany w dowolnym momencie.
Misja
Zespół Java Platform przechodzi z wsparcia „na zasadzie najlepszego wysiłku” do w pełni zarządzanej, kuratowanej „Paved Path” (nasza zalecana, wspierana standardowa ścieżka) dla Javy w Netflix. Nasza aplikacja oparta na Spring Boot to najbardziej ergonomiczny wybór dla większości rozwoju Javy i pozostaje w centrum tej ścieżki. Niektóre obciążenia, takie jak sidecary i lekkie kontenery, zadania przetwarzania wsadowego/strumieniowego, mają ścisłe ograniczenia dotyczące pamięci i czasu uruchamiania, a mimo to potrzebują tych samych możliwości platformy Netflix.
Naszym celem jest sprawić, aby Spring Boot działał dobrze w sidecarze lub lekkim kontenerze, z mniejszym śladem i szybszym uruchamianiem. Tworzymy również samodzielne, konstruowalne biblioteki Javy, które dają każdemu procesowi Javy dostęp do prymitywów platformy Netflix, takich jak konfiguracja, obserwowalność, odkrywanie i sieciowanie. Te same biblioteki działają zarówno w naszym frameworku Spring Boot, jak i poza nim, więc istnieje jedno źródło prawdy, a aktualizacje docierają do każdego konsumenta.
Rola
Jako inżynier staffowy ustalasz kierunek techniczny w tym obszarze zespołu Java Platform. Posiadasz architekturę zestawu bibliotek, decydujesz, co należy do niego, a co nie, i podnosisz poprzeczkę dla inżynierów wokół siebie. Jesteś zaangażowany w kod i projekt, podejmujesz trudne decyzje dotyczące kształtu API, zgodności i zakresu.
Obowiązki:
- Definiowanie architektury naszego lekkiego zestawu bibliotek.
- Projektowanie interfejsów API dla podstawowych prymitywów platformy.
- Decydowanie, jak każdy komponent działa samodzielnie, wewnątrz aplikacji Spring Boot oraz w sidecarze lub lekkim kontenerze, bez duplikowania logiki w tych trybach.
- Pełne wsparcie dla sidecarów i lekkich kontenerów.
- Sprawienie, aby aplikacje Spring Boot działały dobrze w tych środowiskach, na przykład poprzez minimalne startery i przycięte czasy uruchamiania.
- Ustalenie i obrona budżetów dotyczących pamięci i uruchamiania (mała pamięć, szybkie uruchamianie, mały ślad dyskowy).
- Budowanie testów porównawczych i regresyjnych, które utrzymują te budżety w kolejnych wydaniach.
- Projektowanie testów integracyjnych i regresyjnych, które pozwalają na wprowadzenie zmian w bibliotekach z wysokim poziomem pewności i minimalnym zakłóceniem.
- Posiadanie stabilności interfejsu. Zobowiązujemy się do długoterminowego wsparcia dla wszystkiego, co wydajemy do GA.
- Ścisła współpraca z szerszym zespołem Java Platform i zespołami partnerskimi.
- Pomoc w dostosowaniu frameworka Spring Boot do lepszego dopasowania do różnych przypadków użycia.
- Wspieranie klientów w wyborze odpowiedniej ścieżki z naciskiem na doświadczenie dewelopera.
- Prowadzenie przez innych. Mentorowanie inżynierów, przeglądanie projektów i pisanie notatek oraz dokumentów decyzyjnych, które ustalają kierunek.
Kto jesteś:
- Doświadczenie na poziomie staffowym w projektowaniu i posiadaniu wspólnych bibliotek lub komponentów platformy używanych przez wiele zespołów.
- Udokumentowane doświadczenie w Javie i systemach rozproszonych, z naciskiem na zakres, złożoność i wpływ.
- Techniczny lider, który nie potrzebuje autorytetu.
- Właściciel end-to-end. Podejmujesz problem od odkrycia przez projekt, wdrożenie, telemetrykę i iterację, a następnie mierzysz, czy to zadziałało.
- Skupiony na użytkownikach. Uczysz się, czego potrzebują zespoły, zanim zdecydujesz, co zbudować.
- Zainwestowany mentor i coach. Wspierasz rozwój innych inżynierów poprzez mentoring, dzielenie się wiedzą i feedback.
Kompetencje kluczowe:
- Nowoczesna ekspertyza w Javie (Java 17 i 21 lub nowsze).
- Wewnętrzne działanie JVM i wydajność.
- Projektowanie bibliotek i zależności.
- Podstawy systemów rozproszonych.
- Automatyzacja. Budujesz narzędzia deweloperskie, które eliminują zbędną pracę dla innych inżynierów.
- Empatia i inkluzyjność. Cenisz szczerość, szukasz różnych perspektyw i budujesz narzędzia, które działają dla każdego inżyniera, a nie tylko dla ekspertów.
Miłe do posiadania:
- Znajomość wewnętrznych mechanizmów Spring.
- Doświadczenie w technikach uruchamiania JVM i ograniczeniach pamięci.
- Doświadczenie w budowaniu lub obsłudze sidecarów, agentów lub konteneryzowanych usług Java z ograniczonymi zasobami.
- Doświadczenie w rozwoju wtyczek Gradle lub narzędzi budowlanych.
Typowe wyzwanie: "Jak zapewnić, aby sidecar, zadanie wsadowe i usługa Spring miały tę samą bibliotekę konfiguracji i metryk, utrzymać jej interfejs stabilny przez lata i pozostać w ramach ścisłego budżetu pamięci?"
Możesz być dobrym kandydatem, jeśli:
- Chcesz zdefiniować interfejs, na którym opiera się setki inżynierów, zamiast budować pojedynczą funkcję produktu.
- Tworzysz zwięzłe, wszechstronne i skalowalne biblioteki, które rozwiązują rzeczywiste problemy klientów.
- Potrafisz podejmować, wyjaśniać i poprawiać decyzje architektoniczne na piśmie.
- Cenisz ślad i czas uruchamiania tak samo jak funkcje.
Nie spełniasz wszystkich wymagań? W Netflix cenimy talent, pasję i zdolność do nauki bardziej niż idealną listę kontrolną. Jeśli widzisz siebie jako osobę, która może przyczynić się do stabilnej, minimalnej i szybkiej ścieżki Javy, która działa z Spring i poza nim, chcemy Cię usłyszeć.
Inkluzja jest wartością Netflix i dążymy do zapewnienia znaczącego doświadczenia rekrutacyjnego dla wszystkich kandydatów. Jeśli potrzebujesz dostosowania/zmiany z powodu niepełnosprawności lub innego powodu podczas procesu rekrutacji, prosimy o przesłanie prośby do swojego partnera rekrutacyjnego.
Jesteśmy pracodawcą równych szans i celebrujemy różnorodność, uznając, że różnorodność buduje silniejsze zespoły. Podchodzimy do różnorodności i inkluzyjności poważnie i z namysłem. Nie dyskryminujemy ze względu na rasę, religię, kolor, pochodzenie, narodowość, kastę, płeć, orientację seksualną, tożsamość płciową lub ekspresję, wiek, niepełnosprawność, stan zdrowia, ciążę, genotyp, stan cywilny ani służbę wojskową.
Staff Software Engineer 6 - Java Platform Team in Warsaw – pracodawca: Netflix
Netflix to doskonały pracodawca, który oferuje wyjątkowe możliwości rozwoju zawodowego w dynamicznym środowisku technologicznym. Pracując w zespole Validation & Safety Platform, będziesz częścią innowacyjnych projektów, które mają na celu zapewnienie bezpieczeństwa i jakości kodu w skali globalnej. Nasza kultura pracy opiera się na różnorodności, współpracy i ciągłym doskonaleniu, co sprawia, że każdy członek zespołu ma realny wpływ na rozwój platformy oraz możliwość nauki od najlepszych w branży.