W skrócie
- Zadania: Twórz i zarządzaj systemami rozproszonymi, poprawiając ich obserwowalność i wydajność.
- Firma: Innowacyjna firma technologiczna z kulturą współpracy.
- Benefity: Konkurencyjne wynagrodzenie, elastyczne godziny 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 rozwój innowacyjnych projektów.
- Kwalifikacje: Doświadczenie w programowaniu w Pythonie oraz umiejętności współpracy w zespole.
Przewidywane wynagrodzenie mieści się w przedziale 90000 - 110000 zł za rok.
Warszawa, Polska
Rola: To nie jest wąska rola specjalistyczna. Potrzebujemy kogoś, kto potrafi poruszać się po całym stosie rozproszonego systemu: rozumieć, jak elementy pasują do siebie, sprawić, by system był wystarczająco obserwowalny, aby wiedzieć, co działa, a co nie, pisać i strukturyzować kod z wyraźnymi granicami i odpowiednimi elementami enkapsulowanymi, oraz być równie komfortowym w SSH na maszynie floty, aby zgłębić problem na żywo, jak i projektować system na tablicy.
Dołączysz do zespołu Virtual Device Cloud, który ma głęboką, skoncentrowaną siłę w macOS, CoreSimulator i wewnętrznych strukturach APFS, i będziesz ściśle współpracować z Menedżerem Produktu oraz zespołami Test Orchestration i Cloud. Twoim zadaniem będzie poprawa dyscypliny testowej i międzyplatformowej obserwowalności oraz zwiększenie częstotliwości dostarczania, poprawności i widoczności w całej flocie.
Obowiązki:
- Przykład dla innych - ustal standardy zespołu dotyczące testowania, obserwowalności i dostarczania poprzez przegląd kodu i współpracę, oraz angażuj innych.
- Właściciel cyklu życia urządzenia - projektuj i buduj usługi, które ten zespół posiada w całym cyklu życia urządzenia, od obrazu, który urządzenie uruchamia, po jego rozbiórkę. Obejmuje to gotowość, cykl życia sesji i definicje floty, które podłączają symulatory i VM do naszej warstwy orkiestracji, niezależnie od tego, czy flota działa jako pody na Kubernetes z Agones, czy jako VM na hostach bare-metal i w chmurze.
- Uczyń flotę obserwowalną - buduj i używaj narzędzi do obserwowalności, które odpowiadają na pytanie „czy działa zgodnie z zamierzeniem, a jeśli nie, to dlaczego” w całej flocie i w pipeline'ie budowy obrazów, w tym gości i VM, które cicho zawodzą, zanim ich ładunek nawet się zacznie.
- Napraw problemy cyklu życia na dobre - znajdź przyczynę i napraw powtarzające się regresje cyklu życia za pomocą testów i automatycznych kontroli wydania, aby ten sam błąd nie został wysłany dwa razy.
- Spraw, aby urządzenia uruchamiały się i recyklingowały szybciej - mierz i redukuj czas uruchamiania, gotowości i rozbiórki od początku do końca, i umieść obraz oraz stopień zajęcia dysku na budżecie.
- Współpraca między zespołami - współpracuj z zespołami Cloud i Test Orchestration, aby proponować i wprowadzać zmiany oparte na dowodach w systemach, których nie posiadasz. Utrzymuj umowy między naszymi warstwami w sposób jawny.
Wymagane umiejętności:
- Solidne doświadczenie w projektowaniu, budowaniu i obsłudze rozproszonych systemów w produkcji.
- Praktyczne doświadczenie z Kubernetes, najlepiej w tym zakresie orkiestracji floty, takiej jak Agones lub porównywalny model floty sesyjnej.
- Udowodniona zdolność do wysyłania kodu produkcyjnego w Go i/lub Pythonie przez standardową ścieżkę wdrożeniową CI/CD, w tym budowanie i utrzymywanie samych pipeline'ów.
- Silne instynkty obserwowalności i doświadczenie: metryki, logowanie, śledzenie i budowanie widoczności w systemach, które jeszcze jej nie mają.
- Praktyczne doświadczenie z DevOps oraz systemami Linux/Unix: umiejętność zalogowania się na maszynę (VM, host kontenera lub bare metal) i pewne działanie - diagnozowanie, naprawianie i rozumienie, co naprawdę dzieje się na maszynie.
- Dostarcza przez zespół: historia sukcesów w dostarczaniu poprzez przegląd i współpracę w systemach, które obsługują inni, a nie samodzielnie.
- Znajomość macOS: simctl, launchd, XPC oraz jak działa stos wirtualizacji/symulatora Apple'a.
- Znajomość projektowania pamięci i copy-on-write (np. APFS lub podobne wewnętrzne struktury systemu plików).
- Doświadczenie w pracy w infrastrukturze Windows i Linux.
- Znajomość Apple Virtualization Framework i związanych narzędzi (np. tart).
- Posiadał startup, czas uruchamiania lub gotowości dla VM, kontenerów, runnerów CI lub serwerów gier i obniżył go.
- Swift: niektóre z naszych repozytoriów go używają, a przeglądanie ich jest częścią roli.
- Doświadczenie w budowaniu i utrzymywaniu obrazów OS lub VM za pomocą narzędzi takich jak Packer, tart, Ansible, cloud-init lub sysprep.
Jesteśmy hybrydowym miejscem pracy, które docenia znaczenie elastyczności, jednocześnie ceniąc współpracę i budowanie relacji osobiście. W związku z tym pracownicy Saucers znajdujący się w pobliżu lokalizacji biura muszą być w stanie i chętni do przychodzenia do biura. Osoby zatrudnione zdalnie muszą być w stanie i chętni do podróży do biura w zależności od wymagań konkretnej roli.
Sauce Labs z dumą jest pracodawcą równych szans i ceni różnorodność w naszej firmie. Nie dyskryminujemy ze względu na rasę, religię, kolor, pochodzenie narodowe, tożsamość/podstawę płci, orientację seksualną, wiek, stan cywilny, status weterana ani status niepełnosprawności.
Obowiązki związane z bezpieczeństwem w Sauce: W Sauce zobowiązujemy się do wspierania zdrowia i bezpieczeństwa pracowników oraz mienia, współpracując z wewnętrznymi interesariuszami, aby uczyć się i działać zgodnie z ewoluującymi protokołami i procedurami bezpieczeństwa. Oczekuje się, że w pełni przestrzegasz wszystkich polityk i procedur związanych z bezpieczeństwem na poziomie departamentu i organizacji oraz stosujesz podejście „bezpieczeństwo przede wszystkim” w projektowaniu, budowaniu i prowadzeniu naszych produktów i usług.
Senior Software Engineer in Warsaw – pracodawca: Sauce Labs
Sauce Labs oferuje pracownikom możliwość pracy w zespole, który ma głęboką wiedzę na temat macOS, CoreSimulator i APFS. Pracownicy mają szansę na rozwój zawodowy poprzez prowadzenie zespołu w zakresie testowania, obserwowalności i dostarczania oprogramowania. Firma stawia na współpracę między zespołami, co sprzyja wymianie wiedzy i umiejętności.