Lead Rust Software Engineer
EPAM Systems (Poland) sp. z o.o.
⚲ Warszawa
Do uzgodnienia
Wymagania
- 5+ lat doświadczenia w Rust z zapleczem w systemach rozproszonych
- doświadczenie w budowie systemów o niskich opóźnieniach i wysokiej przepustowości
- znajomość baz time-series (QuestDB, KDB lub InfluxDB)
- znajomość rynków kapitałowych / danych rynkowych (akcje, instrumenty pochodne, futures i opcje)
- umiejętność projektowania skalowalnych, odpornych na awarie architektur
- znajomość Linuksa, narzędzi do tuningu wydajności i profilowania
- znajomość angielskiego na poziomie B2+
Mile widziane
- doświadczenie z Kafka, protokołem FIX lub Golangiem
Opis stanowiska
EPAM szuka Lead Rust Engineera do zespołu konsolidującego systemy UL Link, T-Bricks i CQG w jedną platformę oraz budującego rozproszoną warstwę cache/memory do dystrybucji danych rynkowych i referencyjnych przy ultra-niskich opóźnieniach. Praca obejmuje projektowanie architektury, optymalizację pamięci i współbieżności, definiowanie modeli danych oraz mentoring zespołu. To rola dla kogoś z doświadczeniem w systemach rozproszonych o wysokiej przepustowości i niskich opóźnieniach, ze znajomością rynków kapitałowych i baz time-series. Uwaga: duża część pracy może polegać na integracji i naprawie istniejących, słabo udokumentowanych systemów, a wymagania wydajnościowe oznaczają głębokie zanurzenie w szczegóły Rusta.
🔍 Dekoder Ogłoszenia
🔴
Lead Rust Software Engineer
Oczekuje się, że będziesz nie tylko programistą, ale także osobą odpowiedzialną za architekturę, podejmowanie decyzji technicznych i potencjalnie mentoring innych członków zespołu.
🔴
consolidating UL Link, T-Bricks, and CQG into a unified platform
Praca może polegać na integracji i naprawianiu istniejących, potencjalnie przestarzałych lub słabo udokumentowanych systemów, a nie na budowaniu wszystkiego od zera.
🔴
building the distributed cache/memory model that distributes market and reference data at ultra-low latency
Kluczowe jest zrozumienie, że główny nacisk kładziony jest na wydajność i niskie opóźnienia, co może oznaczać bardzo złożone i wymagające optymalizacji rozwiązania.
🔴
Leverage QuestDB to support fast data access across the platform
Może to oznaczać, że będziesz musiał mocno dostosowywać lub optymalizować QuestDB, jeśli jego standardowe funkcje nie będą wystarczające do osiągnięcia wymaganych parametrów.
🔴
Optimize memory management and concurrency
To standardowe wymaganie w systemach o wysokiej wydajności, ale w tym kontekście może oznaczać bardzo głębokie zanurzenie się w szczegóły działania Rust i potencjalnie trudne do debugowania problemy.