Dlaczego warto z nami współpracować?
Rozwijamy złożone systemy używane w kilkudziesięciu krajach, w których mamy lokalne wsparcie techniczne. Wykorzystując setki serwerów emitujących i zliczających, przetwarzamy miesięcznie setki miliardów rekordów. Każdy z systemów jest rozwijany przez zespół scrumowy.
Dołączając do zespołu będziesz na co dzień:
- rozwiązywać trudne problemy natury algorytmicznej, wydajnościowej i architektonicznej,
- programować w C++/ Python zależnie od rodzaju problemu do rozwiązania,
- rozbudowywać skomplikowany system wielkości kilkuset tysięcy LOC, składający się z kilkudziesięciu modułów rozproszonych na serwerach Linux®. Moduły mają bardzo różne zadania, np. predykcja zachowania się kampanii reklamowej w przyszłości, wyliczanie w kilka sekund dowolnych agregacji na miliardach rekordów ruchu itp.,
- zapewniać bezbłędność i jakość swoich rozwiązań przy zachowaniu wartości: bus factor > 1, continuous integration, wdrożenie co 2 tygodnie. Robić rewizje kodu współpracownikom i przyjmować uwagi co do swojego kodu,
- wykorzystywać rozwijaną w firmie infrastrukturę klastrów obliczeniowych składującą setki terabajtów danych na stworzonym w firmie rozproszonym systemie plików MooseFS przy kilkusetkrotnej kompresji,
- projektować architekturę rozwiązań, tak aby realizowały potrzeby biznesowe przy rozsądnym koszcie,
- dobierać i priorytetyzować sobie zadania tak, aby jak najlepiej wesprzeć zespół w realizacji celu.
Oczywiście oferujemy elastyczne godziny pracy, nieformalny styl, firmową kuchnię wyposażoną w zdrową żywność, dofinansowanie karty medycznej lub sportowej.
Nasze wymagania:
- spryt, zdolność do rozwiązywania problemów, kreatywności, gotowości do nauki,
- dobra orientacja w zagadnieniach algorytmicznych,
- znajomość zasad projektowania dużych, skalowalnych systemów IT,
- umiejętność programowania w językach C/C++ (STL, szablony, boost) i Python oraz znajomość innych wybranych języków skryptowych np. PHP, Bash,
- doświadczenie w pracy z systemem Linux® z poziomu programisty,
- umiejętność pracy z bazami danych (szczególnie MySQL),
- wiedza z zakresu programowania aplikacji sieciowych.
Dodatkowe umiejętności:
- doświadczenie w pracy z dużymi ilościami danych,
- doświadczenie w pracy w Scrum,
- bardzo dobre wyniki w nauce lub sukcesy w konkursach informatycznych.