Senior Rust Developer
⚲ Warsaw
21 840 - 25 200 PLN (B2B)
Wymagania
- senior-level doświadczenie z Rust (ownership/borrowing, Rc, RefCell, Weak, unsafe, Pin, lifetimes)
- praktyczne doświadczenie z Rust/C++ FFI, najlepiej z użyciem cxx
- doświadczenie w projektowaniu bezpiecznych abstrakcji Rust nad kodem C++
- praktyczne doświadczenie z procedural macros (syn, quote, proc-macro2)
- doświadczenie w projektowaniu i utrzymaniu publicznych API bibliotek Rust oraz zarządzaniu semver i deprecjacjami
- doświadczenie w cross-platform build engineering (build.rs, linkowanie natywnych bibliotek, Linux/Windows MSVC/macOS)
- znajomość Qt 6 (QObject, properties, signals/slots, QVariant, QMetaType, QML) oraz C++17
- biegła znajomość angielskiego w mowie i piśmie
Opis stanowiska
Senior Rust Developer przy długoterminowym projekcie łączącym Rust, C++ i Qt 6 — główny nacisk na wysokiej jakości kod Rust (object model, memory safety, type system, procedural macros, bezpieczne API na granicy Rust/C++), praca z publicznym backlogiem i zadaniami planowanymi sprint po sprincie. Dobra oferta dla specjalisty od systemów niskopoziomowych, który lubi pracę review-driven i rozwiązywanie trudnych problemów. Uwaga: Qt 6 może być jeszcze w fazie stabilizacji, a częste re-planowanie sprintów może utrudniać poczucie postępu; wymagana biegła znajomość angielskiego.
🔍 Dekoder Ogłoszenia
🔴
long-term project focused on developing production-grade solutions combining Rust, C++ and Qt 6
Projekt może być długoterminowy, ale technologia (Qt 6) może być jeszcze niestabilna lub w fazie rozwoju, co może oznaczać nieprzewidziane problemy.
🔴
Main focus on developing high-quality Rust code, with emphasis on object models, memory safety, type systems, procedural macros, and safe APIs across the Rust/C++ boundary
Duży nacisk na zaawansowane i potencjalnie skomplikowane aspekty Rust, co może oznaczać, że projekt jest bardziej badawczy niż typowo aplikacyjny.
🔴
Team works with a public backlog, tasks assigned issue by issue and re-planned on a sprint basis
Praca może być bardzo iteracyjna i podatna na częste zmiany priorytetów, co może wpływać na poczucie postępu.
🔴
Opportunity to work on challenging systems-level problems
Może oznaczać pracę nad bardzo niskopoziomowymi, trudnymi do debugowania problemami, które wymagają głębokiej wiedzy i cierpliwości.
🔴
Initial priorities include object model and memory-safety work, type-system development, procedural macros, Rust/C++ FFI, public API design and stabilisation
Wiele z wymienionych priorytetów to obszary, które często są trudne, czasochłonne i mogą być jeszcze w fazie definiowania lub stabilizacji.