Senior Rust and C++ Developer (f/m/x)
⚲ Warszawa, Białystok, Bydgoszcz, Kraków, Gdańsk, Katowice, Łódź, Lublin, Poznań, Rzeszów
Do uzgodnienia
Wymagania
- Rust
- C++
- Blaze
- Memory management
- rustshift
- crigator
- crubit
Opis stanowiska
We are looking for an experienced Software Engineer to join a dynamic team focused on memory safety migrations. You will be responsible for porting widely-used, legacy C/C++ open-source libraries to memory-safe Rust equivalents. This role emphasizes deep integration work to seamlessly bridge feature gaps between unsafe legacy code and modern Rust replacements, ensuring minimal disruption for existing consumers. The position is fully remote, allowing you to work from anywhere in Poland.
Your tasks
• Migrating legacy C/C++ libraries to memory-safe Rust alternatives
• Building and maintaining secure C++ shims and Rust FFI wrappers
• Driving large-scale refactoring and dependency updates across numerous targets
• Performing differential testing, validation, and large-scale integration testing
• Evaluating performance and security trade-offs and providing data-driven recommendations to stakeholders
• Managing cross-team dependencies and review bottlenecks
• Structuring migrations into small, reviewable stacks to streamline approvals and reduce failures
Requirements
• Minimum 5 years of experience in software development with a strong focus on Rust and C++
• Deep expertise in unsafe code, FFI boundaries, and memory-safe migrations
• Solid understanding of memory safety, pointer stability, and cross-language interoperability
• Experience with Bazel/Blaze and dependency management
• Strong debugging skills across memory, testing, and platform-specific build issues
• Ability to communicate effectively with stakeholders and justify security-driven changes
• Advanced level of English
Nice-to-have requirements
• Experience with Crubit and C++/Rust interoperability tooling
• Background in vulnerability research or secure software development
• Familiarity with AI-assisted C/C++ to Rust migration tools (e.g., RustShift, Crigator)
• Open-source Rust contributions and experience managing third-party Rust dependencies
Your tasks
• Migrating legacy C/C++ libraries to memory-safe Rust alternatives
• Building and maintaining secure C++ shims and Rust FFI wrappers
• Driving large-scale refactoring and dependency updates across numerous targets
• Performing differential testing, validation, and large-scale integration testing
• Evaluating performance and security trade-offs and providing data-driven recommendations to stakeholders
• Managing cross-team dependencies and review bottlenecks
• Structuring migrations into small, reviewable stacks to streamline approvals and reduce failures
Requirements
• Minimum 5 years of experience in software development with a strong focus on Rust and C++
• Deep expertise in unsafe code, FFI boundaries, and memory-safe migrations
• Solid understanding of memory safety, pointer stability, and cross-language interoperability
• Experience with Bazel/Blaze and dependency management
• Strong debugging skills across memory, testing, and platform-specific build issues
• Ability to communicate effectively with stakeholders and justify security-driven changes
• Advanced level of English
Nice-to-have requirements
• Experience with Crubit and C++/Rust interoperability tooling
• Background in vulnerability research or secure software development
• Familiarity with AI-assisted C/C++ to Rust migration tools (e.g., RustShift, Crigator)
• Open-source Rust contributions and experience managing third-party Rust dependencies
🔍 Dekoder Ogłoszenia
🔴
dynamic team focused on memory safety migrations
Zespół może być w fazie intensywnych zmian lub pracować nad nowym, potencjalnie ryzykownym obszarem technologicznym.
🔴
porting widely-used, legacy C/C++ open-source libraries to memory-safe Rust equivalents
Praca może polegać na żmudnym przepisywaniu istniejącego, często słabo udokumentowanego kodu, zamiast tworzenia czegoś od zera.
🔴
deep integration work to seamlessly bridge feature gaps between unsafe legacy code and modern Rust replacements, ensuring minimal disruption for existing consumers
Oznacza to konieczność dogłębnego zrozumienia i radzenia sobie z problemami starego kodu, a nie tylko pisania nowego.
🔴
Driving large-scale refactoring and dependency updates across numerous targets
Może oznaczać pracę nad bardzo złożonym i rozległym systemem z wieloma zależnościami, co może prowadzić do trudności w zarządzaniu.
🔴
Managing cross-team dependencies and review bottlenecks
Wskazuje na potencjalne problemy z komunikacją i procesami między zespołami, które mogą spowalniać pracę.